カバーページ#
非常に印象的なシーンです〜〜

MLP の概要#
線形モデルには多くの制約があります~~(明らかなので、ここでは話しません)~~
線形モデルの制約を克服するために、ネットワークに隠れ層を追加することができます。これにより、より一般的な関数の関係を処理できるようになります。最も簡単な方法は、多くの全結合層を積み重ねて、各層を上の層に出力し、最終的な出力を生成することです。最初の L−1 層を表現とし、最後の層を線形予測器と見なすことができます。
このようなアーキテクチャは通常、多層パーセプトロン(multilayer perceptron)またはMLPと呼ばれます。
アフィン関数の合成はアフィン関数であるため(明らかなので)、他の変換を行わずにより多くの線形層を積み重ねることは、非線形学習に対して意味がないです (完全に無意味ではありませんが hh)。
MLP の利点は、アフィン変換の後に各隠れユニットに非線形の活性化関数 activation function σを適用することです。活性化関数の出力は活性値 _activations_と呼ばれます。活性化関数があるため、通常、私たちの多層パーセプトロンを線形モデルに変換することは不可能です。
MLP の構造#
言うまでもありません!
HO=σ(XW(1)+b(1)),=HW(2)+b(2).
各隠れ層に非線形の活性化関数を適用した後、隠れ層を積み重ねることは意味があります(より複雑な非線形関係を学習し、より強力な表現能力を持つため)。
H(1)H(2)=σ1(XW(1)+b(1))=σ2(H(1)W(2)+b(2))⋯
隠れ層は広げることも深くすることもできますが、選択をしなければなりません (省略)
活性化関数たち#
最初に登場するのは有名な ReLU 関数です。非常にシンプルですが、最も広く使用されている活性化関数の一つです。
非常にシンプルで力強いですね。負の値に遭遇すると直接 0 になり、正の値に遭遇するとそのままです。
ReLU(x)=max(x,0).
関数のグラフは省略します
しかし、問題があります。 x=0 のときの導関数の値が突然変化します(これは非常に面倒ですが、実際にはすべての境界条件が面倒です)。そのため、私たちは 0 での導関数の値を 0 とデフォルトにします hh、無関心な態度を取ります。
整流ダイオード(信号が通過するか、遮断されるか)に似ています。さらに重要なのは、それがニューラルネットワークの勾配消失問題を解決していることです()。
「では、一部の信号を通過させるために一部を保持できますか?」
それで、改良版の pReLU があります:
pReLU(x)=max(0,x)+αmin(0,x).
次に登場するのは sigmoid 関数です。sigmoid:R→(0,1)
sigmoid(x)=1+exp(−x)1.

しかし、sigmoid は隠れ層ではあまり使用されておらず、よりシンプルでトレーニングしやすい ReLU に置き換えられています。リカレントニューラルネットワークでは、sigmoid ユニットを使用して時系列情報のフローを制御します。入力が 0 に近づくと、sigmoid 関数は線形変換に近づきます。
dxdsigmoid(x)=(1+exp(−x))2exp(−x)=sigmoid(x)(1−sigmoid(x)).
(これは素晴らしい特性です)
最後に紹介するのは tanh 関数です
tanh(x)=1+exp(−2x)1−exp(−2x).

dxdtanh(x)=1−tanh2(x).
(これも素晴らしい特性です)
(偽の)結論#
もちろん、後で補足しますが、とりあえずここまでにしておきます。コードの部分は別のセクションで書くつもりです))
さようなら~