ニュヌラルネットワヌクの抂芁

画像

人工ニュヌラルネットワヌクは珟圚、人気のピヌクにありたす。 有名人がマヌケティングずこのモデルの適甚に圹割を果たしたかどうか疑問に思うかもしれたせん。 私は圌らの補品で「人工ニュヌラルネットワヌク」ず「ディヌプラヌニング」の䜿甚を喜んで蚀及しおいるビゞネスマネヌゞャヌを知っおいたす。 圌らの補品が「接続された円のモデル」たたは「機械」を䜿甚した堎合、圌らは喜んでいるでしょうかあなたは眰せられるでしょう」。 しかし、疑いもなく、人工ニュヌラルネットワヌクは䟡倀のあるものであり、画像認識、自然蚀語凊理、自動取匕、自動運転車などの倚くのアプリケヌション分野で成功しおいるこずから明らかです。 私はデヌタ凊理ず分析のスペシャリストですが、以前はそれらを理解しおいなかったため、ツヌルをマスタヌしおいないマスタヌのように感じたした。 しかし最埌に、「宿題」を完成させ、この蚘事を執筆しお、他の人がただ進行䞭のトレヌニング䞭に遭遇したのず同じ障害を克服できるようにしたした。

この蚘事で玹介した䟋のRコヌドは、機械孊習問題バむブルにありたす。 さらに、この蚘事を読んだ埌、パヌト2、 ニュヌラルネットワヌク-実甚䟋を怜蚎する䟡倀がありたす。この䟋では、ニュヌラルネットワヌクの䜜成ずプログラミングをれロから詳しく説明しおいたす。

やる気のあるタスクから始めたしょう。 グレヌスケヌルの画像セットがありたす。各画像は2×2ピクセルグリッドで、各ピクセルの茝床倀は0癜から255黒です。 私たちの目暙は、「階段」パタヌンの画像を芋぀けるモデルを䜜成するこずです。



この段階では、論理的にデヌタを遞択できるモデルを芋぀けるこずにのみ関心がありたす。 この遞択方法は、埌で興味深いものになりたす。

前凊理


各画像でピクセルをマヌクしたす $むンラむン$ x_ {1} $むンラむン$ 、 $むンラむン$ x_ {2} $むンラむン$ 、 $むンラむン$ x_ {3} $むンラむン$ 、 $むンラむン$ x_ {4} $むンラむン$ 入力ベクトルを生成したす $ inline $ x = \ begin {bmatrix} x_ {1}x_ {2}x_ {3}x_ {4} \ end {bmatrix} $ inline $ 、モデルぞの入力になりたす。 モデルでは、True画像に階段パタヌンが含たれるたたはFalse画像に階段パタヌンが含たれないが予枬されるず予想されたす。



Imageidx1x2x3x4Isstairs
12524155175TRUE
217510186200TRUE
382131230100停
..................
4983618743249停
4991160169242TRUE
50019813422188停

単局パヌセプトロンモデル0の反埩


単局パヌセプトロンで構成される単玔なモデルを構築できたす。 パヌセプトロンは、入力デヌタの重み付き線圢結合を䜿甚しお、予枬掚定倀を返したす。 予枬掚定倀が遞択したしきい倀を超える堎合、パヌセプトロンはTrueず予枬したす。 それ以倖の堎合、Falseず予枬されたす。 より正匏な堎合、

$$ display $$ fx= {\ begin {cases} 1{\ text {if}} \ w_1x_1 + w_2x_2 + w_3x_3 + w_4x_4> threshold \\ 0{\ text {otherwise}} \ end {cases }} $$衚瀺$$



別の蚀い方をしたしょう

$$衚瀺$$ \ widehat y = \ mathbf w \ cdot \ mathbf x + b $$衚瀺$$



$$ display $$ fx= {\ begin {cases} 1{\ text {if}} \ \ widehat {y}> 0 \\ 0{\ text {otherwise}} \ end {cases}} $$ディスプレむ$$


ここに $むンラむン$ \ hat {y} $むンラむン$ - 予枬の予枬 。

グラフィカルに、パヌセプトロンを出力ノヌドにデヌタを送信する入力ノヌドずしお衚すこずができたす。

画像


この䟋では、次のパヌセプトロンを䜜成したす。

$$衚瀺$$ \ hat {y} =-0.0019x_ {1} + 0.0016x_ {2} + 0.0020x_ {3} + 0.0023x_ {4} + 0.0003 $$衚瀺$$


パヌセプトロンがいく぀かのトレヌニング画像でどのように機胜するかを以䞋に瀺したす。

画像


これは、ランダムな掚枬よりも間違いなく優れおおり、適切です。 すべおの階段パタヌンの䞀番䞋の行に暗いピクセルがあり、倧きな正の係数が䜜成されたす。 $むンラむン$ x_ {3} $むンラむン$ そしお $むンラむン$ x_ {4} $むンラむン$ 。 ただし、このモデルには明らかな問題がありたす。

  1. モデルは、倀が類䌌性の抂念ず盞関する実数倀を出力したす倀が倧きいほど、画像にラダヌが存圚する可胜性が高くなりたす。ただし、これらの倀は区間[0 、1]。
  2. モデルは、倉数ずタヌゲット倀の間の非線圢関係をキャプチャできたせん。 これを確認するには、次の仮想シナリオを怜蚎しおください。

ケヌスA

画像x = [100、0、0、125]から始めたしょう。 増やす $むンラむン$ x_ {3} $むンラむン$ 0から60たで。

画像


ケヌスB

前の画像、x = [100、0、60、125]から始めたしょう。 増やす $むンラむン$ x_ {3} $むンラむン$ 60から120たで。

画像


盎感的には、 ケヌスAはさらに増加するはずです $むンラむン$ \ hat {y} $むンラむン$ ケヌスBより ただし、パヌセプトロンモデルは線圢方皋匏なので、ゲむンは+60 $むンラむン$ x_ {3} $むンラむン$ どちらの堎合も+0.12の増加に぀ながりたす $むンラむン$ \ hat {y} $むンラむン$ 。

私たちの線圢パヌセプトロンには他の問題もありたすが、たずこれら2぀を解決したしょう。

シグモむド掻性化機胜を備えた単局パヌセプトロンモデル1の反埩


問題1ず2は、パヌセプトロンをS字型に包むこずで解決できたす他の重みを遞択したす。 「シグモむド」関数は、0から1の間の垂盎軞に沿っお区切られたS字曲線であるため、バむナリむベントの確率をモデル化するためによく䜿甚されるこずを思い出しおください。

$$衚瀺$$シグモむドz= \ frac {1} {1 + e ^ {-z}} $$衚瀺$$


画像


この考えに埓っお、モデルを次の画像ず方皋匏で補完できたす。

画像


$$衚瀺$$ z = w \ cdot x = w_1x_1 + w_2x_2 + w_3x_3 + w_4x_4 $$衚瀺$$


$$ディスプレむ$$ \ widehat y =シグモむドz= \ frac {1} {1 + e ^ {-z}} $$ディスプレむ$$


おなじみ はい、これは旧来のロゞスティック回垰です。 ただし、シグモむド掻性化関数を備えた線圢パヌセプトロンずしおモデルを解釈するこずは、より䞀般的なアプロヌチの機䌚を増やすため、圹立ちたす。 たた、解釈できるようになったため $むンラむン$ \ hat {y} $むンラむン$ 確率ずしお、それに応じお決定ルヌルを倉曎する必芁がありたす。

$$ display $$ fx= {\ begin {cases} 1{\ text {if}} \ \ widehat {y}> 0.5 \\ 0{\ text {otherwise}} \ end {cases}} $$ディスプレむ$$



問題の䟋を続けお、次の遞択されたモデルがあるず仮定したす。

$$ display $$ \ begin {bmatrix} w_1w_2w_3w_4 \ end {bmatrix} = \ begin {bmatrix} -0.140-0.1450.1210.092 \ end {bmatrix} $$ display $$


$$衚瀺$$ b = -0.008 $$衚瀺$$


$$ディスプレむ$$ \ widehat y = \ frac {1} {1 + e ^ {--0.140x_1 -0.145x_2 + 0.121x_3 + 0.092x_4 -0.008}} $$ディスプレむ$$


前のセクションの画像の同じ䟋でこのモデルがどのように動䜜するかを芳察したす。

画像


私たちは間違いなく問題1を解決するこずができたした。

ケヌスA

画像[100、0、0、100]から始めたしょう。 増やす $むンラむン$ x_3 $むンラむン$ 「0〜50。

画像


ケヌスB

画像[100、0、50、100]から始めたしょう。 増やす $むンラむン$ x_3 $むンラむン$ 「50から100。

画像


シグモむドの曲率により、 ケヌスAが増加するに぀れおケヌスAがどのように「動䜜」急速に増加するかに泚目しおください。 $むンラむン$ z = w \ cdot x $むンラむン$ しかし、増加が続くずペヌスは遅くなりたす $むンラむン$ z $むンラむン$ 。 これは、 ケヌスAは、 ケヌスBよりも階段パタヌンの可胜性の倧幅な増加を反映すべきであるずいう盎感的な理解ず䞀臎しおいたす。

画像

残念ながら、このモデルにはただ問題がありたす。

  1. $むンラむン$ \ widehat y $むンラむン$ 各倉数ず単調な関係がありたす。 しかし、明るい日陰の階段を認識する必芁がある堎合はどうでしょうか
  2. モデルは倉数の盞互䜜甚を考慮したせん。 画像の䞀番䞋の行が黒であるずしたす。 巊䞊のピクセルが癜の堎合、右䞊のピクセルを暗くするず、階段パタヌンの可胜性が高くなりたす。 巊䞊のピクセルが黒の堎合、右䞊のピクセルをシェヌディングするず、階段の可胜性が䜎くなりたす。 蚀い換えれば、増加 $むンラむン$ x_3 $むンラむン$ 朜圚的に増加たたは枛少するはずです $むンラむン$ \ widehat y $むンラむン$ 、他の倉数の倀に応じお。 珟圚のモデルでは、これは達成できたせん。

シグモむド掻性化機胜を備えた倚局パヌセプトロンモデル2の反埩


䞊蚘の問題の䞡方を解決するには、パヌセプトロンモデルに別のレむダヌを远加したす。 䞊蚘のモデルに䌌たいく぀かの基本モデルを䜜成したすが、各基本モデルの出力を別のパヌセプトロンの入力に転送したす。 このモデルは、実際には「バニラ」ニュヌラルネットワヌクです。 さたざたな䟋でどのように機胜するかを芋おみたしょう。

䟋1階段パタヌン認識

  1. 「巊階段」が認識されたずきに機胜するモデルを構築し、 $むンラむン$ \ widehat y_ {å·Š} $むンラむン$
  2. 「右階段」が認識されたずきに機胜するモデルを構築し、 $ inline $ \ widehat y_ {right} $ inline $
  3. 基本モデルに掚定倀を远加しお、 䞡方の倀 $むンラむン$ \ widehat y_ {å·Š} $むンラむン$ 、 $ inline $ \ widehat y_ {right} $ inline $ 玠晎らしい

画像


画像


別のオプション

  1. 䞋の行が暗いずきに機胜するモデルを䜜成し、 $むンラむン$ \ widehat y_1 $むンラむン$
  2. 巊䞊のピクセルが暗く、右䞊のピクセルが明るい堎合に機胜するモデルを䜜成したす。 $むンラむン$ \ widehat y_2 $むンラむン$
  3. 巊䞊のピクセルが明るく、右䞊のピクセルが暗いずきに機胜するモデルを構築したしょう。 $むンラむン$ \ widehat y_3 $むンラむン$
  4. 最終シグモむド関数が次の堎合にのみ機胜するように、基本モデルを远加したす。 $むンラむン$ \ widehat y_1 $むンラむン$ そしお $むンラむン$ \ widehat y_2 $むンラむン$ 玠晎らしいずき $むンラむン$ \ widehat y_1 $むンラむン$ そしお $むンラむン$ \ widehat y_3 $むンラむン$ 玠晎らしいです。 こずに泚意しおください $むンラむン$ \ widehat y_2 $むンラむン$ そしお $むンラむン$ \ widehat y_3 $むンラむン$ 同時に倧きくするこずはできたせん。


画像


画像


䟋2明るい色の階段を認識する

  1. 「圱付きの䞋段」、「圱付きx1ず癜x2」、「圱付きx2ず癜x1」、 $むンラむン$ \ widehat y_1 $むンラむン$ 、 $むンラむン$ \ widehat y_2 $むンラむン$ そしお $むンラむン$ \ widehat y_3 $むンラむン$
  2. 「暗い䞋の列」、「暗いx1ず癜いx2」、「暗いx2ず癜いx」、 $むンラむン$ \ widehat y_4 $むンラむン$ 、 $むンラむン$ \ widehat y_5 $むンラむン$ そしお $むンラむン$ \ widehat y_6 $むンラむン$
  3. モデルを接続しお、シグモむドで結果を圧瞮する前に、「濃い」識別子が「シェヌディングされた」識別子から枛算されるようにしたす


画像

画像

甚語メモ


1぀の局のパヌセプトロンには1぀の出力局がありたす。 ぀たり、䜜成したモデルは2局パヌセプトロンず呌ばれたす。これは、別の出力局の入力である出力局があるためです。 ただし、同じモデルをニュヌラルネットワヌクず呌ぶこずができたす。この堎合、ネットワヌクには3぀の局入力局、非衚瀺局、出力局がありたす。



代替アクティベヌション機胜


この䟋では、シグモむド掻性化関数を䜿甚したした。 ただし、他のアクティベヌション機胜も䜿甚できたす。 しばしばtanhずreluを䜿甚したした 。 掻性化関数は非線圢でなければなりたせん。そうでなければ、ニュヌラルネットワヌクは同様の単​​局パヌセプトロンに単玔化されたす。

マルチクラス分類


最終出力レむダヌで耇数のノヌドを䜿甚するこずで、モデルを簡単に拡匵しお、マルチクラス分類で機胜するようにするこずができたす。 ここでの考え方は、各出力ノヌドがクラスの1぀に察応するずいうこずです $むンラむン$ c $むンラむン$ 予枬しようずしおいたす。 からの芁玠を反映するシグモむドで出力を狭める代わりに $むンラむン$ \ mathbb {R} $むンラむン$ 区間[0、1]から芁玠に入れるず、 softmax関数を䜿甚できたす。 この関数は 、 $むンラむン$ \ mathbb {R} ^ n $むンラむン$ ベクトルで $むンラむン$ \ mathbb {R} ^ n $むンラむン$ 結果のベクトルの芁玠の合蚈が1になるようにしたす。蚀い換えるず、ベクトル[ $むンラむン$ probclass_1$むンラむン$ 、 $むンラむン$ probclass_2$むンラむン$ 、...、 $むンラむン$ probclass_C$むンラむン$ ]。



3぀以䞊のレむダヌを䜿甚する深局孊習


疑問に思うかもしれたせん-「バニラ」ニュヌラルネットワヌクを拡匵しお、その出力局を4番目の局さらに5番目、6番目などに転送するこずは可胜ですか はい これは通垞「ディヌプラヌニング」ず呌ばれたす。 実際には、非垞に効果的です。 ただし、1぀以䞊の隠れ局で構成されるネットワヌクは、1぀の隠れ局を持぀ネットワヌクでシミュレヌトできるこずに泚意しおください。 実際、 普遍近䌌定理によれば、1぀の隠れ局を持぀ニュヌラルネットワヌクを䜿甚しお、任意の連続関数を近䌌できたす。 1぀の隠れ局を持぀ネットワヌクではなく、ディヌプニュヌラルネットワヌクアヌキテクチャを頻繁に遞択する理由は、遞択手順䞭に、通垞、゜リュヌションにすばやく収束するためです。



ラベル付きトレヌニングサンプルのモデルの遞択孊習゚ラヌの逆分垃


悲しいかな、私たちは遞択手順に到達したした。 これに先立ち、ニュヌラルネットワヌクが効率的に機胜するずいう事実に぀いお話したしたが、ニュヌラルネットワヌクがラベル付きトレヌニングサンプルにどのように適応するかに぀いおは説明したせんでした。 この質問の類䌌点は、「ラベル付きのトレヌニングサンプルに基づいおネットワヌクに最適な重みを遞択するにはどうすればよいですか」です。 通垞の答えは募配降䞋ですただし、 MMPが適しおいる堎合もありたす。 問題の䟋を匕き続き凊理するず、募配降䞋手順は次のようになりたす。

  1. ラベル付きのトレヌニングデヌタから始めたす
  2. 埮分可胜な損倱関数を最小化するには、 $むンラむン$ L\ mathbf {\ widehat Y}、\ mathbf {Y}$ inline $
  3. ネットワヌク構造を遞択したす。 特に、レむダヌの数ず各レむダヌのノヌドを決定する必芁がありたす。
  4. ランダムな重みでネットワヌクを初期化したす。
  5. ネットワヌクを介しおトレヌニングデヌタを枡し、各サンプルの予枬を生成したす。 損倱関数に埓っお合蚈誀差を枬定し、 $むンラむン$ L\ mathbf {\ widehat Y}、\ mathbf {Y}$ inline $ 。 これは盎接配垃ず呌ばれたす。
  6. 各重みの小さな倉化に察しお、珟圚の損倱がどのように倉化するかを刀断したす。 ぀たり、募配を蚈算したす $むンラむン$ L $むンラむン$ ネットワヌク内の各重みを考慮に入れたす。 これは逆䌝播ず呌ばれたす。
  7. 負の募配の方向に小さな「ステップ」を䜜成したす。 たずえば、 $むンラむン$ w_ {23} = 1.5 $むンラむン$ 、そしお $ inline $ \ frac {\ partial L} {\ partial w_ {23}} = 2.2 $ inline $ その埌枛少 $むンラむン$ w_ {23} $むンラむン$ 少しでも電流損倱がわずかに枛少するはずです。 したがっお、我々は倉化しおいたす $ inline $ w_3= w_3-2.2 \ times 0.001 $ inline $ ここで、0.001は指定された「ステップサむズ」です。
  8. このプロセスをステップ5から䞀定回数繰り返すか、損倱が収束するたで繰り返したす

少なくずもそれが䞻なアむデアです。 実際に実装するず、倚くの困難が生じたす。

難易床1-蚈算の耇雑さ


遞択プロセスでは、ずりわけ、募配を蚈算する必芁がありたす $むンラむン$ L $むンラむン$ 各重量を考慮に入れたす。 これは難しいので $むンラむン$ L $むンラむン$ 出力局の各ノヌドに䟝存し、これらの各ノヌドはその前の局の各ノヌドに䟝存したす。 これは、蚈算が $ inline $ \ frac {\ partial L} {\ partial w_ {ab}} $ inline $ 耇雑な導関数匏を䜿甚しお、実際の悪倢に倉わりたす。 実䞖界の倚くのニュヌラルネットワヌクには、数十の局に数千のノヌドが含たれおいるこずを忘れないでください。この問題は、耇雑な埮分方皋匏を適甚する際に、 $ inline $ \ frac {\ partial L} {\ partial w_ {ab}} $ inline $ 同じ䞭間デリバティブを再利甚したす。 これを泚意深く監芖すれば、同じ蚈算が䜕千回も繰り返されるのを避けるこずができたす。

別のトリックは、特別なアクティベヌション関数を䜿甚するこずです。その掟生関数は、倀の関数ずしお蚘述できたす。 たずえば、デリバティブ $むンラむン$シグモむドx$むンラむン$ = $むンラむン$シグモむドx1-シグモむドx$むンラむン$ 。 盎接パス䞭に蚈算するため、これは䟿利です $むンラむン$ \ widehat y $むンラむン$ 各トレヌニングサンプルに぀いお、蚈算する必芁がありたす $むンラむン$シグモむド\ mathbf {x}$むンラむン$ いく぀かのベクトルのビット単䜍 $むンラむン$ \ mathbf {x} $むンラむン$ 。 バックプロパゲヌション䞭に、これらの倀を再利甚しお募配を蚈算できたす $むンラむン$ L $むンラむン$ 重みを考慮しお、時間ずメモリを節玄したす。

3番目のトリックは、トレヌニングサンプルを「ミニグルヌプ」に分割し、各グルヌプを次々に考慮しお重みを倉曎するこずです。 たずえば、トレヌニングデヌタを{batch1、batch2、batch3}に分割するず、トレヌニングデヌタの最初のパスは次のようになりたす。

  1. batch1に基づいお重みを倉曎する
  2. batch2に基づいお重みを倉曎する
  3. batch3に基づいお重みを倉曎する

募配はどこですか $むンラむン$ L $むンラむン$ 各倉曎埌に再蚈算されたした。

最埌に、蚀及する䟡倀のある別の手法は、䞭倮凊理装眮の代わりにビデオ凊理装眮を䜿甚するこずです。これは、倚数の䞊列蚈算を実行するのにより適しおいるためです。

難易床2-募配降䞋法では絶察最小倀を芋぀けるのに問題がある


これは、募配降䞋ほどニュヌラルネットワヌクの問題ではありたせん。 募配降䞋䞭に、重みが極小倀でスタックする可胜性がありたす。 少なくずも重みが「ゞャンプ」する可胜性もありたす。 これを凊理する1぀の方法は、異なるステップサむズを䜿甚するこずです。 別の方法は、ネットワヌク内のノヌドやレむダヌの数を増やすこずです。 しかし、過床に近い適合を恐れる。 さらに、 モヌメントを䜿甚するなどのいく぀かのヒュヌリスティック手法が効果的です。

難易床3-共通のアプロヌチを開発する方法


任意の数のノヌドずレむダヌを持぀任意のニュヌラルネットワヌクの倀を遞択できる遺䌝的プログラムを䜜成する方法は 正解は、 Tensorflowを䜿甚する必芁があるずいうこずです。 しかし、詊しおみたい堎合、最も難しい郚分は損倱関数の募配を蚈算するこずです。 ここでのコツは、グラデヌションを再垰関数ずしお衚珟できるかどうかを刀断するこずです。 5局のニュヌラルネットワヌクは、䞀郚のパヌセプトロンにデヌタを送信する4局のニュヌラルネットワヌクです。 しかし、4局ニュヌラルネットワヌクは、パヌセプトロンなどにデヌタを転送する3局ニュヌラルネットワヌクにすぎたせん。 より正匏には、これは自動埮分ず呌ばれたす 。

Source: https://habr.com/ru/post/J342334/


All Articles