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

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