Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
パターン認識論まとめ伊藤 彰則
1
パターン認識とは自然界にあるさまざまな情報を元に、物事を分類・識別する
人間の能力を模倣するもの顔の認識情景の認識音声の認識文字の認識ジェスチャーの認識
人間の能力とは(あまり)関係ないものリモートセンシングタッチパネル
2
認識のプロセス
原データ
特徴抽出
特徴量
識別関数
識別結果
原データからどういう特徴を選ぶか
次元は低いほうが望ましい(次元の呪い)
どんな問題にも適用できる設計方針はない→問題に応じて考える
人間が設定 vs. データから自動設計自動設計の方法パラメトリック vs. ノンパラメトリック識別関数のタイプ(1次,2次,それ以上…)
3
識別関数の設計データから自動設計する 「教師データ」を与えて,それをできるだけうまく表現できるモデルを自動生成
「どういうタイプのモデルか」は既知 これを「学習(learning)」と呼ぶ
教師あり学習:Supervised Learning
4
識別関数のパラメータと表現力識別関数の「形」を最初に決めて,そのパラメータを後から決める◦識別関数 𝑔(𝒙|𝜽)パラメータ𝜽
◦目的関数 𝐿(𝑔, 𝜽, 𝑋)学習データ 𝑋
◦𝐿を最大化または最小化
◦ 𝜽 = argmax𝜽
𝐿(𝑔, 𝜽, 𝑋)
◦最終的な識別関数は 𝑔(𝒙| 𝜽)
5
識別関数のパラメータと表現力閾値関数◦𝑔 𝒙 = 𝒂𝑡𝒙 − 𝑏
◦𝒂 = 0,… , 0,1,0,… 𝑡
線形識別◦𝑔 𝒙 = 𝒂𝑡𝒙 − 𝑏
6
識別関数のパラメータと表現力2次識別◦𝑔 𝒙 = 𝒙𝑡𝐴𝒙 − 𝑏
区分的線形 区分的定数
7
識別境界について
境界の複雑さ 単純 複雑
表現力 低い 高い
パラメータ数 少ない 多い
必要な学習データ量 少ない 多い
過学習 起きにくい 起きやすい
8
過学習識別関数のパラメータに対して学習データが少ない場合に,識別関数が学習データに特化しすぎて一般性を失う
学習 実際
9
最近傍法と距離 𝜔 = argmin
𝜔min𝑘
𝑑(𝒙, 𝒑𝜔𝑘 )
𝑑(𝒙, 𝒚): 距離◦距離の公理
◦距離の例◦ ユークリッド距離,市街地距離など
),(),(),(
),(),(
0),(
yzzxyx
xyyx
xx
ddd
dd
d
10
パーセプトロン𝑔𝑖 𝒙 = 𝒘𝑖
𝑡𝒙 = 𝑘𝑤𝑖𝑘𝑥𝑘
11
1x
2x
3x
4x
w11
w12
w13
)(1 xg
)(2 xg
)(3 xg
1
w10
w14
一番大きい値のクラスが識別結果になる
パーセプトロン学習正解クラスに対して出力が大きくなり,不正解クラスに対して小さくなるように重みを修正する
◦𝑔𝑖 𝒙 = 𝒘𝑖𝑡𝒙
◦ 𝒙のクラスが𝜔𝑖であるところ,𝑔𝑗 𝒙 > 𝑔𝑖(𝒙)のとき
◦ 𝒘𝑖 ← 𝒘𝑖 + 𝜌𝒙
◦ 𝒘𝑗 ← 𝒘𝑗 − 𝜌𝒙
◦なぜこれでよいのか?◦ (𝒘𝑖+𝜌𝒙)
𝑡𝒙 = 𝒘𝑖𝑡𝒙 + 𝜌 𝒙 2 > 𝑔𝑖(𝒙)
◦ (𝒘𝑗−𝜌𝒙)𝑡𝒙 = 𝒘𝑗
𝑡𝒙 − 𝜌 𝒙 2 < 𝑔𝑗(𝒙)
12
線形分離可能性パーセプトロン学習は「誤りがあったら修正」→原理的に誤りが起きる場合は収束しない
教師データが「線形分離可能」な場合のみ収束する
線形分離可能 線形分離不可能
パーセプトロンと教師信号
1のパターンを入力
1)(1 xg
0)(2 xg
0)(3 xg
1x
2x
3x
4x
w11
w12
w13
1
w10
w14
教師信号bp
出力が教師信号に近づくように重みを学習する
p
tb xw1誤差
δルールによる学習次の式により重みを更新
◦更新の重みを教師信号との誤差に比例させる
◦その他の部分はパーセプトロン学習とほぼ同じ
◦誤差の2乗和の減少が止まったところで停止
◦ 𝒘𝑖 − 𝜌 𝒘𝑖𝑡𝒙𝑝 − 𝑏𝑝 𝒙𝑝
𝑡𝒙𝑝
= 𝒘𝑖𝑡𝒙𝑝 − 𝜌 𝒘𝑖
𝑡𝒙𝑝 − 𝑏𝑝 𝒙𝑝2
ppp
t
iii b xxwww )(
これが正なら小さく,負なら大きくなる
ニューラルネットワーク多層パーセプトロン+非線型=ニューラルネットワーク
1x
2x
3x
4x
1
)1(
11w)1(
1h )2(
11w)1(
1g)2(
1h)2(
1g
1
入力層 中間層 出力層
ニューラルネットワーク第k層の第iユニットの入力と出力
x
k
i
k
i
j
k
j
k
ji
k
i
ii
exf
hfg
gwh
xg
1
1)(
)( )()(
)1()()(
)0(
シグモイド関数
シグモイドで作る非線形識別境界多次元空間内のシグモイド曲面を重ね合わせる
18
1
x
y
1
x
y
1
x
y
シグモイドで作る非線形識別境界多次元空間内のシグモイド曲面を重ね合わせる
19
1
x
y
1
x
y
1
x
y
1次元の識別
識別関数の学習による場合
確率密度関数を推定する場合
パラメトリックな識別
確率分布による認識◦クラス𝜔のサンプル𝒙の生成確率密度
◦𝑝 𝒙 𝜔 = 𝜙(𝒙|𝜔)
◦サンプル𝒙がクラス𝜔である確率
◦𝑃 𝜔 𝒙 =𝜙 𝒙 𝜔 𝑃 𝜔
𝜔𝜙 𝒙 𝜔 𝑃 𝜔
◦認識◦ 𝜔 = argmax
𝜔𝑃 𝜔 𝒙
= argmax𝜔
𝜙 𝒙 𝜔 𝑃(𝜔)
21
最尤推定確率分布のパラメータ推定◦𝑃(𝒙|𝜃)について,推定用データ𝑿を用い
◦ 𝜃 = argmax𝜃
𝑃(𝒙|𝜃)
◦独立なデータに対しては◦ 𝜃= argmax
𝜃 𝑖 𝑃(𝑥𝑖|𝜃) = argmax
𝜃 𝑖 log 𝑃(𝑥𝑖|𝜃)
◦確率分布として正規分布を仮定すると
◦平均の最尤推定値 𝜇 =1
𝑁 𝑖 𝑥𝑖
◦分散の最尤推定値 𝜎2 =1
𝑁 𝑖 𝑥𝑖 − 𝜇 2
22
多次元正規分布d次元での正規分布
)μ()μ(
2
1exp
||)2(
1)( 1
2/12/xxx
t
dp
m: 平均ベクトル :共分散行列
2
21
2
2
221
121
2
1
21 ),...,,(
ddd
d
d
d
mmm
μ
2次元正規分布
普通の識別関数との関係は?確率の対数を識別関数にしてみよう
||log2
12log
22
)μ()μ(
2
)μ()μ(exp
||)2(
1log)|(log
1
1
2/12/
d
xp
t
t
d
xx
xx
は単位行列 は対角行列 は対称行列
普通の識別関数との関係は?2クラスの共分散行列が異なる場合
識別境界は2次曲線になる
2クラスの共分散行列が同じ場合
識別境界は直線
(線形識別と同じ)
混合正規分布(GMM)正規分布を混ぜて作る分布◦ 𝑝 𝑥 = 𝑘 𝜆𝑘𝑁(𝑥; 𝜇𝑘 , Σ𝑘)
◦生成過程:◦ まず複数の正規分布のうちどれかを確率的に選ぶ
◦ 選んだ正規分布からデータが飛び出す
◦正規分布に従う確率変数の和と混同してはいけない
26
対角共分散GMM
◦共分散Σ =
𝜎12 0
0 𝜎22
⋯ 0⋯ 0
⋮ ⋮0 0
⋱ ⋮⋯ 𝜎𝑛
2
◦𝑁 𝒙; 𝝁, Σ = 𝑖=1𝑛 𝑁(𝑥𝑖; 𝜇𝑖 , 𝜎𝑖
2)
◦𝑝 𝑥 = 𝑘 𝜆𝑘 𝑖=1𝑛 𝑁(𝑥𝑖; 𝜇𝑘𝑖 , 𝜎𝑘𝑖
2 )
27
EMアルゴリズムによるパラメータ推定パラメータを初期化
下記の推定を繰り返す
◦ 𝛾𝑖𝑘 = 𝑝 𝑘 𝑥𝑖, 𝜃0 =𝜆𝑘0𝑁 𝑥𝑖;𝜇𝑘
0, 𝜎𝑘0 2
𝑗 𝜆𝑗0𝑁 𝑥𝑖;𝜇𝑗
0, 𝜎𝑗0
2 とおく
◦𝜇𝑘 = 𝑖 𝛾𝑖𝑘𝑥𝑖
𝑖 𝛾𝑖𝑘
◦𝜎𝑘2 =
𝑖 𝛾𝑖𝑘 𝑥𝑖−𝜇𝑘2
𝑖 𝛾𝑖𝑘
◦ 𝜆𝑘 =1
𝑁 𝑖 𝛾𝑖𝑘
28
KL展開/主成分分析(PCA)各次元が無相関になるように空間を回転させ,重要な軸を残す
29
𝒚 = 𝐴𝑡𝒙
KL展開/主成分分析(PCA)Σ = 𝑖 𝒙𝑖𝒙𝑖
𝑡 とする
変換行列Aは◦Σ𝐴 = Λ𝐴の解
→AはΣの固有ベクトル,Λは固有値の対角行列
◦大きい固有値に対応する長さ1の固有ベクトルを𝒆1, … , 𝒆𝐾とする→𝒚 = 𝐴𝑡𝒙 = 𝒆1, … , 𝒆𝐾
𝑡𝒙 = 𝒆1𝑡𝒙,… , 𝒆𝐾
𝑡 𝒙 𝑡
30
線形判別分析(LDA)識別に有利な次元を優先して次元圧縮
1
2
線形判別分析◦クラス内共分散 Σ𝑊◦クラス間共分散 Σ𝐵◦変換行列AはΣ𝑊
−1Σ𝐵の固有ベクトル◦ クラス内分散を小さく
◦ クラス間分散を大きくする
動的計画法◦ スタートからゴールまで金貨を集めて進む
できるだけ金貨を集めるにはどこを通るのがベストか?
動的計画法
34
• ある交差点で持っている金貨の数は、その直前の交差点で持っていた金貨の数に依存
• それよりさらに前の経路には依存しない
𝐺 𝑖, 𝑗 = max 𝐺 𝑖 − 1, 𝑗 + 𝑤𝑟(𝑖 − 1, 𝑗)
𝐺 𝑖, 𝑗 − 1 + 𝑤𝑢(𝑖, 𝑗 − 1)
初期条件
𝐺 1,1 = 0𝐺 𝑖, 1 = 𝐺 𝑖 − 1,1 + 𝑤𝑟 𝑖 − 1,1 𝑖 > 1𝐺 1, 𝑗 = 𝐺 1, 𝑗 − 1 + 𝑤𝑢 1, 𝑗 − 1 (𝑗 > 1)
動的計画法1. 問題がいくつかの段階の積み重ねで記述
できること(上記の例では,各交差点での最適値)
2. ある段階での最適値の計算は,その直前の段階の最適値のみに依存すること
動的計画法が使えれば、計算量は「すべての組み合わせ」から「各段階での解」まで落とすことができる
レーベンシュタイン距離(編集距離)◦ある単語を「編集」して別な単語にするときの最小の編集回数=編集距離
◦3種類の「編集」◦ 置換: white → while◦ 削除: white → whit◦ 挿入: white → whiten
◦いろいろな編集距離◦ white→while (1)◦ white→whiste→whistle (2)◦ white→fhite→fite→fitne→fitnes→fitness (5)
編集距離の計算◦𝐿 0,0 = 0
◦𝐿 𝑖, 0 = 𝐿 𝑖 − 1,0 + 1 𝑖 > 0
◦𝐿 0, 𝑗 = 𝐿 0, 𝑗 − 1 + 1 𝑗 > 0
◦𝐿 𝑖, 𝑗 = min
𝐿 𝑖 − 1, 𝑗 + 1
𝐿 𝑖 − 1, 𝑗 − 1 + 𝑑(𝑖, 𝑗)
𝐿 𝑖, 𝑗 − 1 + 1
削除
置換
挿入
隠れマルコフモデル(HMM)
◦HMMの特徴◦ 「状態遷移確率」と「シンボル出力確率」が独立に存在
◦ 状態系列と出力系列の対応が取れない
1 2
A 0.2
B 0.8
A 0.5
B 0.5
A 0.1
B 0.9
A 0.3
B 0.7
0.40.6 0.8
0.2
系列の出力確率◦系列𝑥1…𝑥𝑛の出現確率計算
◦すべての状態系列𝑞1…𝑞𝑛の集合を𝑄とする
◦ある状態系列に対する系列の出現確率をすべての状態系列について足し合わせたものがHMMによる出現確率になる
𝑃 𝑥1…𝑥𝑛 =
𝑞1…𝑞𝑛∈𝑄
𝜋𝑞1𝑏𝑞1(𝑥1)
𝑖
𝑎𝑞𝑖𝑞𝑖+1𝑏𝑞𝑖(𝑥𝑖)
系列生成確率の計算◦HMMでは「すべての状態系列」についての確率の加算が必要◦ まじめに計算すると膨大な計算量
◦ 動的計画法によって高速化する
21
1 2 3 4 5 6 7 8
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8
トレリス
時間
Forwardアルゴリズム◦時刻tで状態sにいる確率(前向き確率)𝛼(𝑠, 𝑡)◦𝛼 𝑠, 0 = 𝜋𝑠
◦𝛼 𝑠, 𝑡 = 𝑞∈𝑆𝛼 𝑞, 𝑡 − 1 𝑎𝑞𝑠𝑏𝑞(𝑥𝑡)
0 1 2
𝑥1 𝑥2
𝛼(1,2)
𝛼(1,1)
𝛼(2,1) 𝑎21𝑏2(𝑥2)
𝑎11𝑏1(𝑥2)
21
Forwardアルゴリズム最終的な系列の確率◦𝑃 𝑥1, … , 𝑥𝑁 = 𝑠∈𝐹 𝛼(𝑠, 𝑁)
21
1 2 3 4 5 6 7 8
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8
𝛼(1, 𝑁)
𝛼(2, 𝑁)
9
HMMの学習◦実際には状態系列はわからない
◦状態系列が未知の場合の学習⇒Forward-Backwardアルゴリズム(Baum-Welchアルゴリズム)◦ EMアルゴリズムの一種
◦ 「確率的な状態遷移数」を求める
◦ 𝛾𝑡(𝑞, 𝑞′): 時刻tで状態qにいるとき、次の状
態がq’である確率
前向き確率と後向き確率◦時刻1~tで𝑥1…𝑥𝑡を出力した後で状態sにいる確率(前向き確率) 𝛼(𝑠, 𝑡)◦𝛼 𝑠, 0 = 𝜋𝑠
◦𝛼 𝑠, 𝑡 = 𝑞∈𝑆𝛼 𝑞, 𝑡 − 1 𝑎𝑞𝑠𝑏𝑞(𝑥𝑡)
◦時刻tに状態sにいて、その後𝑥𝑡+1…𝑥𝑁を出力する確率(後向き確率)𝛽(𝑠, 𝑡)◦𝛽 𝑠, 𝑁 = 1
◦𝛽 𝑠, 𝑡 = 𝑞∈𝑆 𝑎𝑠𝑞𝑏𝑠 𝑥𝑡+1 𝛽(𝑞, 𝑡 + 1)
状態滞留の期待値◦ある時刻tからt+1にかけて状態sからqへの状態遷移が起こった期待値
◦ 𝜉𝑠𝑞 𝑡 =𝛼 𝑠,𝑡 𝑎𝑠𝑞𝑏𝑠 𝑥𝑡+1 𝛽(𝑞,𝑡+1)
𝛼 𝑠,𝑡 𝛽(𝑠,𝑡)
◦ある時刻tで状態sにいる期待値
◦ 𝛾𝑠 𝑡 =𝛼 𝑠,𝑡 𝛽(𝑠,𝑡)
𝑞 𝛼 𝑞,𝑡 𝛽(𝑞,𝑡)
パラメータ更新収束するまで繰り返す◦𝜋𝑖 ← 𝛾𝑖 1
◦𝑎𝑠𝑞 ← 𝑡 𝜉𝑠𝑞(𝑡)
𝑡 𝛾𝑠(𝑡)
◦𝑏𝑞 𝑥 ← 𝑡:𝑥𝑡=𝑥 𝛾𝑞(𝑡)
𝑡 𝛾𝑞(𝑡)
サポートベクターマシン◦Support Vector Machine (SVM)
◦ 線形識別の仲間(非線形もできる)
◦ 未知データに強い識別境界を探す(マージン最大化)
◦ 高次元非線形特徴空間への暗黙の写像(カーネルトリック)
マージン最大化◦識別境界に一番近い学習サンプル(サポートベクター)と識別境界との距離(マージン)を最大化する
カーネル関数◦識別関数
◦𝐾 𝑥, 𝑥′ = Φ 𝑥 ⋅ Φ(𝑥′)とおく
◦𝑓 𝑥 = 𝑖 𝛼𝑖Φ 𝑥𝑖 ⋅ Φ 𝑥 + 𝑏 = 𝑖 𝛼𝑖𝐾 𝑥𝑖, 𝑥 + 𝑏
◦ 関数𝐾(𝑥, 𝑥′):カーネル関数
◦カーネル関数に工夫◦ 「高次空間に写像して内積」→「内積の非線形関数」
◦𝐾 𝑥, 𝑦 = 𝑥 ⋅ 𝑦 + 1 2 2次多項式カーネル
◦𝐾 𝑥, 𝑦 = exp 𝛾 𝑥 − 𝑦 2 RBFカーネル
決定木◦If-thenルールだけで分類をする
x<2
y>3
x<4
y>2.8
Yes No
Yes No
Yes No
Yes No
決定木の学習
全学習データ
最もサンプルが多いクラスに分類
質問1 質問2 質問3
2つに分けたデータの「質」が最もよくなる質問を選ぶ
質=それぞれのデータ内にできるだけ同じクラスのデータだけがある
次に分けるべきデータを選ぶ
質問n
質問n
質問1
質問n
質問2
質問n
質問3
アンサンブル学習◦複数の識別器を組み合わせて判定する
◦識別関数◦𝑔 𝑥 = 𝑘𝑤𝑘𝑔𝑘(𝑥)
◦𝑔𝑘(𝑥):弱識別器
◦𝑔(𝑥):強識別器
◦次の場合に性能が改善◦ 複数の弱識別器のエラー率が低い(<50%)
◦ 複数の弱識別器が独立
バギング(Bagging)◦1つの学習データから複数の学習データを生成→複数の弱識別器を構成
◦学習データ𝐷 = {𝑥 1 , … , 𝑥 𝑛 }◦ブートストラップサンプル
◦𝐷𝑘 = 𝑥 𝑛𝑘,1 , … 𝑥 𝑛𝑘,𝑛◦1 ≤ 𝑛𝑘,𝑖 ≤ 𝑛 乱数で決める
◦データ𝐷𝑘から弱識別器𝑔𝑘(𝑥)を学習
◦𝑔 𝑥 =1
𝑛 𝑘 𝑔𝑘(𝑥)
重複を許す抽出
ブースティング(Boosting)◦𝑔 𝑥 = 𝑘𝑤𝑘𝑔𝑘(𝑥) = 𝑘𝑤𝑘𝑔(𝑥; 𝜃𝑘)
◦重み𝑤𝑘とパラメータ𝜃𝑘を最適化する◦AdaBoost (Adaptive Boosting) アルゴリズムが有名◦ 重みの最適化は難しいので,弱識別器を1個ずつ増やしながら逐次最適化
Random Forests決定木のアンサンブル学習の一種
Baggingの発展形Baggingは学習サンプルの中からサンプリングして複数の決定木を学習
Random Forestsは学習サンプルの中からサンプリングすると同時に,利用する特徴ベクトルの次元もサンプリングする
階層的クラスタリング◦ばらばらのデータを少しずつ併合することで集団を形成する
AB
C
DA
B
C
DA
B
C
DA
B
C
D
A B C D
クラスタ間距離の定義
𝑥𝑖 𝑦𝑖
min𝑖,𝑗
𝑥𝑖 − 𝑦𝑗 max𝑖,𝑗
𝑥𝑖 − 𝑦𝑗
最近隣法Nearest-Neighbor
最遠隣法Furthest-Neighbor
クラスタ間距離の定義◦Ward法
𝐸 𝑋 = 𝑖=1
𝑁
𝑥𝑖 − 𝑥𝐺2
𝐸 𝑌 = 𝑖=1
𝑀
𝑦𝑖 − 𝑦𝐺2
𝐸 𝑋 ∪ 𝑌 = 𝑖=1
𝑁
𝑥𝑖 − 𝑔 2
+ 𝑖=1
𝑁
𝑥𝑖 − 𝑔 2
𝑥𝐺 𝑦𝐺
𝑔
𝑑 𝑋, 𝑌 = 𝐸 𝑋 ∪ 𝑌 − 𝐸 𝑋 − 𝐸 𝑌
K-means法◦ベクトル空間で定義された点のクラスタリング◦ クラスタリングする点に座標があり、平均できる
◦ 点の間にユークリッド距離が定義される
◦各クラスタに「代表点」(セントロイド)を定義◦ セントロイドとクラスタ内の点との距離(誤差)の二乗和をすべてのクラスタに対して加算したものを最小化
K-meansアルゴリズム𝑥1…𝑥𝑁:データ点 K:クラスタ数
セントロイド 𝑔1, … , 𝑔𝐾 を適当に決める(初期化)
Loop
For 𝑖 ← 1, … , 𝑁 do 𝑘 𝑖 ← argmin𝑘
𝑥𝑖 − 𝑔𝑘2
𝑁 𝑘 ← 𝑘 𝑖 = 𝑘であるサンプル(k番目のクラスタ)の数
For 𝑘 ← 1,… , 𝐾 do 𝑔𝑘 ← 𝑖: 𝑘 𝑖 =𝑘 𝑥𝑖 /𝑁(𝑘)
Until クラスタに属するサンプルが変化しなくなる
DBSCAN点の間の関係ではなく、次の性質に注目◦ある部分にどれだけ点が密集しているか
◦密集した点が連続しているか
半径epsの中に点がminPts個
以上ある場合に、それらの点が1つのクラスタに属する
集団間の距離があれば別クラスタになる
外れ値は孤立したクラスタになる
自己組織化マップ◦英語ではSelf Organizing Map (SOM)
◦(高次元)空間から構造を持ったユニットへの非線形写像を求める◦ KL展開/PCAのような次元圧縮とクラスタリングを同時に行う
62
自己組織化マップ◦数学的準備
◦ 学習データ 𝑥1, … , 𝑥𝑁 ∈ 𝑅𝑛
◦ ノード 𝑣 ∈ 𝑉
◦ ノード重みベクトル 𝑚𝑣 ∈ 𝑅𝑛
◦ データ間距離関数 𝑑 𝑥, 𝑦 = 𝑥 − 𝑦
◦ ノード間類似度 ℎ(𝑢, 𝑣)
63
目的関数◦ノードに相互の関係がない場合の誤差関数
◦𝐸 = 𝑖 𝑑 𝑥𝑖 , 𝑚𝑐𝑖
2
◦ 𝑐𝑖 = argmin𝑣
𝑑(𝑥𝑖, 𝑚𝑣)
◦「隣接ノードは似たような特徴を持つ」という制約を入れると◦𝐸 = 𝑖 𝑣 ℎ 𝑐𝑖 , 𝑣 𝑑 𝑥𝑖, 𝑚𝑣
2
64
ノード間類似度◦「隣接するノードは最終的に同じような特徴を持つべき」という制約を表現
◦例(2次元配置)◦ 𝑣 = 𝑣𝑥, 𝑣𝑦 , 𝑢 = 𝑢𝑥, 𝑢𝑦
◦ ℎ 𝑢, 𝑣 = 1 𝑢𝑥 − 𝑣𝑥 ≤ 𝐾 and 𝑢𝑦 − 𝑣𝑦 ≤ 𝐾
0 otherwise◦ ℎ 𝑢, 𝑣 = exp(−𝜆 𝑢 − 𝑣 2)
65
学習データが一度に与えられる場合(バッチ学習SOM)すべてのノードの重みベクトルを初期化
(学習データのKL展開の主成分を初期値とする)
Loop
𝑥𝑣 ← 𝑖 ℎ 𝑐𝑖,𝑣 𝑥𝑖
𝑖 ℎ(𝑐𝑖,𝑣)
すべてのノード𝑣について
𝑚𝑣 𝑖 + 1 ← 𝑚𝑣 𝑖 − 𝛼(𝑖)( 𝑥𝑣 −𝑚𝑣 𝑖 )
66
Deep Neural Network◦中間層がたくさんあるNN
3層 7層
67
DNNはなぜよい(と思われる)のか
◦任意の関数を近似する能力は3層NNで十分◦ ただし中間層のユニット数がいくらでも多くてもよく、しかも学習ができれば
◦多層NNの場合◦ 非線形関数を重ねて使うことで、少ないユニット数で高い表現力が得られる(うまく学習できれば)
◦ 特徴抽出と識別を同時に最適化できる
68
DNNの問題点◦Vanishing Gradient Problem
◦ NNの学習法(BP法)は最急降下法(Gradient descent)の一種◦ 各レイヤーの各ユニットで、誤差を最小にする方向に重みを変化させる
◦ 変化量を非線形関数の微係数と入力の誤差の総和に比例させる
◦ ネットワークの層が深くなると、重みの学習が困難になる
69
対策◦深いネットワークを一度にBPで学習せず、1層ずつなんかの方法で学習してから(プリトレーニング)全体を学習し直す◦ Autoencoderを使う方法
◦ RBMを使う方法(Deep Belief Network)
◦勾配が小さくならない非線形関数を使う◦ ランプ関数(ReLU)
70
出力層の活性化関数Softmax出力
◦𝑔𝑖 =exp ℎ𝑖
𝑗 exp ℎ𝑗
ih
j j
ii
h
hg
exp
exp
どれかの出力だけが1に近くなるそれ以外は0に近い総和は1(確率近似)
71
コスト関数出力側で小さくしたいもの◦これまでは二乗誤差を考えた
◦ 𝐿 = 𝑖 𝐿𝑖
◦ 𝐿𝑖 =1
𝑛 𝑘 𝑔𝑖
𝑘 − 𝑏𝑖𝑘
2
◦クロスエントロピー
◦ 𝐿𝑖 = −1
𝑛 𝑘 𝑏𝑖
(𝑘)log 𝑔𝑖
(𝑘)+ 1 − 𝑏𝑖
(𝑘)log 1 − 𝑔𝑖
(𝑘)
◦𝑏𝑖(𝑘)
= 1のときは前半のみ
◦𝑏𝑖(𝑘)
= 0のときは後半のみ
72
バッチ学習◦ ミニバッチ
◦ 少ないサンプルごとに更新量を平均して係数を更新
73
Dropout学習◦過学習を防ぐテクニック
◦ 学習を行う係数をランダムに決める
◦ アンサンブル学習に似ている
74
学習アルゴリズムの改良◦ 通常
◦ 𝒘(𝑡) ← 𝒘(𝑡 − 1) − 𝜌𝜖 𝑡 𝒈(t)
◦ AdaGrad◦ 𝑟 𝑡 ← 𝑟 𝑡 − 1 + 𝜖 𝑡 𝒈 𝑡 2
◦ 𝒘(𝑡) ← 𝒘(𝑡 − 1) −𝜌𝜖 𝑡 𝒈(t)
𝑟+𝑒
◦ RMSProp◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2
◦ 𝒘(𝑡) ← 𝒘(𝑡 − 1) −𝜌𝜖 𝑡 𝒈(t)
𝑟+𝑒
75
徐々に学習係数を小さくする
学習アルゴリズムの改良◦ AdaDelta
◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2
◦ 𝒗 ←𝑠(𝑡)+𝑒
𝑟(𝑡)+𝑒𝜖 𝑡 𝒈(𝑡)
◦ 𝒘 𝑡 ← 𝒘 𝑡 − 1 − 𝜌𝒗
◦ 𝑠 𝑡 ← 𝛾𝑠 𝑡 − 1 + 1 − 𝛾 𝒗 2
76
学習アルゴリズムの改良◦ Adam
◦ 𝒗 𝑡 ← 𝛽𝒗 𝑡 − 1 + (1 − 𝛽)𝜖 𝑡 𝒈(𝑡)
◦ 𝑟 𝑡 ← 𝛾𝑟 𝑡 − 1 + (1 − 𝛾) 𝜖 𝑡 𝒈 𝑡 2
◦ 𝒘 𝑡 ← 𝒘 𝑡 − 1 −𝜌
𝑡
1−𝛾𝑡+𝑒
𝒗
1−𝛽𝑡
77
Convolutional NN◦畳み込み(Convolution)層の構造
78
Convolutional NN◦プーリング層の構造
◦ 畳み込み出力をまとめる(2次元では2x2)
79
直前の層の値の最大値を出力する (Max pooling)または平均値を出力する(Average pooling)
画像の場合は1回のプーリングでサイズが縦横半分ずつになる
カラー画像の場合◦チャネルが複数ある→3次元(テンソル)
80
画像(3次元)
畳み込み
チャネル×畳み込みユニットの種類
プーリング
複数の畳み込み◦異なる畳み込み(畳み込み領域の違いなど)と統合
81
畳み込み
Depthconcat
Convolutional Neural Networkの例
82
Convolutionlayer
Poolinglayer
Convolutionlayer
Poolinglayer Convolution
layer Full connectionlayer
Outputlayer
Feature extraction Recognition
時間的な依存関係の導入◦NNに時間の概念を導入
◦ 入力層にはベクトルが時間とともに入力されると仮定
83
1 2 3 4 ……… t 1 2 3 4 ……… t
時刻tの出力は時刻tの入力にのみ
依存する
Recurrent Neural Network (RNN)◦過去の出力を入力にフィードバック
84
1 2 3 4 ……… t 1 2 3 4 ……… t
Elman型ネットワーク
RNNの学習
85
t 1 2 3 4 ……… t
t-1
t-2
重みを共有
無限に続くが実際には適当なところで打ち切る
RNNとLSTM◦Long Short Term Memory
◦ 1つの層に複雑な内部構造
86
通常のRNN
Ctx x
xFt
It Ot LSTM
Ct
LSTMの利点◦過去の記憶をどのくらい保持するかを制御できる◦ タスクによってどのくらい前の入力が現在の出力に影響するかが違う
◦ 単純なRNNでは最近の入力によってどれくらい前からの影響を考慮するかを変えることができなかった
87