これは本当に天才的ですね!パーセプトロンを組み合わせると、ニューラル ネットワークになるのではないでしょうか。

これは本当に天才的ですね!パーセプトロンを組み合わせると、ニューラル ネットワークになるのではないでしょうか。

[[354709]]

みなさんこんにちは。今日もディープラーニングについてお話していきましょう。

クラスメートの何人かは、ディープラーニングモデルを長い間更新していないと言っていました。更新したくないわけではなく、技術的なトピックを一度に書き終えたいというのが主な理由です。しかし、ほとんどの視聴者は純粋に技術的な記事を読みたくないので、私は通常、それらを 2 番目に置きます。しかし、クラスメイトから更新を促されたので、要望に応えて記事を更新します。

ニューラルネットワークとパーセプトロンの違い

その時の記事に写真を掲載しました。この写真は多層パーセプトロンの写真です。見てみてください。下の写真です。

この図は一見すると問題ないように見えますが、よく考えてみると、少し奇妙に思えます。私たちがこれまで見てきたニューラルネットワークの図もこのようなものだったようです。この場合、それらの違いは何でしょうか。

表面上、最も明らかな違いは名前です。これはニューラル ネットワークの図です。まだ 3 つの層があることがわかりましたが、各層の名前は入力層、中間層 (隠れ層)、出力層です。通常、入力層と出力層は別々に名前が付けられ、その間の層は隠し層または中間層と呼ばれます。もちろん、パーセプトロンのように、層に番号で名前を付けることもできます。たとえば、下の図の入力層はレイヤー 0、中間層はレイヤー 1、最後の出力層はレイヤー 2 と呼ばれます。

通常、出力層は有効なニューラル ネットワークとは見なされないため、下の図のネットワークは 3 層ニューラル ネットワークではなく 2 層ニューラル ネットワークと呼ばれます。

名前の違いに加えて、もう 1 つの重要な違いは活性化関数です。これを明確にするために、まずニューラル ネットワークにおける信号伝達について見てみましょう。

信号伝送

下の図は、私が偶然見つけたニューラル ネットワーク ダイアグラムです。最初の入力ノードが 1 に設定されていることがわかります。これはオフセットの導入を容易にするために行われますが、一般的に絵を描くときには意図的にオフセットを描くことはありません。ニューラル ネットワーク内で信号がどのように伝達されるかを確認するために、次の図を例に挙げてみましょう。

まだ終わりではありません。ニューラル ネットワークの各層には、対応する活性化関数があります。一般的に言えば、ネットワークの同じ層内の活性化関数は同じであり、これを h と呼びます。したがって、このノードの最終出力は、先ほど取得したものではなく、 になります。


活性化関数についてはすでによくご存知でしょう。これまでにも何度も紹介してきました。一般的に使用されているのは、おそらく Relu、Sigmoid、tanh、softmax、およびいくつかの派生型です。一般的に、出力層の前に Relu を使用します。モデルが分類モデルの場合は、最後に Sigmoid または softmax を使用します。回帰モデルの場合は、活性化関数は使用されません。

シグモイドについてはすでによく知られています。LR モデルを単層ニューラル ネットワークと見なすと、シグモイドはその活性化関数になります。シグモイドは、バイナリ分類シナリオの単一の出力ノードに適用されます。出力値が 0.5 より大きい場合は true、それ以外の場合は false になります。いくつかの確率予測シナリオでは、出力値はイベントが発生する確率を表すと考えることもできます。

これに対応するのが、多重分類問題で使用されるソフトマックス関数です。使用するノードの数は 1 ではなく、k です。ここで、k はマルチ分類シナリオにおけるカテゴリの数を表します。 k=3 を例にとり、次の図を見てみましょう。

グラフには 3 つのノードがあります。各ノードの式は次のように記述できます。

実際の計算方法は、最後に重みを計算する点を除いて、Sigmoid と同じです。最後に、これらの k 個のノードのうち最大のものを最終的な分類結果として選択します。

コードの実装

最後に、ニューラル ネットワークのコードを書いてみます。ニューラル ネットワークのトレーニング方法はまだ導入していないため、予測部分のみを実装できます。バックプロパゲーション アルゴリズムを紹介した後、モデルのトレーニング プロセスについて説明します。

バックプロパゲーションを無視すれば、アルゴリズム全体のコードは実は非常に単純で、Python 構文に精通している人なら誰でも理解できます。

  1. numpyをnpとしてインポートする
  2.  
  3. 定義 relu(x):
  4. np.where (x > 0, x, 0 )を返す
  5.  
  6.  
  7. シグモイド(x)を定義します:
  8. 1 / (1 + np.exp(-x))を返します
  9.  
  10.  
  11. クラスNeuralNetwork():
  12. __init__(self)を定義します。
  13. 自己パラメータ = {}
  14. 自己.params[ 'W1' ] = np.random.rand(2, 3)
  15. self.params[ 'b1' ] = np.random.rand(1, 3)
  16. 自己.params[ 'W2' ] = np.random.rand(3, 2)
  17. self.params[ 'b2' ] = np.random.rand(1, 2)
  18. 自己.params[ 'W3' ] = np.random.rand(2, 1)
  19. self.params[ 'b3' ] = np.random.rand(1, 1)
  20.         
  21. def forward (self, x):
  22. a1 = np.dot(x, self.params[ 'W1' ]) + self.params[ 'b1' ]
  23. z1 = relu(a1)
  24.          
  25. a2 = np.dot(z1, self.params[ 'W2' ]) + self.params[ 'b2' ]
  26. z2 = relu(a2)
  27.          
  28. a3 = np.dot(z2, self.params[ 'W3' ]) + self.params[ 'b3' ]
  29. np.where (sigmoid(a3) > 0.5, 1, 0 )を返します
  30.      
  31.      
  32. __name__ == "__main__"の場合:
  33. nn = ニューラルネットワーク()
  34. print( nn.forward (np.array([3, 2])))

この記事はWeChatの公開アカウント「TechFlow」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、TechFlow公式アカウントまでご連絡ください。

<<:  5G の商用化が加速しています。これはドローンにとって何を意味するのでしょうか?

>>:  博士号を取得したいですか?機械学習の博士課程5年生と強化学習の博士課程の学生が対決した

ブログ    
ブログ    

推薦する

時間変換に基づく初のビデオ移行攻撃アルゴリズム、復旦大学の研究がAAAI 2022に選出

[[441526]]近年、ディープラーニングは一連のタスク(画像認識、物体認識、セマンティックセグメ...

人工知能は非常に強力だが、人間は必ずしも人工知能に支配されるわけではない。ホーキングは間違っているのだろうか?

著者: ふす有名な物理学者ホーキング博士はかつて、将来人類は人工知能によって滅ぼされるかもしれないの...

AIツールClaude 2が世界中で利用可能に:ファイルのアップロードとより長い応答テキストをサポート

10月18日、Anthropicは今年7月に新しいClaude 2言語モデルをリリースしました。 C...

App Store 中国、検索アルゴリズムを最適化:名前による検索を復活

約1週間の不安が去った後、国内のiOSアプリ開発者はようやく落ち着くことができた。中国におけるApp...

...

...

AI幻覚にどう対処するか?

人工知能は、一見奇妙に思える人間の質問にも答えられるようになりました。しかし、時には人工知能が答えを...

ベクトル検索エンジン: 大規模な言語モデルの検索と強化された生成のための強力なツール

翻訳者|朱 仙中レビュー | Chonglou導入大規模言語モデル (LLM) が世界を席巻するにつ...

ブロックチェーンのいくつかのコンセンサスアルゴリズム

まず、一般的なビザンチン将軍問題からコンセンサスとは何かを理解しましょう。ビザンチン将軍問題ビザンチ...

人工知能は人間の文化を継承するが、人間の偏見も受け継いでいる

テクノロジーは既存の人間文化の延長です。テクノロジーは人類の知恵を広げた一方で、人々の偏見や差別も受...

単一の画像ガイド、主題を保持し、スタイルを変更する、VCTはそれを簡単に実現するのに役立ちます

近年、画像生成技術は多くの重要な進歩を遂げました。特に、DALLE2やStable Diffusio...

ハードウェアクラッキングに耐えられるハッシュアルゴリズムにはどのようなものがありますか?

[[185577]] 1. はじめにブルートフォース クラッキング ツール hashcat を使用...

Google が史上最強の人間の脳の「地図」を公開、3D ニューロンの「森」がオンラインで閲覧可能に

シナプスはニューラルネットワークの「橋」です。人間の脳には 860 億個のニューロンがあり、あるニュ...

...