Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

深層学習による自然言語処理勉強会2章前半

616 views

Published on

株式会社レトリバで行われた「深層学習による自然言語処理」勉強会で用いた資料です。

Published in: Technology
  • Be the first to comment

深層学習による自然言語処理勉強会2章前半

  1. 1. 深層学習による自然言語処理第2章 株式会社レトリバ 西鳥羽 二郎
  2. 2. このスライドの範囲 • 2章 ニューラルネットの基礎 • 2.1章 教師あり学習 • 2.1.1章 教師あり学習の定義 • 2.1.2章 損失関数 • 2.1.3章 教師あり学習に用いるデータ • 2.2章 順伝搬型ニューラルネット • 2.2.1章 行列とベクトルのかけ算 • 2.2.2章 モデル • 2.3章 活性化関数 • 2.4章 勾配法 • 2.4.1章 勾配法による関数最小化 • 2.4.2章 ミニバッチによる確率的最適化 • 2.5章 誤差伝搬法 • 2.5.1章 ニューラルネットの微分 • 2.5.2章 深いニューラルネットの難しさ
  3. 3. ニューラルネットの基礎 • この章では一貫してニューラルネットワークのことを 「ニューラルネット」と呼ぶ • 以下の順で説明する • 機械学習とは • 誤差伝搬法とは • 広く使われているニューラルネットの構造(次回)
  4. 4. 2.1章 教師あり学習 • 教師あり学習 • 訓練データ: (入力, 入力に対して予測したい対象の正解) • 訓練データを用いて予測モデルを学習する •
  5. 5. 2.1.1章 教師あり学習 入 力 ( 訓 練 デ ー タ ) 損 失 関 数 (x(n), y(n)) 予測モデル 損 失 L(Θ)
  6. 6. 2.1.2 章 損失関数 入 力 ( 訓 練 デ ー タ ) 損 失 関 数 (x(n), y(n)) 予測モデル 損 失 lΘ(x(n), y(n)) 交差エントロピー損失関数 ヒンジロス損失関数 fΘ(x(n), y(n))
  7. 7. 2.1.3章 教師あり学習に用いられるデータ 入 力 ( 訓 練 デ ー タ ) 損 失 関 数 本来は世にあまねくデータに対して損失が小さくできるよう最適化した いがそれは不可能なので訓練データに対して最小となるように学習する 予測モデル 損 失
  8. 8. 2.1.3章 教師あり学習に用いられるデータ • 学習データ(train): 学習に用いるデータ • 開発データ(development, validation): 学習には用いない が、学習を調整するためにうまく学習ができているかを確 認するための正解事例 • 評価データ(test): 学習したモデルを最後に評価するための 正解事例
  9. 9. 2.2章 順伝搬型ニューラルネット 2.2.2章 モデル • 予測モデルfΘ(x(n), y(n)) として最も簡単な順伝搬型(Feed Forward Neural Network)を説明する • 行列Wをかけてベクトルbを足すという演算を繰り返す 入 力 h(1) h(2) h(3) … h(L) o h(1)=W (1) x+b(1) h(2)=W (2) h(1)+b(2) h(3)=W (3) h(2)+b(3) o=W (L) h(L-1)+b(L)
  10. 10. 2.2.2章 モデルの続き • W (1), W (2),…, W (L), b(1), b(2),…, b(L) はすべてパラメータと なる • 今まで出ていたΘの一例 • 隠れ状態ベクトルの次元数が大きく、層の数が多いほど表 現力が強い
  11. 11. 2.3章 活性化関数 • 各隠れ層の状態ベクトルに対して行列演算を行った後、非 線形な関数を適用する • sigmoid • tanh • ReLU • 層を深くする際には活性化関数が必要 • 例) W (l+1) (W (l) (h (l-1) ))という2層のニューラルネットを構築し た時W=(W (l+1) W (l))の行列をもとにW(h)となるような1層の ニューラルネットを構築できる
  12. 12. 2.4章 勾配法 2.4.1章 勾配法による関数最小化 • 学習とは損失関数L(Θ)の最小化である • パラメータΘを勾配法を用いて調整する • 勾配法 • パラメータΘのある値において目的関数を線形直線で近似 • 逐次的にパラメータを更新 • Θ(k+1)=Θ(k)-η∂L(Θ(k)) • η: 学習率(パラメータ)
  13. 13. 2.4.2章 ミニバッチ化による確率的勾配法 • 式(2.1)は全訓練データに対する損失だが、データ数が多い と求めるのは難しい • 1訓練データで損失及び勾配を求めてパラメータを更新す る確率的勾配法を用いる • 現実的には全データでも1データでもなく複数のデータで の損失及び勾配を求めて平均を求めるミニバッチ法を用い る
  14. 14. 2.5章 誤差伝搬法 2.5.1章 ニューラルネットの微分 • ニューラルネットにおいて目的関数の偏微分を求めるのに は誤差伝搬法を用いる • 基本的には自分で実装する必要はないだろう • 微分の連鎖律(合成関数の微分)に従うとニューラルネット のパラメータの微分はそれぞれの関数微分の積で表せる
  15. 15. 2.5.2章 深いネットワークの難しさ • 入力出力の関係を表した計算グラフにおいて偏微分の値は 損失関数の方から逆側に計算する 入 力 ( 訓 練 デ ー タ ) 行 列 活 性 化 関 数 … 行 列 活 性 化 関 数 行 列 活 性 化 関 数 損 失 関 数 順伝搬の計算 偏微分の計算
  16. 16. 2.5.2章 深いネットワークの難しさの続き • 誤差伝搬法ではニューラルネットの各パラメータの微分は 関数微分の積で表される • ∂l(o)/ ∂o * w(o) * w(3) * w(2) * x (式2.33の一部) • 層が増えると積の回数が増える • 偏微分の値が小さい時: 指数的に小さくなる(勾配消失) • 偏微分の値が大きい時: 指数的に大きくなる(勾配爆発) • 深層学習とはいうものの、層が深いと学習は難しい • ResNetのような回避策を用いると1000層以上の学習もできる

×