完全接続ニューラルネットワーク単層モデル原理

序文

  深層学習とは、サンプルデータの内部法則や表現レベルを学習することであり、学習過程で得られる情報は、文字や画像、音声などのデータの解釈に大きく役立ちます。完全接続ニューラル ネットワーク (MLP) は、基本的なネットワーク タイプの 1 つであり、従来の機械学習アルゴリズムと比較した深層学習手法の特徴、つまりビッグ データ ドライブ、数式導出、自己反復更新、ブラック ボックス トレーニングなどを完全に体現しています。

単層MLP

  単層ニューラル ネットワークのトレーニングは、一連のパーセプトロンの重みを見つけることに基づいています。パーセプトロンのセットの出力と予想される出力の間の誤差を最小限に抑える実装手順は以下の通りです。
ここに画像の説明を挿入
  ※ステップ 1: ランダム重み行列を初期化
  ※ステップ 2: 特徴データを入力してパーセプトロンの出力、つまり順伝播を
計算   ※ステップ 3: パーセプトロンの出力ベクトル間の誤差を計算とサンプルの期待される出力、つまり損失関数
  ※ ステップ 4: 計算された誤差に従って重み行列の更新勾配、つまり勾配降下
を計算します   ※ ステップ 5: 更新勾配を使用して重み行列を更新します。
  ※ステップ6:ステップ2からトレーニング終了まで繰り返し行う(トレーニング回数は経験に応じて任意に決定)

1. 順伝播

  各入力ベクトルに重みを割り当て、結果ベクトルを計算します。一般にニューラルネットワークに非線形特性を持たせるには、線形変換で得られた値を処理する活性化関数を導入します。

  線形変換 (重み付けとバイアス): z = w T x + bz = w^T x + bz=wT ×+b

  非線形変換 (活性化関数sigmoid ): δ ( x ) = 1 1 + e − z \delta (x) = \frac{1}{ {1 + e^{ - z} }}d ( x )=1 + e−z _1

  上の式ではwwwは体重、bbbはバイアス、xxxは入力値、zzzは線形出​​力値δ \deltaδは非線形出力値です。

2.アクティベーション機能

  では、なぜアクティベーション関数を導入するのでしょうか?

  回答: ネットワークに活性化関数が欠落している場合、ニューラル ネットワークは線形分類器になり、層の数が増加すると、後ろのニューロンによって取得される値が非常に大きくなります。この数がはるかに大きい場合、前のニューロンの値。前のニューロンはネットワーク全体の表現にとって無意味に見えます。したがって、ネットワークの層が作成されるたびに制約する必要があります。

  以下に、いくつかの一般的なアクティベーション関数を示します。

2.1 シグモイド関数

S ( x ) = 1 1 + e − x S(x) = \frac{1}{ {1 + e^{ - x} }}S ( × )=1+e×1
ここに画像の説明を挿入
  シグモイド関数の入力値が 5 より大きい場合、出力は 1 に近くなります。入力値が -5 より小さい場合、出力は 0 に近くなり、入力値は (0,1 の間に圧縮されます) )。
  特徴:出力が0より大きく、中心対称ではない

2.2 タン関数

  Tanh は双曲線関数の 1 つであり、tanh() は双曲線正接です。数学では、双曲線正接「tanh」は、基本的な双曲線関数である双曲線サインと双曲線余弦から導出されます。
Tanh ⁡ x = sinh ⁡ x cosh ⁡ x = ex − e − xex + e − x \tanh x = \frac{ { \sinh x}}{ {\cosh x}} = \frac{ {e^x - e ^{ - x} }}{ {e^x + e^{ - x} }}胡散臭いバツ=コッシュバツ生まれる×=eバツ+e×eバツe ×
ここに画像の説明を挿入
  Tanh 関数の入力値が 2.5 より大きい場合、出力は 1 に近くなります。入力値が -2.5 より小さい場合、出力は -1 に近くなり、入力値は (-1 の間に圧縮されます) ,1)。
  特長:出力は正負、中心対称です。

2.3 ReLu関数

  通常の意味では、ReLu 関数は数学における傾き関数、つまり
f ( x ) = max ⁡ ( 0 , x ) f(x) = \max (0,x) を指します。f ( x )=最大( 0 ,x )
ここに画像の説明を挿入
  ReLu関数の入力値が0より大きい場合は元の値を出力し、入力値が0未満の場合は出力を0とします。

  ニューラル ネットワークで、線形変換後のニューロンの非線形出力結果を定義します。言い換えると、ニューロンに入るニューラル ネットワークの前の層からの入力ベクトルについて、ReLu 活性化関数を使用するニューロンは、次の層のニューロンに出力するか、ニューラル ネットワーク全体の出力として出力します (現在のニューロンがどこにあるかに応じて)。ネットワーク構造の場所にあります)。
max ⁡ ( 0 , w T x + b ) \max (0,w^T x + b)最大( 0 ,wT ×+b )

2.4 リーキーな ReLu 関数

  入力値が負の場合、Leaky ReLU の勾配は 0 ではなく定数になります。入力値が正の場合、Leaky ReLU 関数は通常のランプ関数と一致します。つまり、f ( x ) = { x ifx > 0 λ x ifx ≤ 0 f(x) = \left\{ \begin{array}{l} x~~~~~~~ifx > 0 \\ \\ \lambda x~~~~ifx \le 0 \\ \end{array} \right。f ( x )=x i f x       >0λ x i f x    0
ここに画像の説明を挿入
  ReLu 関数と比較すると、Leaky ReLu 関数は入力値が 0 未満の場合に出力値を直接 0 にするのではなく、入力値を 10 分の 1 に減少させます。

3. 損失​​関数

  損失関数は、モデルの計算値と実際の値の間の類似性を評価するために使用されます。損失関数が小さいほど、モデルのロバスト性が高くなります。もちろん、中心となるのはパラメータの合計を最適化することです。さらに、損失関数の選択には、特定の問題に対する具体的な分析が必要です。以下に、いくつかの一般的な損失関数の計算式を示します。

   ◎L2损失関数:L ( y ′ , y ) = ∑ i = 1 n ( yi ′ − yi ) 2 L(y'^~,y) = \sum\limits_{i = 1}^n {(y' _i - y_i )^2 }L ( y「、 y )=i = 1( yy私は2

  ◎平均二乗誤差損失関数: { L ( y ' , y ) = 1 2 n ∑ i = 1 n ( yi ' − yi ) 2 マルチサンプル L ( y ' , y ) = 1 2 ( yi ' − yi ) 2 つの単一サンプル \left\{ \begin{array}{l} L(y'^~ ,y) = \frac{1}{ { 2n}}\sum\limits_{i = 1}^n {(y' _i - y_i )^2 } ~~~~~複数のサンプル\\ \\ L(y'^~ ,y) = \frac{1}{2}(y' _i - y_i )^2 ~~~~~ ~~ ~~~~~単一サンプル\\ \end{array} \right。L ( y「、 y )=2n _1i = 1( yy私は2複数のサンプル     L ( y「、 y )=21( yy私は2つのシングル            サンプル

  ◎交差関数:L ( y ' , y ) = [ y log ⁡ y ' + ( 1 − y ) log ⁡ ( 1 − y ’ ) ] L(y'^~,y) = [y\log y' ^ ~ + (1 -y)\log (1 - y')]L ( y「、 y )=[ yログ_y +( 1y )ログ( 1 _y

  上の式では、y ' y 'y'は計算値、yyyは実数値です

4. 勾配降下法

  勾配降下法は、「エラーをエラーで修正する」という考え方を反映したフィードバックフォワード計算法であり、ニューラルネットワークの反復更新の中核プロセスでもあります。
  ◎反復更新w 1 = w 0 − η d L ( w ) dwb 1 = b 0 − η d L ( b ) db \begin{array}{l} w_1 = w_0 - \eta \frac{ {dL(w ) }}{ {dw}} \\ \\ b_1 = b_0 - \eta \frac{ {dL(b)}}{ {db}} \\ \end{配列}w1=w0d L ( w )b1=b0db _d L ( b )
  其中 w 0 w_0 w0そしてb 0 b_0b0は現在の実際の値、− η - \etaηは、 LLステップ サイズ(特定の値)ですLは極値を取るwww时, w 1 w_1 w1は勾配降下法によって得られる値です

  ◎ 損失関数の勾配が小さくなる場合、d L ( a , y ) dw = d L ( a , y ) da ⋅dadz ⋅ dzdw \frac{ { dL(a,y)}を解くには連鎖則が必要になります。 }{ {dw} } = \frac{ { dL(a,y)}}{ {da}} \cdot \frac{ {da}}{ {dz}} \cdot \frac{ {dz}}{ {dw }}
d L ( a ,y )=だあ_d L ( a ,y )dz _だあ_ディーズ_
  上記は単層ニューラルネットワークの紹介であり、継続的に更新および改善されます~~~

おすすめ

転載: blog.csdn.net/m0_58807719/article/details/128136998