パターン認識と機械学習 上
5.1~5.3.1
2018/12/13
1
本章の流れ
ニューラルネットワーク
➢5.1 ネットワークモデルの関数の形
基底関数をどうパラメータ表示するか
➢5.2 最尤推定の枠組みでのパラメータ決定
非線形最適化問題の解き方
➢5.3 誤差逆伝播の効率性
➢5.4 ヤコビ行列などへの拡張
➢5.5 正則化への様々なアプローチ
➢5.6 混合密度ネットワーク
条件付確率分布をモデル化
➢5.7 ベイズ理論の視点から議論
2
目次
ニューラルネットワーク
5.1 フィードフォワードネットワーク関数
5.1.1 重み空間対称性
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
5.3 誤差逆伝播
5.3.1 誤差関数微分の評価
3
目次
ニューラルネットワーク
5.1 フィードフォワードネットワーク関数
5.1.1 重み空間対称性
4
基底関数のデータへの適用
3章および4章では固定された基底関数を使用
5
Good: 解析・計算では有効な性質
e.g.) 最小二乗法の閉じた解が求まる
Bad: 次元の呪いによる応用可能性の限定
大規模な問題では、基底関数のデータへの適応が必要
⇒ ニューラルネットワーク(本章)や SVM(7章)
𝑦 𝐱, 𝐰 = 𝑓(σ 𝑗=1
𝑀
𝑤𝑗 𝜙𝑗 𝐱 ) (5.1)
𝑦 𝐱, 𝐰 : 予測モデル, 𝜙(𝐱): 基底関数
𝑓 :非線形活性化関数, 𝐱: 入力ベクトル, 𝐰: 係数(重み)
2つの異なるアプローチ
基底関数のデータへの適応方法は大きく分けて2つ
SVM
訓練データ点を中心に基底関数(e.g. RBF)を定義
⇒ 最適化が比較的容易,訓練に非線形最適化が含有
多層パーセプトロン,フィードフォワードニューラルネットワーク
事前に基底関数を決定し,基底関数のパラメータも学習
6
係数と基底関数を同時に学習してモデルの表現力UP!
多層パーセプトロン
多層パーセプトロンって呼ぶけども・・・実際は?
×(不連続な非線形性を持つ=出力が 𝟎 𝒐𝒓 𝟏 )
複数のパーセプトロン
〇(連続的な非線形性を持つ=出力が [𝟎, 𝟏])
ロジスティック回帰モデルを多層化したもの
7
多層パーセプトロンは SVM と比べて,
コンパクトで処理が高速(浅いネットワークなら?)
尤度関数がモデルパラメータの凸関数とならない
ニューラルネットワーク
「生体システムを数学的に表現しようという試み」が起源
⇒ 生物学的な妥当性について批判されている面も存在
実際的な応用の観点では,生物学的な現実性は不要
8
本章でのニューラルネットワークの扱いは
 統計的パターン認識の為の効率的なモデル
 実用面で最も評価の高い多層パーセプトロンに限定
×生物学
〇パターン認識 or 実用性
目次
ニューラルネットワーク
5.1 フィードフォワードネットワーク関数
5.1.1 重み空間対称性
9
フィードフォワードネットワーク関数
10
3章および4章と同じ形の基底関数を用いる
𝑦 𝐱, 𝐰 = 𝑓(σ 𝑗=1
𝑀
𝑤𝑗 𝜙𝑗 𝐱 ) (5.1)
𝑦 𝐱, 𝐰 : 予測モデル, 𝜙(𝐱): 基底関数
𝑓 :非線形活性化関数, 𝐱: 入力ベクトル, 𝐰: 係数(重み)
係数 𝑤𝑗 だけでなく,基底関数 𝜙𝑗 𝐱 も学習したい
⇒ これを2層のニューラルネットワーク(NN)で確認していく
参考文献には
「それぞれの基底関数自体が入力の線形和の非線形関数
であり,線形和の係数が適応可能なパラメータ」とある
2層のニューラルネットワーク
2層の NN では,左半分が基底関数部,右半分が係数部
11
入力層⇒中間層⇒出力層
中間層⇒出力層
係数部
𝑎𝑗 = ෍
𝑖=1
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖 + 𝑤𝑗0
(1)
𝑧𝑗 = ℎ(𝑎𝑗)
𝑎 𝑘 = ෍
𝑗=1
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗 + 𝑤 𝑘0
(2)
𝑦 𝑘 = 𝜎(𝑎 𝑘)
入力層⇒中間層
基底関数部
2層の NN を数式で追うⅠ
1層目:入力層⇒中間層(隠れ層)
入力変数 𝑥1, … , 𝑥 𝐷 の線形和を作成し,2層目へ
𝑧𝑗 = ℎ(σ 𝑗=1
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖 + 𝑤𝑗0
(1)
)
2層目:中間層⇒出力層
変数 𝑧1, … , 𝑧 𝑀 の線形和を作成し,出力層へ
𝑦 𝑘 = 𝜎(σ 𝑗=1
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗 + 𝑤 𝑘0
(2)
)
全体:入力層⇒中間層⇒出力層
1層目と2層目を結合し,入力から出力を導出
𝑦 𝑘 𝐱, 𝐰 = 𝜎(σ 𝑗=1
𝑀
𝑤 𝑘𝑗
(2)
ℎ(σ 𝑗=1
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖 + 𝑤𝑗0
(1)
) + 𝑤 𝑘0
(2)
)
12
順に
追っていく
2層の NN を数式で追うⅡ
入力⇒中間層で入力変数 𝑥1, … , 𝑥 𝐷 の線形和を作成・変換
𝑥0 = 1 を追加して簡単化すると,𝑎𝑗 = σ𝑖=0
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖
𝑧𝑗 = ℎ(σ𝑖=0
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖)
13
𝑎𝑗 = σ𝑖=1
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖 + 𝑤𝑗0
(1)
(5.2)
𝑧𝑗 = ℎ(𝑎𝑗) (5.3)
𝑎𝑗: 活性, 𝑗: [1, 𝑀], (1): 1層目のネットワーク
𝑤𝑗𝑖
(1)
: 重みパラメータ, 𝑤𝑗0
(1)
: バイアスパラメータ
𝑧𝑗: 基底関数の出力, ℎ: 微分可能な非線形活性化関数
2層の NN を数式で追うⅢ
中間⇒出力層で変数 𝑧1, … , 𝑧 𝑀 の線形和を作成・変換
𝑧0 = 1 を追加して簡単化すると,
𝑦 𝑘 = 𝜎(σ 𝑗=0
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗)
14
𝑎 𝑘 = σ 𝑗=1
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗 + 𝑤 𝑘0
(2)
(5.4)
𝑦 𝑘 = 𝜎(𝑎 𝑘) (5.5)
𝑎 𝑘: 活性, 𝑘: [1, 𝐾], (2): 2層目のネットワーク
𝑤 𝑘𝑗
(2)
: 重みパラメータ, 𝑤 𝑘0
(2)
: バイアスパラメータ
𝑦 𝑘: NN の出力, 𝜎: 活性化関数(sigmoid 関数)
2層の NN を数式で追うⅣ
ニューラルネットワークモデルは2層をまとめて
可変パラメータのベクトル 𝐰 で制御
入力の集合{𝑥𝑖}から出力の集合{𝑦 𝑘}への非線形関数
式(5.7)を評価する過程がネットワークの順伝播
P.11,16 における図で決定論的(≠確率論)に表現可能
15
𝑦 𝑘 𝐱, 𝐰 = 𝜎 σ 𝑗=0
𝑀
𝑤 𝑘𝑗
2
ℎ σ𝑖=0
𝐷
𝑤𝑗𝑖
1
𝑥𝑖 (5.7)
𝐱: 入力変数の集合{𝑥𝑖}
𝐰: すべての重み・バイアスパラメータをまとめたもの
すなわち, 𝑤𝑗𝑖
1
, 𝑤 𝑘𝑗
2
をまとめたもの
2層の NN における基底関数
基底関数のパラメータが1層目の線形和の係数とわかる
16
中間層⇒出力層
係数部
𝑎𝑗 = ෍
𝑖=0
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖
𝑧𝑗 = ℎ(𝑎𝑗)
𝑎 𝑘 = ෍
𝑗=0
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗
𝑦 𝑘 = 𝜎(𝑎 𝑘)
入力層⇒中間層
基底関数部
𝑦 𝑘 𝐱, 𝐰 = 𝜎 σ 𝑗=0
𝑀
𝑤 𝑘𝑗
2
ℎ σ𝑖=0
𝐷
𝑤𝑗𝑖
1
𝑥𝑖 ≈ 𝑓(σ 𝑗=1
𝑀
𝑤𝑗 𝜙𝑗 𝐱 )
微分可能な非線形関数
基底関数は隠れユニットとも呼ばれ,非線形関数は様々
17
sigmoid(𝑎 = 1):
1
1 + 𝑒−𝑎𝑥
tanh:
𝑒 𝑥 − 𝑒−𝑥
𝑒 𝑥 + 𝑒−𝑥
or
2sigmoid 2𝑥 − 1
ReLU:
max(𝑥, 0)
sigmoid と tanh
tanh = 2sigmoid 2𝑥 − 1 を導いて,sigmoid について解く
tanh =
𝑒 𝑥−𝑒−𝑥
𝑒 𝑥+𝑒−𝑥 =
1−𝑒−2𝑥
1+𝑒−2𝑥 =
1
1+𝑒−2𝑥 −
𝑒−2𝑥
1+𝑒−2𝑥
= sigmoid 2𝑥 − (−
1
1+𝑒−2𝑥 +
1+𝑒−2𝑥
1+𝑒−2𝑥)
= 2sigmoid 2𝑥 − 1
sigmoid について解くと,sigmoid(x) =
1
2
tanh
x
2
+ 1
18
活性化関数を sigmoid 関数とするネットワークは
tanh 関数を活性化関数とするネットワークで表現可能
出力ユニット活性化関数(5.2)
活性化関数はデータの性質や目標変数の分布次第
回帰問題のとき
恒等写像
𝑓 𝑥 = 𝑥
2値分類問題のとき
logistic sigmoid 関数
𝑓 𝑥 = 𝜎 𝑥 =
1
1 + 𝑒−𝑥
他クラス分類問題のとき
softmax 関数(𝐾:クラス数, 𝑖: クラス, σ 𝑗=1
𝐾
𝑓 𝑥𝑖 = 1 )
𝑓 𝑥𝑖 =
𝑒 𝑥 𝑖
σ 𝑗=1
𝐾
𝑒 𝑥 𝑗
19
logistic sigmoid と softmax
2値分類の際には,sigmoid と softmax の両方が使用可能
制約からも,クラス1かどうかわかれば,クラス2はわかる
クラス1に着目して考えると, sigmoid を内包
𝑓 𝑥1 =
𝑒 𝑥1
𝑒 𝑥1+𝑒 𝑥2
=
1
1+𝑒 𝑥2−𝑥1
= sigmoid(𝑥1 − 𝑥2)
20
2値分類の時の softmax 関数
𝑓 𝑥1 =
𝑒 𝑥1
𝑒 𝑥1+𝑒 𝑥2
, 𝑓 𝑥2 =
𝑒 𝑥2
𝑒 𝑥1+𝑒 𝑥2
, 𝑓 𝑥1 + 𝑓 𝑥2 = 1
2値分類の sigmoid と softmax の違い
 出力の個数.sigmoid は1個, softmax は2個
 クラス2の扱い方.「クラス1とそれ以外」か「クラス1と2」
※省略されているが正確には logistic sigmoid
ニューラルネットワークⅡ
今までのことからわかることとして
NN モデルは2段階の処理
個々のパーツがパーセプトロンに類似
⇒ MLP もしくは多層パーセプトロンと呼ばれる
21
しかし,NN モデルはパーセプトロンとは決定的な違いが
 NN モデルの活性化関数:
シグモイド関数など⇒連続な非線形性を持ち,微分可能
 パーセプトロンの活性化関数
ステップ関数⇒不連続な非線形性
隠れ層がないネットワーク
𝑦 𝑘 𝐱, 𝐰 = 𝜎 σ 𝑗=0
𝑀
𝑤 𝑘𝑗
2
ℎ σ𝑖=0
𝐷
𝑤𝑗𝑖
1
𝑥𝑖 = 𝜎 σ𝑖=0
𝐷
𝑤 𝑘𝑖
1 ′
𝑥𝑖
隠れユニットを持たない=隠れ層を持たないネットワーク
隠れユニット数が入力層・出力層より小さい時は
次元削減が起きるため,同様のことは不可能
12章で PCA との関係について触れるが,関心が薄い分野
22
ネットワークの隠れユニットの活性化関数がすべて線形
⇒等価な隠れユニットを持たないネットワークが存在
線形であれば,必ず 𝐰(𝟏)′
= 𝐰(2)ℎ(𝐰(1)) と書き直せる
ネットワークの拡張
ネットワークの層を増やすのは簡単.2⇒3層にすると
23
[1] https://towardsdatascience.com/applied-deep-learning-part-1-artificial-neural-
networks-d7834f67a4f6
図1. 3層のネットワーク
ネットワークの層数は重みを持つ層の数(入力層を除く)
※文献による
skip-layer function の導入
入力ユニットを直接出力ユニットへ結合可能
隠れユニットへの重みを非常に小さくすれば,実質 skip
⇒ 実際には,明示的に導入した方が良い(shortcut とも呼ぶ)
24
skip
その他のネットワーク
スパースでも良いため,全結合でなく,一部の結合でも可
代表例として,画像処理良く使用される CNN(5.5.6節) など
25
例えば
3 × 3 のピクセルから
1 × 1 のピクセルへ変換
フィードフォワード構造
ネットワークを複雑化することでより一般的な写像が可能
つまり,隠れユニットあるいは出力ユニットが次で書ける
𝑧 𝑘 = ℎ σ 𝑗 𝑤 𝑘𝑗 𝑧𝑗 (5.10)
式(5.10)を順番に当てはめ,すべてのユニットが評価可能
NN は汎用性が高く,万能近似器とも呼ばれる
⇒ 実際に,関数近似をして NN の性能をチェック
26
ただし,フィードフォワード(feed-forward)構造であること
NN による関数近似
3つの隠れユニットを持つ
NN による関数近似
⇒ どれも近似できている
青点:データ点
赤線:ネットワークの出力
(活性化関数は線形関数)
破線: 各ユニットの出力
(活性化関数は tanh )
27
線形な出力を持つ2層の NN は
十分な数の隠れユニット数があれば,コンパクトな定義
域を持つどんな連続関数でも,任意の精度で一様に近似
NN による関数近似Ⅱ
3つの隠れユニットを持つ NN
による関数近似
⇒ 近似できる重みはある!
28
線形な出力を持つ2層の NN は
十分な数の隠れユニット数があれば,コンパクトな定義
域を持つどんな連続関数でも,任意の精度で一様に近似
つまり,これは
パラメータが見つかればの話
⇒ 重要なのは
最適なパラメータをどう探すか
NN による2値分類
2つの隠れユニットを持つ NN による
2値分類
〇,×:データ点
緑線:本来の境界線
赤線:ネットワークによる境界線
⇒ 赤線の左側は完璧,右は微妙?
◆入力:𝑥, 𝑦 の2変数
◆隠れユニットの活性化関数: tanh
◆青線:隠れユニットの出力 𝑧 = 0.5 の線
◆ネットワークの活性化関数: logistic sigmoid 関数
29
目次
ニューラルネットワーク
5.1 フィードフォワードネットワーク関数
5.1.1 重み空間対称性
30
重み空間対称性Ⅰ
重み空間対称性は
実用上はあまり重要でない
ベイズ理論を考えるに
当たって,考慮が必要
重み空間対称性について
2層の NN を用いて考えていく
31
フィードフォワードネットワークの特徴として
同じ入力から出力への関数を表す重み 𝐰 が複数選択可能
重み空間対称性Ⅱ
•
① 符号反転性について
𝑀 個の隠れユニットを持ち,各層間が完全結合の NN の
活性化関数に tanh を用いた場合
隠れユニット内で符号が反転しても同じ入出力
「符号反転」対称性は隠れユニット数 𝑀 を用いて 2 𝑀 個
32
重みが複数選べる=同じ線形写像となる重みが複数存在
すなわち,重みは符号反転でき,重み同士の交換も可能
奇関数=点対称で, tanh −𝑎 = tanh(𝑎)
重み空間対称性Ⅲ
② 交換対称性について
隠れユニット内で重みを入れ替えても同じ入出力
「交換」対称性は 𝑀! 個
33
1層のネットワークごとに、同じ入出力の重みが 𝑀! 2 𝑀 個
重みを入れ替えても,
緑と水色の出力の位置
が変わるだけ
目次
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
34
ネットワーク訓練
5章までと同様のアプローチでパラメータを決定していく
多項式曲線フィッティングのように,二乗和誤差の最小化
理由の明確化のため,ネットワーク出力を確率的に解釈
⇒ 比較的簡単な回帰から考え,一般的な問題へ拡張していく
35
誤差関数(二乗和誤差):
𝐸 𝐰 =
1
2
σ 𝑛=1
𝑁
𝐲 𝐱 𝑛, 𝐰 − 𝐭 𝑛
2
𝐱 𝑛: 入力ベクトルの集合{x 𝑛}(𝑛 = 1, … , 𝑁)
𝐭 𝑛: 目標ベクトルの集合{𝑡 𝑛}(𝑛 = 1, … , 𝑁)
ネットワーク訓練(回帰)Ⅰ
𝑡 は 𝐱 に依存する平均を持つガウス分布に従うとすると
NN で任意の 𝐱 から 𝑦 への連続関数を近似できるため
出力ユニットの活性化関数は恒等写像で良い
限定的な仮定なため,より一般的なアプローチは5.6節で
36
任意の実数値を取れる1つの目標変数 𝑡 から考えていく
𝑝(𝑡|𝐱, 𝐰) = 𝑁(𝑡|𝑦 𝐱, 𝐰 , 𝛽−1)
𝑦 𝐱, 𝐰 : NN の出力, 𝛽−1
: 精度パラメータ
ネットワーク訓練(回帰)Ⅱ
𝑁 個の独立同分布に従う観測値 𝐗 = {𝐱1, … , 𝐱 𝑁} と
それぞれに対応する目標値 𝐓 = {𝑡1, … , 𝑡 𝑁} が与えられた時
尤度関数は
𝑝(𝐭|𝐗, 𝐰, 𝑝) = ς 𝑛=1
𝑁
𝑝(𝑡 𝑛|𝐱 𝑛, 𝐰, 𝛽)
負の対数を取ると
𝛽
2
σ 𝑛=1
𝑁
𝑦 𝐱 𝑛, 𝐰 − 𝑡 𝑛
2 −
𝛽
2
𝑙𝑛𝛽 +
𝑁
2
ln(2𝜋)
この式が誤差関数であり,誤差関数を用いて 𝐰, 𝛽 を学習
37
対数尤度の最大化ではなく,誤差関数の最小化
ネットワーク訓練(回帰)Ⅲ
通常の最尤推定と同様に, 𝐰, 𝛽 の順に求めていく
𝐰 について無関係な項を削除すると
𝐸 𝑤 =
1
2
σ 𝑛=1
𝑁
𝑦 𝑥 𝑛, 𝑤 − 𝑡 𝑛
2
誤差関数を最小化する重みが最尤推定解 𝐰 𝑀𝐿
⇒ 誤差が非凸 ⇒ 最尤点でなく尤度の極大点になりがち
38
対数尤度の最大化ではなく,誤差関数の最小化
尤度関数の最大化 = 二乗和誤差関数の最小化
ネットワーク訓練(回帰)Ⅳ
𝐰 𝑀𝐿 が求まれば,𝛽 も負の対数尤度を最小化して求まる
1
𝛽 𝑀𝐿
=
1
𝑁
σ 𝑛=1
𝑁
𝑦 𝐱 𝑛, 𝐰 𝑀𝐿 − 𝑡 𝑛
2
𝐱, 𝐰 の条件付確率が独立でノイズ精度が共通であるとき
目標変数の数 𝐾 を用いると,ノイズ精度は
1
𝛽 𝑀𝐿
=
1
𝑁𝐾
σ 𝑛=1
𝑁
𝒚 𝐱 𝑛, 𝐰 𝑀𝐿 − 𝐭 𝑛
2
また,活性化関数は恒等写像 𝑦 𝑘 = 𝑎 𝑘 なので,
𝜕𝐸
𝜕𝑎 𝑘
= 𝑦 𝑘 − 𝑡 𝑘
39
目標値の条件付分布:
𝑝(𝐭|𝒙, 𝒘) = 𝑁(𝐭|𝒚 𝐱, 𝐰 , 𝛽−1
𝐈)
𝑦 𝐱, 𝐰 : NN の出力, 𝛽−1
: 精度パラメータ, 𝐈: Identity
ネットワーク訓練(2値分類)Ⅰ
入力 𝐱 が与えられた時の目標 𝑡 の条件付き分布は
𝑦 𝐱, 𝐰 は条件付き確率 𝑝(𝐶1|𝐱) と解釈可能なため
𝑝 𝐶2 𝐱 = 1 − 𝑦 𝐱, 𝐰
出力ユニットの活性化関数は logistic sigmoid 関数
𝑦 = 𝜎 𝑎 =
1
1+exp(−𝑎)
40
𝑡 = 1 がクラス 𝐶1, 𝑡 = 0 がクラス 𝐶2な1つの目標変数 𝑡
𝑝(𝑡|𝐱, 𝐰) = 𝑦 𝐱, 𝐰 𝑡
{1 − 𝑦 𝐱, 𝐰 }1−𝑡
𝑦 𝐱, 𝐰 : NN の出力[0,1], 𝑝(𝑡|𝐱, 𝐰):ベルヌーイ分布
負の対数尤度を取ると,交差エントロピー誤差が得られ
𝐸 𝐰 = − σ 𝑛=1
𝑁
𝑡 𝑛ln𝑦𝑛 + 1 − 𝑡 𝑛 ln 1 − 𝑦𝑛
正しくラベル付けをされている場合,ノイズ精度 𝛽 は不要
二乗和誤差を用いるよりも訓練が速く,汎化性能が高い
実際,交差エントロピーは画像分類でよく使用されている
41
クラス分類問題では,交差エントロピー誤差関数
ネットワーク訓練(2値分類)Ⅱ
ネットワーク訓練(2値分類)Ⅲ
𝐾 個の出力を持ち,各活性化関数に logistic sigmoid 関数
入力 𝐱 が与えられた時の目標 𝐭 の条件付き分布は
負の対数尤度を取ると,
𝐸 𝐰 = − σ 𝑛=1
𝑁 σ 𝑘=1
𝐾
𝑡 𝑛𝑘ln𝑦 𝑛𝑘 + 1 − 𝑡 𝑛𝑘 ln 1 − 𝑦 𝑛𝑘
誤差関数の微分は回帰同様,
𝜕𝐸
𝜕𝑎 𝑘
= 𝑦 𝑘 − 𝑡 𝑘
42
(ラベルが独立な)𝐾 個の異なる2値分類問題を解く
𝑝(𝐭|𝐱, 𝐰) = ෑ
𝑘=1
𝐾
𝑦 𝑘 𝐱, 𝐰 𝑡 𝑘{1 − 𝑦 𝑘 𝐱, 𝐰 }1−𝑡 𝑘
𝑦 𝐱, 𝐰 : NN の出力[0,1], 𝐭: 目標値の集合 𝑡 𝑘 , 𝑡 𝑘 ∈ {0,1}
※この線形クラス分類モデルでは重みが独立だが NN では共有
ネットワーク訓練(多クラス分類)
目標変数 𝐭 は one-hot 表現(1of𝐾)で与えられるとき
出力ユニットの活性化関数は softmax 関数で
𝑦 𝑘 𝐱, 𝐰 =
exp 𝑎 𝑘 𝐱,𝐰
σ 𝑗 exp 𝑎 𝑗 𝐱,𝐰
誤差関数の微分は,今までと同様
𝜕𝐸
𝜕𝑎 𝑘
= 𝑦 𝑘 − 𝑡 𝑘
43
標準的な多クラスのクラス分類問題を考える
誤差関数:
𝐸 𝐰 = − σ 𝑛=1
𝑁 σ 𝑘=1
𝐾
𝑡 𝑛𝑘ln𝑦 𝑘(𝐱 𝑛, 𝐰)
𝑦 𝑘(𝐱, 𝐰) = 𝑝 𝑡 𝑘 = 1 𝐱)
出力ユニット活性化関数
活性化関数はデータの性質や目標変数の分布次第
回帰問題のとき
恒等写像
𝑓 𝑥 = 𝑥
2値分類問題のとき
logistic sigmoid 関数
𝑓 𝑥 = 𝜎 𝑥 =
1
1 + 𝑒−𝑥
他クラス分類問題のとき
softmax 関数(𝐾:クラス数, 𝑖: クラス, σ 𝑗=1
𝐾
𝑓 𝑥𝑖 = 1 )
𝑓 𝑥𝑖 =
𝑒 𝑥 𝑖
σ 𝑗=1
𝐾
𝑒 𝑥 𝑗
44
目次
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
45
𝛻𝐸 𝐰 = 0 となる点が最小値
パラメータ最適化Ⅰ
点𝐰 𝐴: 局所的極小点
点𝐰 𝐵: 大域的最小点(最小値)
点𝐰 𝐶: 任意の点
𝛻𝐸: 誤差曲面の局所勾配
(−𝛻𝐸 方向に動けばよい)
46
誤差関数 𝐸 𝐰 を最小化する重み 𝐰 を見つけたい
𝛻𝐸 𝐰 = 0 となる点が最小値
1つじゃない?
パラメータ最適化Ⅱ
停留点: 勾配が0になる点 𝐰 (𝛻𝐸 𝐰 = 0)
極小点:連続関数が減少から増加に変わる点
極大点:連続関数が増加から減少に変わる点
鞍点:ある方向では極大点,別の方向では極小点
重み空間対称性より,𝑀 個のユニットを持つ2層の NN には
等価な極小点が 2 𝑀 𝑀! 個存在
47
誤差関数 𝐸 𝐰 を最小化する重み 𝐰 を見つけたい
※図, [2]https://qiita.com/ishizakiiii/items/82cfa9522ceb20703f2b
パラメータ最適化Ⅲ
点 𝐰 𝐴: 局所的極小点
点 𝐰 𝐵: 大域的最小点(最小値)
点 𝐰 𝐴, 𝐰 𝐵 のように等価な値でない
極小点が存在
⇒ 本当に最小値かわからない・・・
48
誤差関数 𝐸 𝐰 を最小化する重み 𝐰 を見つけたい
複数の極小点を比較して対処
パラメータ最適化Ⅳ
基本的に,2ステップを繰り返す
① 初期値 𝑤(0) の選択
② 重み空間内の移動 𝑤(𝜏+1)
= 𝑤(𝜏)
+ ∆𝑤(𝜏)
𝜏: 反復ステップ数,∆𝑤(𝜏): 𝜏 時の重みベクトル更新量
最適化手法はいくつかあるが,結局 ∆𝑤(𝜏)
が違うだけ
⇒ 更新時によく使用される勾配情報の重要性をチェック!
49
解析的に解くのはあまりに厳しいので反復手順で考える
※図, [2]https://qiita.com/ishizakiiii/items/82cfa9522ceb20703f2b
目次
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
50
局所二次近似Ⅰ
ある点 ෝ𝐰 の周りで 𝐸 𝐰 を二次までテイラー展開し近似
微分すると,勾配の局所近似は
𝛻𝐸 ≃ 𝐛 +𝐇(𝐰 − ෝ𝐰)
51
理解のために,誤差関数の局所二次近似を考えていく
𝐸 𝐰 ≃ 𝐸 ෝ𝐰 + 𝐰 − ෝ𝐰 𝑇 𝐛 +
1
2
𝐰 − ෝ𝐰 𝑇 𝐇(𝐰 − ෝ𝐰)
𝐛: 点 ෝ𝐰 における勾配≡ 𝛻𝐸| 𝐰= ෝ𝐰,
(𝐇)𝑖𝑗: 点 ෝ𝐰 におけるヘッセ行列≡
𝛿𝐸
𝛿𝑤 𝑖 𝛿𝑤 𝑗
| 𝐰= ෝ𝐰
𝐻 𝐸 = 𝛻2 𝐸 =
𝜕2
𝐸
𝜕2 𝑤1
𝜕2
𝐸
𝜕𝑤1 𝛿𝑤2
𝜕2
𝐸
𝜕𝑤2 𝛿𝑤1
𝜕2
𝐸
𝜕2 𝑤2
局所二次近似Ⅱ
極小点 𝐰∗
では, 𝐛 ≡ 𝛻𝐸| 𝐰=𝐰∗ = 0 である
ただし,(𝐇)𝑖𝑗≡
𝛿𝐸
𝛿𝑤𝑖 𝛿𝑤 𝑗
| 𝐰=𝐰∗ が0となるかはわからないので
⇒ より深く解釈するために,式の第2項について考える
52
誤差関数の極小点 𝐰∗の周りでの近似を考えていく
𝐸 𝐰 ≃ 𝐸 𝐰∗ +
1
2
𝐰 − 𝐰∗ 𝑇 𝐇(𝐰 − 𝐰∗)
(𝐇)𝑖𝑗: 点 𝐰∗
におけるヘッセ行列≡
𝛿𝐸
𝛿𝑤 𝑖 𝛿𝑤 𝑗
| 𝐰=𝐰∗
局所二次近似Ⅲ
ヘッセ行列の固有方程式を考えると
𝐇𝐮𝑖 = 𝜆𝑖 𝐮𝑖
固有ベクトル 𝐮𝑖 は完全正規直行系をなしているので
𝐮𝑖
𝑇
𝐮 𝑗 = 𝛿𝑖𝑗 = ቊ
𝑖 = 𝑗 のとき 1
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 0
(𝐰 − 𝐰∗) を固有ベクトルの線形和に展開すると
𝐰 − 𝐰∗ = σ𝑖 𝛼𝑖 𝐮𝑖 (𝛼𝑖: 軸 𝐮𝑖 への係数)
⇒ これらの式を用いて,誤差関数の第2項を置換する
53
𝐰∗ で評価されているヘッセ行列 𝐇 を掘り下げていく
局所二次近似Ⅳ
𝐸 𝐰 ≃ 𝐸 𝐰∗
+
1
2
𝐰 − 𝐰∗ 𝑇
𝐇(𝐰 − 𝐰∗
)
≃ 𝐸 𝐰∗ +
1
2
σ𝑖 𝛼𝑖 𝐮𝑖
𝑇
𝐇 σ𝑖 𝛼𝑖 𝐮𝒊 ∵ 𝐰 − 𝐰∗ = σ𝑖 𝛼𝑖 𝐮𝑖
≃ 𝐸 𝐰∗ +
1
2
σ𝑖 𝛼𝑖 𝐮𝒊
𝑻 σ𝑖 𝛼𝑖 𝜆𝑖 𝐮𝒊 ∵ 𝐇𝐮𝑖 = 𝜆𝑖 𝐮𝑖
≃ 𝐸 𝐰∗ +
1
2
σ 𝑗 𝜆𝑖 𝛼𝑖
2
∵ 𝐮𝑖
𝑇
𝐮 𝑗 = 𝛿𝑖𝑗
以上より,
𝐸 𝐰 ≃ 𝐸 𝐰∗ +
1
2
σ 𝑗 𝜆𝑖 𝛼𝑖
2
54
近似した誤差関数における第2項の置換
局所二次近似Ⅴ
この式は,𝐰∗
について平行移動し,軸 {𝐮𝑖} への座標変換
55
𝐰 − 𝐰∗ = σ𝑖 𝛼𝑖 𝐮𝑖 について考えていく
2変数の場合は左のように
軸 𝑤1, 𝑤2 から
軸 𝐮1, 𝐮2 へと変換される
赤線: 誤差関数の等高線
局所二次近似Ⅵ
重み空間が1次元の場合
停留点 𝐰∗
は
𝛿2 𝐸
𝛿𝐰2 | 𝐰∗ > 0 の時,極小点
重み空間が 𝐷 次元の場合
𝐰∗
で評価されたヘッセ行列が正定値ならば,極小点
56
行列 𝐇 が正定値であるとは
すべての 𝑣 ≠ 0 に対して 𝑣 𝑇 𝐻𝑣 > 0 であるということ
固有ベクトルの集合 {𝐮𝑖} は完全基底なので,任意のベクトル 𝒗 は
𝒗 = σ𝑖 𝑐𝑖 𝐮𝑖
また,𝐇𝐮𝑖 = 𝜆𝑖 𝐮𝑖, 𝐮𝑖
𝑇
𝐮 𝑗 = 𝛿𝑖𝑗 から 𝒗 𝑇 𝐇𝐯 = σ𝑖 𝑐𝑖
2
𝜆𝑖 と書けるので
行列 𝐻 はすべての固有値が正の時,正定値
共役勾配法と準ニュートン法
勾配降下法
1回微分の勾配情報を利用して解く
⇒ 1次元に対してのみ重みが移動するので遅い
ニュートン法
2回微分の勾配情報(ヘッセ行列)を利用して解く
⇒ ヘッセ行列の逆行列が求まるとは限らない
共役勾配法
ヘッセ行列は基底ベクトルによって書き直せる
⇒ 行列として,ヘッセ行列を解き多次元に対応
準ニュートン法
ヘッセ行列の逆行列を近似して解く
57
目次
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
58
勾配情報の利用Ⅰ
局所二次近似中の独立な変数は 𝐛 と 𝐇
ヘッセ行列は対称性があるので,独立なパラメータ数は
𝑊 +
𝑊 𝑊+1
2
=
𝑊 𝑊+3
2
極小値の特定には 𝑂(𝑊2) 個の計算が必要
59
勾配情報によって,誤差関数の極小点は速く見つかる
𝐸 𝐰 ≃ 𝐸 ෝ𝐰 + 𝐰 − ෝ𝐰 𝑇
𝐛 +
1
2
𝐰 − ෝ𝐰 𝑇
𝐇(𝐰 − ෝ𝐰)
𝐛 の次元数: W × 1, 𝐇 の次元数: W × 𝑊
𝐻 𝐸 =
𝜕2
𝐸
𝜕2 𝑤1
𝜕2
𝐸
𝜕𝑤1 𝛿𝑤2
𝜕2
𝐸
𝜕𝑤2 𝛿𝑤1
𝜕2
𝐸
𝜕2 𝑤2
ヘッセ行列の対称性
勾配情報の利用Ⅱ
𝑂(𝑊2) 個の独立な情報を得て,やっと評価可能になる
勾配情報を利用しない場合
① 𝑂(𝑊2) 個の点で関数を評価し,独立な情報を取得
② 得られた誤差関数を評価するのに,追加で 𝑂 𝑊
勾配情報を利用する場合
勾配を評価するごとに 𝑊 個の独立な情報を取得
① 𝑂(𝑊)回 の勾配の評価で 𝑂(𝑊2) 個の情報が揃う
② 各勾配の評価に,追加で 𝑂 𝑊
60
勾配情報を利用しない場合,𝑶(𝑾 𝟑) の計算量
勾配情報を利用する場合,𝑶(𝑾 𝟐) の計算量
目次
5.2 ネットワーク訓練
➢5.2.1 パラメータ最適化
➢5.2.2 局所二次近似
➢5.2.3 勾配情報の利用
➢5.2.4 勾配降下最適化
61
勾配降下最適化
勾配情報を用いた単純なアプローチとして
重み更新量を負の勾配方向への小さな変異とすること
𝐰(𝜏+1) = 𝐰(𝜏) − 𝜂𝛻𝐸(𝐰 𝜏 ) 𝜂: 学習率(𝜂>0)
更新ごとに新しい重みベクトルについて再評価し繰り返す
バッチ訓練法
すべての訓練集合で評価して 𝛻𝐸 を評価
勾配降下法
減少率が最大である方向に重みベクトルが移動
62
バッチ最適化
共役勾配法や準ニュートン法などより頑健な手法では
局所的極小点か大域的最小点に到達するまで
誤差関数が減少
⇒ 局所的極小点は避けられない
十分に良い極小点を見つけるためには
勾配を基礎とするアルゴリズムを複数回実行する必要
独立に生成された検証用集合を用いて性能を比較
63
オンライン勾配降下法
大規模なデータ集合では,データすべてを評価するのは困難
独立に得られた観測値に対する最尤推定に基づく誤差関数は
各データ点を表す項の和からなり
𝐸 𝐰 = σ 𝑛=1
𝑁
𝐸 𝑛(𝐰)
重みベクトルの更新1回ごとに、1つのデータ点を作成
𝐰(𝜏+1)
= 𝐰(𝜏)
− 𝜂𝛻𝐸 𝑛 𝐰 𝜏
逐次的勾配降下法や確率的勾配降下法とも
更新方法は順番通り,ランダムな復元抽出やミニバッチ法など
64
バッチ手法とオンライン手法
バッチ手法とオンライン手法を比べると
オンライン手法では
データが倍になっても倍の計算量とならない
⇒ バッチ手法では計算量が倍に
局所的極小値を回避できる可能性がある
⇒ すべてのデータ集合について停留点であっても
個々のデータ点では停留点とは限らないため
65
目次 5.3 誤差逆伝播
5.3.1 誤差関数微分の評価
66
誤差逆伝播
誤差関数 𝐸(𝐰) の勾配を効率よく評価するテクニック
誤差関数を最小化するための反復手続きは次の2ステップ
1. 誤差関数の勾配の評価ステップ
➢ 誤差が逆方向に伝播,「逆伝播」の意味は基本こっち
➢ 交差エントロピー,ヤコビ行列などの評価も可能
2. 勾配を用いたパラメータ最適化ステップ
e.g. 勾配降下法,ニュートン法
67
順向きと逆向きの交互に情報をやり取りすることで実現
目次 5.3 誤差逆伝播
5.3.1 誤差関数微分の評価
68
誤差関数微分の評価Ⅰ
誤差関数の多くは,各データに対応する誤差項の和
𝐸 𝐰 = σ 𝑛=1
𝑁
𝐸 𝑛(𝐰)
誤差関数の1つの項に対する勾配 𝛻𝐸 𝑛(𝐰) を評価していく
逐次的最適化の場合,勾配 𝛻𝐸 𝑛(𝐰) を直接使用
バッチ手法の場合,訓練集合全体についての和を使用
69
一般のネットワークにおける逆伝播アルゴリズムを導く
誤差関数微分の評価Ⅱ
出力 𝑦 𝑘 が入力変数 𝑥𝑖 の線形和の単純な線形モデルだと
𝑦 𝑘 = σ𝑖 𝑤 𝑘𝑖 𝑥𝑖
ある特定の入力パターン 𝑛 に対する誤差関数は
𝑦 𝑛𝑘 = 𝑦 𝑘(𝐱 𝑛, 𝐰) として,𝐸 𝑛 =
1
2
σ 𝑘 𝑦 𝑛𝑘 − 𝑡 𝑛𝑘
2
この誤差関数の重み 𝑤𝑗𝑖 に関する勾配は
𝜕𝐸 𝑛
𝜕𝑤 𝑗𝑖
= 𝑦 𝑛𝑗 − 𝑡 𝑛𝑗 𝑥 𝑛𝑖
70
局所的な計算
[重みに関する勾配] = [出力側の誤差信号] × [入力側の変数]
誤差関数微分の評価Ⅲ
それぞれのユニットとその出力は
入力から出力まで順番に適応し,ネットワークを構築
⇒ 情報が順向きに流れるので,順伝播と呼ばれる
71
単純な線形モデルから一般的な feed-forward NN に拡張
𝑎𝑗 = σ𝑖 𝑤𝑗𝑖 𝑧𝑖
𝑧𝑗 = ℎ(𝑎𝑗)
𝑎𝑗: 活性, 𝑤𝑗𝑖: 重みパラメータ,
𝑧𝑗: ユニット 𝑗 の出力, ℎ: 非線形活性化関数
誤差関数微分の評価Ⅳ
𝐸 𝑛の重み 𝑤𝑗𝑖 に関する微分の評価をしていく(逆伝播)
𝐸 𝑛 はユニット 𝑗 への入力和 𝑎𝑗 を通して重み 𝑤𝑗𝑖 に依存
𝜕𝐸 𝑛
𝜕𝑤 𝑗𝑖
=
𝜕𝐸 𝑛
𝜕𝑎 𝑗
𝜕𝑎 𝑗
𝜕𝑤 𝑗𝑖
誤差 𝛿𝑗 ≡
𝜕𝐸 𝑛
𝜕𝑎 𝑗
であり, 𝑎𝑗 = σ𝑖 𝑤𝑗𝑖 𝑧𝑖 であるから,
𝜕𝑎 𝑗
𝜕𝑤 𝑗𝑖
= 𝑧𝑖
𝜕𝐸 𝑛
𝜕𝑤 𝑗𝑖
= 𝛿𝑗 𝑧𝑖
72
単純な線形モデルから一般的な feed-forward NN に拡張
※特定の入力パターン 𝑛 に依存するが,省略
[微分の値] = [出力側の値] × [入力側の値]
誤差関数微分の評価Ⅴ
正準連結関数を活性化関数に用いた出力ユニットでは
𝛿 𝑘 = 𝑦 𝑘 − 𝑡 𝑘
隠れユニットを評価するには,重みに関する微分を考えて
𝛿𝑗 ≡
𝜕𝐸 𝑛
𝜕𝑎 𝑗𝑖
= σ 𝑘
𝜕𝐸 𝑛
𝜕𝑎 𝑘
𝜕𝑎 𝑘
𝜕𝑎 𝑗
𝛿𝑗 ≡
𝜕𝐸 𝑛
𝜕𝑎 𝑗𝑖
, 𝑎𝑗 = σ𝑖 𝑤𝑗𝑖 𝑧𝑖, 𝑧𝑗 = ℎ(𝑎𝑗) から
𝛿𝑗 = σ 𝑘 𝛿 𝑘
𝜕(σ 𝑘 𝑤 𝑘𝑗 𝑧 𝑗)
𝜕𝑎 𝑗
=
𝜕(𝑧 𝑗)
𝜕𝑎 𝑗
σ 𝑘 𝑤 𝑘𝑗 𝛿 𝑘
= ℎ′
(𝑎𝑗) σ 𝑘 𝑤 𝑘𝑗 𝛿 𝑘 (逆伝播公式)
73
誤差関数微分の評価Ⅵ
再帰的に逆伝播し,すべての隠れユニットの誤差を評価
74
順伝播
逆伝播
深い層の 𝛿 𝑘 の値が分かれば
より浅い層の 𝛿𝑗 が計算可能
𝛿𝑗 = ℎ′(𝑎𝑗) ෍
𝑘
𝑤 𝑘𝑗 𝛿 𝑘
ℎ′(𝑎𝑗):活性化関数の微分
𝑘:ユニット 𝑗 への結合数
誤差逆伝播のアルゴリズム
バッチ手法の場合は,すべてのパターンについて和を取る
𝜕𝐸 𝑛
𝜕𝑤 𝑗𝑖
= σ 𝑛
𝜕𝐸 𝑛
𝜕𝑤 𝑗𝑖
75
① 入力ベクトルを与えて,ネットワーク上を順伝播させ,
すべての隠れユニットと出力ユニットの出力を計算
② すべての出力ユニットの誤差を評価
③ 逆伝播により,すべての隠れユニットの誤差を評価
④ 誤差から,それぞれの重みの勾配(微分)を計算
参考資料
図解が多いので,こっち見るだけで良い気も・・・?
https://www.slideshare.net/t_koshikawa/prml-5-pp227pp247
76

PRML_from5.1to5.3.1