$30 off During Our Annual Pro Sale. View Details »

ニューラルネット実践

Ayumu
February 21, 2019

 ニューラルネット実践

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

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

Ayumu

February 21, 2019
Tweet

More Decks by Ayumu

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  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

    View Slide

  4. ⚫恒等関数とは入力されたものをそのまま
    出力する関数
    ⚫出力層に恒等関数を用いると入力信号
    をそのまま出力する
    恒等関数
    a1 y
    δ()

    View Slide

  5. ⚫分類問題などではソフトマックス関数を用い

    ⚫ソフトマックス関数:

    =
    exp
    σ
    =1
    exp(
    )
    ⚫ソフトマックス関数の出力はすべての入力
    信号から結びつきを持たせる。各ニューロン
    がすべての入力信号から影響を受ける形に
    なる。
    ソフトマックス関数
    a1 y1
    δ()
    a2 y2
    a3 y3

    View Slide

  6. ⚫ソフトマックス関数の出力は0から1の間
    の実数になり、また、その総和は1となる。
    これによって、確率として計算することが
    できる。
    ⚫また、指数関数を考えると、ソフトマック
    ス関数に当てはめても、要素の大小関係
    は変化しない。
    ソフトマックス関数 特徴
    a1 y1
    δ()
    a2 y2
    a3 y3

    View Slide

  7. ソフトマックス関数 実装
    結果
    コード

    View Slide

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

    View Slide

  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表現と二乗和誤差

    View Slide

  10. 二乗和誤差 実装
    結果
    コード

    View Slide

  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となって、出力が正しく考えられる場合小さい値になる。
    交差エントロピー誤差

    View Slide

  12. 交差エントロピー誤差 実装
    結果
    コード

    View Slide

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

    =
    − η


    この時のηをニューラルネットの学習率という
    勾配法

    View Slide

  14. ⚫ 0
    , 1
    = 0
    2 + 1
    2の最小値を勾配法で求める
    勾配降下法(最小値を求める)実装
    コード
    結果

    View Slide

  15. ⚫ニューラルネットの勾配とは、重みパラメータに関する損失関数の
    勾配である。とある重みWに対する損失関数Lがあった場合、その
    勾配は

    とあらわすことができる。
    ⚫重みのパラメータWの勾配dWが負の値であった場合、その値を
    重みに更新してあげ、正の値であった場合、重みからその値を引け
    ば、損失関数を減らすことができる。
    ニューラルネットの勾配

    View Slide

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

    View Slide

  17. 宿題:活性化関数 線形関数であった
    場合
    ⚫活性化関数が線形関数であった場合
    ℎ =
    これが3層のニューラルネットだった場合
    ℎ ℎ ℎ = 3
    = 3
    となるaが存在してしまう。⇒単層パーセプトロンと一緒

    View Slide

  18. 宿題:活性化関数 シグモイドであった
    場合
    ⚫シグモイド関数を微分する
    ⚫微分の最大値が0.25で、層を増やしていくと勾配が消失
    する。

    View Slide

  19. 宿題:活性化関数 ReLUであった場合
    ⚫微分されても活性化関数は
    ℎ′ = ቊ
    1 ( > 0)
    0 ( < 0)
    そのため、勾配消失が防げるため、ReLU関数が使われるこ
    とが多い

    View Slide