作業を実行するための明示的なアルゴリズムを知らなくても、特定のタスク用にニューラル ネットワーク (NN) を設計し、トレーニングできるという事実に、多くの人が驚嘆しています。たとえば、有名な手書き数字認識のチュートリアルはわかりやすいですが、その背後にあるロジックはニューラル ネットワーク内に隠されており、階層構造、重み、および活性化関数を通じてのみ垣間見ることができます。
画像ソース: Unsplash この論文では、ニューラル ネットワークの透明性原理を通じて、ニューラル ネットワークの「ブラック ボックス知識」を明らかにします。この目的のために、ブール XOR 関数を備えたニューラル ネットワークを検証します。まず、既知の代数関係を明確に含む既知の XOR プロパティ プロセスを使用して、ボトムアップ ニューラル ネットワークが構築されます。 2 番目のステップでは、TensorFlow Keras を使用して、シンプルなグラフィカル プログラミング ツールから XOR ロジック演算までニューラル ネットワークをトレーニングします。 *** 2 つの方法を比較します。 Keras ニューラル ネットワークをブール コンポーネントに分解すると、論理設定が最初のステップで構築されたニューラル ネットワークと異なることがわかります。トレーニングされたニューラル ネットワークは、異なるブール関数を使用して XOR 演算の代替表現を発見しました。 この代替 XOR 式は数学では知られていないわけではありませんが、少なくとも新しいものです。これは、ニューラル ネットワークが新しい知識を生み出せることを示唆している可能性があります。しかし、それを抽出するには、ニューラル ネットワークの設定とパラメーターを明示的なルールに変換できなければなりません。 XOR ニューラル ネットワーク (XOR NN) のボトムアップ構築 XOR演算はマッピングによって定義されるブール関数であり、
XOR演算用の既知のニューラルネットワークまたはGoogle ID列を構築する
これは、演算子 AND、NAND (AND ではない)、および OR がよく知られており、これらはすべて、2 つの入力ノードと 1 つの出力ノード、バイアス、およびシグモイド活性化関数を持つ単純なニューラル ネットワークで表現できるため役立ちます。 ブール関数演算子のニューラル ネットワーク これを基に、NAND、AND、OR NN を接続することで XOR ニューラル ネットワークを構築できます。したがって、XOR は 3 層のニューラル ネットワークになります。 XOR演算によるニューラルネットワーク 可能な入力構成を入力し、出力を調べます (この記事で使用されている Excel ワークシート)。実効値は、(0,0)と(1,1)の場合はそれぞれ0.0072、(0,1)と(1,0)の場合は0.9924です。 他のニューラル ネットワークは、XOR 演算の次の表現を使用して構築できます。
ただし、これらの ID 列により、ネットワークはより複雑になります。 さらに、XOR 演算は線形に分離可能ではないため (活性化関数は厳密に単調であるため)、2 層ニューラル ネットワークを構築することはできません。 しかし、XOR 演算を実行するニューラル ネットワークを構築する他の方法があるかもしれません。次のセクションでは、ニューラル ネットワークをトレーニングして別のソリューションを探します。 TensorFlow Keras を使用した XOR ニューラル ネットワークの構築 Keras は強力で使いやすいニューラル ネットワーク ライブラリです。前のセクションでは、3 層の 2-2-1 モデルを構築し、以前に構築したニューラル ネットワークと比較しました。 エラーバックプロパゲーションは、ニューラル ネットワークを構築するための標準的なアプローチである、学習率 1 と平均二乗誤差損失関数を持つ勾配降下法オプティマイザーを使用して実行されました。 以下は Python コード スニペットです。
XOR 演算の利点は、教えることができる構成が 4 つしかないため、パラメーター空間全体をトレーニングできることです。ただし、モデルを駆動して損失ゼロと 100% の精度を達成するには、データセットをニューラル ネットワークに渡す何らかのプロセスが必要です。つまり、出力はゼロに近づき、それぞれ (0,1)、(1,0)、(0,0)、(1,1) になります。 XOR ニューラル ネットワークの損失とエポックの比較 XORニューラルネットワークの精度とエポックの比較 しかし、トレーニング期間が停滞し、接続できなくなる可能性もあります。すると、精度は 75% または 50% で止まります。つまり、1 つまたは 2 つのバイナリ タプルのマッピングが正しくありません。この場合、適切なソリューションが得られるまでニューラル ネットワークを再構築する必要があります。 分析と結論 ここで、Keras ニューラル ネットワークが構築されたものと同様の構造を持っていることを確認します。重みを返すことによって (コード スニペットの最後を参照)、重みとバイアス値を取得します。 Pythonスクリプトの出力 これらのパラメータを使用して、ニューラル ネットワークを再構築します (この場合も Excel を使用)。 3 つの演算子で構成されます。 Keras でトレーニングされた XOR ニューラル ネットワーク 可能なすべての構成を入力することで、H1、H2、および O 演算子に関連付けられたブール関数を識別できます。 Keras XOR ニューラル ネットワークのブール関数 興味深いことに、Keras ニューラル ネットワークは構築されたものと同じロジックを持っていると思っていましたが、別のソリューションが作成されました。ニューラル ネットワークが見つけた式である演算子 NAND、OR、AND の代わりに、OR、AND、(比較的知られていない) INH を使用します。
これは、ニューラル ネットワークが以前にはなかった知識を獲得できることを示しています。もちろん、「新しい知識」は相対的なものであり、既知の程度によって異なります。つまり、XOR 演算のすべての表現を知っていれば、Keras ニューラル ネットワークには追加の価値はありません。 さらに、より複雑なニューラル ネットワークの場合、重みを明示的なアルゴリズムまたは数式に変換するのは簡単ではありません。しかし、おそらくこの種の専門知識こそが、将来の AI 専門家が備えていなければならないものなのでしょう。 |
<<: 求人検索サイトIndeedの統計:AI採用は減速、求職者の関心は低下
>>: JavaScript チュートリアル: Web アプリケーションに顔検出機能を追加する
[[184240]]ここ数か月間、データサイエンスの世界にチャレンジして、機械学習の技術を使って統...
最近の多くの研究では、主に人工知能や自動化における技術の進歩が、男性よりも女性の雇用に大きな影響を与...
3月29日、市場調査会社Meticulous Market Researchが発表した最新のレポート...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[121970]]この記事を書く前に、プログラマーの基本的な知識についてお話ししたいと思います。...
[[186071]]今日、私は BAT のアルゴリズム エンジニアに再び拒否されました。はい、お読み...
数日前、Caltech と MIT の研究者が ChatGPT を使用して数学の定理を証明した論文が...
[[202723]] AWS 上で大規模なディープラーニング処理を実行することは、学習と開発を行うた...
人工知能技術の進歩は、自動化と革新の新しい時代の到来を告げるものとなるでしょう。しかし、機械知能の進...
[[206688]]導入Tensorflow はバージョン 1.0 へのアップデート後に多くの新機能...
テンセントAIラボ機械学習センターは本日、世界初の自動ディープラーニングモデル圧縮フレームワーク「P...