ニューラルネット実践

7f4b04d4f609255390ad84a1b6bceac2?s=47 Ayumu
February 21, 2019

 ニューラルネット実践

ニューラルネット、損失関数、勾配法、前回の疑問点

長岡技術科学大学 自然言語処理研究室
学部3年 守谷 歩

7f4b04d4f609255390ad84a1b6bceac2?s=128

Ayumu

February 21, 2019
Tweet

Transcript

  1. ニューラルネット2 2019/02/21 長岡技術科学大学 自然言語処理研究室 学部3年 守谷 歩 ニューラルネット、損失関数、勾配法、前回の 疑問点

  2. ⚫入力層、中間層(隠れ層)、出力層に分けられたネットワーク ⚫重みをもつ層を数えることが多い(例:中間層が5個あったら6層 ネットワーク) 復習:ニューラルネットとは 入力層 中間層 出力層

  3. ⚫活性化関数h(x)を与える = ቊ 0 1 ∗ 1 + 2 ∗

    2 + ≤ 0 1 1 ∗ 1 + 2 ∗ 2 + > 0 (w1,w2:重み x1,x2:入力 b:バイアス) = h(b+w1∗x1+w2∗x2) 復習:ニューラルネットの式 h(x) x1 x2 w1 w2 1 y b
  4. ⚫恒等関数とは入力されたものをそのまま 出力する関数 ⚫出力層に恒等関数を用いると入力信号 をそのまま出力する 恒等関数 a1 y δ()

  5. ⚫分類問題などではソフトマックス関数を用い る ⚫ソフトマックス関数: ∶ = exp σ =1 exp( )

    ⚫ソフトマックス関数の出力はすべての入力 信号から結びつきを持たせる。各ニューロン がすべての入力信号から影響を受ける形に なる。 ソフトマックス関数 a1 y1 δ() a2 y2 a3 y3
  6. ⚫ソフトマックス関数の出力は0から1の間 の実数になり、また、その総和は1となる。 これによって、確率として計算することが できる。 ⚫また、指数関数を考えると、ソフトマック ス関数に当てはめても、要素の大小関係 は変化しない。 ソフトマックス関数 特徴 a1

    y1 δ() a2 y2 a3 y3
  7. ソフトマックス関数 実装 結果 コード

  8. ⚫ニューラルネットの学習とは、訓練データから、重みを更新して、 最適な値にすることである。 ⚫重みを更新するために損失関数といった指標を使う。 ⚫損失関数が最小になるような重みを出すことによって、最適な重 みを求めることができる。 ニューラルネット 学習

  9. ⚫損失関数として、二乗和誤差といったものがある。 = 1 2 σ − 2 (y:ニューラルネットの出力,t:教師データ) ⚫教師データを正解のデータには1をそれ以外には0を出力する表 記法をone-hot表現という

    y = [0.1,0.05,0.6,0.0,0.05,0.1,0.0,0.1,0.0,0.0] t = [0,0,1,0,0,0,0,0,0,0] One-hot表現と二乗和誤差
  10. 二乗和誤差 実装 結果 コード

  11. ⚫損失関数として、交差エントロピー誤差といったものがある。 = − σ log (y:ニューラルネットの出力,t:教師データ) ⚫さっき考えたone-hot表現で考える y = [0.1,0.05,0.6,0.0,0.05,0.1,0.0,0.1,0.0,0.0]

    t = [0,0,1,0,0,0,0,0,0,0] ニューラルネットの出力が0.6の場合、交差エントロピー誤差は -log0.6=0.51となって、出力が正しく考えられる場合小さい値になる。 交差エントロピー誤差
  12. 交差エントロピー誤差 実装 結果 コード

  13. ⚫損失関数が最小になる値をとるパラメータを学習時に見つけるの は難しいため、勾配を用いてできるだけ小さな値を使う。 ⚫勾配法は、現在地から勾配の方向に進み続け、関数の値を徐々 に減らしていく方法。 = − η この時のηをニューラルネットの学習率という 勾配法

  14. ⚫ 0 , 1 = 0 2 + 1 2の最小値を勾配法で求める

    勾配降下法(最小値を求める)実装 コード 結果
  15. ⚫ニューラルネットの勾配とは、重みパラメータに関する損失関数の 勾配である。とある重みWに対する損失関数Lがあった場合、その 勾配は とあらわすことができる。 ⚫重みのパラメータWの勾配dWが負の値であった場合、その値を 重みに更新してあげ、正の値であった場合、重みからその値を引け ば、損失関数を減らすことができる。 ニューラルネットの勾配

  16. コード 勾配法を用いたニューラルネット実装 結果

  17. 宿題:活性化関数 線形関数であった 場合 ⚫活性化関数が線形関数であった場合 ℎ = これが3層のニューラルネットだった場合 ℎ ℎ ℎ

    = 3 = 3 となるaが存在してしまう。⇒単層パーセプトロンと一緒
  18. 宿題:活性化関数 シグモイドであった 場合 ⚫シグモイド関数を微分する ⚫微分の最大値が0.25で、層を増やしていくと勾配が消失 する。

  19. 宿題:活性化関数 ReLUであった場合 ⚫微分されても活性化関数は ℎ′ = ቊ 1 ( > 0)

    0 ( < 0) そのため、勾配消失が防げるため、ReLU関数が使われるこ とが多い