パターン認識と機械学習 上
目次
・5.5 ニューラルネットの正則化
・5.5.6 畳み込みネットワーク(P270~272)
・5.5.7 ソフト重み共有(P272~274)
・5.6 混合密度ネットワーク(P274~280)
アブストラクト
5.5.6
入力の変換(平行移動, 回転など)に対して, 出力が不変であるためのアプローチの
一つである, たたみ込みニューラルネットワーク(CNN)を紹介する. CNNは入力に対
して, フィルタによるたたみ込み, 一部の数値を取り出す, といった処理を行うことで特
徴を抽出し, 結果を出力する手法である.
5.5.7
ネットワークの有効な複雑さを削減するために, ソフト重み共有という正則化項を導入
する. ソフト重み共有では, 重みに対して混合分布を導入し, 平均や分散などのパラ
メータをグループ毎に学習する. この際, 一つの分布の平均を0にし, 不要な重みを見
つけ出す. これをカットすることでネットワークを軽量化する.
5.6
多峰性を持つ問題に対応するために, データの分布として,
混合分布を仮定する, 混合密度ネットワークについて紹介する.
5.5.6 たたみ込みニューラル
ネットワーク
CNNの目的
全て6だと認識してほしい
平行移動
縮小
対策
・膨大な学習データを与える.
・局所的な特徴を抽出する.
⇒たたみ込みニューラルネットワーク(CNN)
本当に局所的に特徴を抽出できるのか?
画像の性質
近くにある画素同士は遠くにある画素同士よりも強い相関を持つ
近くの画素同士で局所的に相関を考え, 特徴抽出を行い,
後の処理で統合していく.
全ての入力同士の関係を考えた場合上の画像の赤で囲まれた部分
について特徴抽出を行う
たたみ込みニューラルネットワーク(CNN)
たたみ込み演算 部分サンプリング
抽出された特
徴により分類
特徴を抽出する
たたみ込み演算による特徴抽出
入力画像の画素表記
(簡略のため2値)
フィルタ(重み)
(簡略のためバイアス0を想定)
0 1 1
1 1 0
1 0 0
0 1
1 0
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
たたみ込み演算:画像の値とフィルタの値を要素ごとに掛け合
わせ, それらの値を合計する
2
フィルタ 特徴マップ
(たたみ込み層の入力)
たたみ込み演算による特徴抽出
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
2 2
フィルタ 特徴マップ
(たたみ込み層の入力)
たたみ込み演算による特徴抽出
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
2 2
2
フィルタ 特徴マップ
(たたみ込み層の入力)
たたみ込み演算による特徴抽出
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
2 2
2 0
フィルタ
この値を活性化関数で変
換したものが, たたみ込み
層の出力となる
特徴マップ
(たたみ込み層の入力)
平行移動と歪みに対しての不変性
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
2 2
2 0
フィルタ 特徴マップ
0 0 0
1 1 1
1 1 0
入力画像を平行
移動したもの
×
0 1
1 0
2 1
2 2
フィルタ 特徴マップ
の部分を全て
1マス下に移動
特徴マップの該当部
分も1マス下に移動
⇒平行移動と歪みに
対しての不変性
複数の特徴を抽出する場合
0 1 1
1 1 0
1 0 0
0 1
1 0
0 1 1
1 1 0
1 0 0
入力画像
×
0 1
1 0
2 2
2 0
フィルタ1
別の特徴を抽出するためには別のフィルタを利用する
0 0
1 1
0 1 1
1 1 0
1 0 0
入力画像
×
2 1
1 0
フィルタ2
0 0
1 1
入力画像
フィルタ2フィルタ1 特徴マップ2
(たたみ込み層の入力)
特徴マップ1
(たたみ込み層の入力)
たたみ込みニューラルネットワーク(再掲)
たたみ込み演算 部分サンプリング
抽出された特
徴により分類
特徴を抽出する
部分サンプリング(プーリング操作)
特徴マップ
(たたみ込み層の出力)
Max-pooling
範囲内の要素の最大値を取り出す
たたみ込みと合わせて, 画像の少しの平行移動に対して頑健
CNNの3つの機構
・部分サンプリング
- 一部の特徴のみを抽出する.
・局所的受容野
- それぞれのユニットが一部の入力の影響しか受けない.
・重み共有
- 特徴を抽出するための重みは同じものを使う.
⇒この二つの機構により, たたみ込み演算と同様の処理が行われる
CNNの3つの機構
・局所的受容野
- それぞれのユニットが一部の入力の影響しか受けない.
注意
実際のCNNのたたみ込み層は左図のようになっているが,
説明のため右図のようなネットワークとして考える.
局所的受容野
入力画像
×
w1 w2
w3 w4
フィルタ
a b c
d e f inputs
a
b
c
d
e
f
w1
w2
w3
w4
C, f からは影響を受けない
簡略化のためバイアスは省略
CNNの3つの機構
・重み共有
- 特徴を抽出するための重みは同じものを使う.
重み共有
入力画像
×
w1 w2
w3 w4
フィルタ
a b c
d e f
×
w1 w2
w3 w4
a b c
d e f
inputs
a
b
c
d
e
f
w1
w1
いくつかの重みを共有することで, フィル
タとのたたみ込み演算と同じ処理になる
CNNにおける逆伝播アルゴリズム
inputs
a
b
c
d
e
f
w1
w1
通常
CNN
w1が存在する部
分を全て合計する
: m番目の特徴マップの j 番目のユニット
たたみ込み層とプーリング層を増やしたもの
・不変性は層を経るごとに強くなる.
・空間解像度(データの次元)が徐々に低下する分,
特徴数が増加する(フィルタを増やす)ことで補償.
層の増加による悪影響
・計算量が増加する.
・活性化関数にReLU関数を用いている影響で, いくつかの重みが消
失してしまい, 精度が下がる場合がある.
3.57
6.7 7.3
16.4
11.7
25.8
28.2
ILSVRC'15 ILSVRC'14 ILSVRC'14 ILSVRC'13 ILSVRC'12 ILSVRC'11 ILSVRC'10
ResNet GoogleNet VGG AlexNet
ImageNet Classification top-5 error (%)
shallow8 layers
19 layers22 layers
152 layers
8 layers
層の増加の歴史
性能
・従来の手法では層を増やしすぎると性能が下がっていたが,
ResNetでは, 層を増やすほど性能が向上.
従来の手法 ResNet
ResNet
・現在の画像認識ではこの仕組みを応用したモデルが広く用いられ
ている.
・求める写像を とし, その写像と入力の差分 をネットワー
クに学習させる仕組み. ショートカットして与えた入力と差分を足して,
出力とする.
入力のショートカット
利点
・入力と求める写像の差がほとんどないとき, に該当するネット
ワークは多くの重みが0になる.
・入力のショートカットの存在により, 写像により情報が失われてしま
うことが起きにくい.
入力のショートカット
層をより深くするために
右のモデルに置き換える
一度特徴マップの数を圧縮し
たあと, 復元しているイメージ
実際の構造
特徴マップを増やす場所では, 比較の際, 入力の特徴マッ
プを増やす操作(パディング)が行われる.
⇒増加分を全て0にする, 同じ数の1×1フィルタを使用する.
5.5.7 ソフト重み共有
ネットワークの複雑さを軽減する
inputs
a
b
c
d
e
f
w1
w1
制限の形(どの重みを等しくするか)がわかって
いるような問題にしか適用できない
重みを共有しているネットワーク通常のネットワーク
重みの数を減らしたい⇒重み共有(例:CNN)
ネットワークの複雑さを軽減する
重み共有の制限を緩め
れば, 制限の形がわから
くても良くなるのでは? w1 w2 w3 w4
一部の重みが似た値を取りやすくする
⇒ソフト重み共有
ソフト重み共有
・誤差関数に正則化項を導入し, 重みをグループ分けし, 同じグループに属す
る重みが似たような値を取りやすくする.
・重みのグループ分け, グループの平均などのパラメータが学習過程の一部
として決定される(自分であらかじめ決めるが, データによって修正される).
inputs
a
b
c
d
e
f
w1
w2
𝑤1, 𝑤2 ∈ A
w1とw2が似た値を取る
ソフト重み共有がネットワークを圧縮する仕組み
・一つのグループの平均に0を決めておき, そのグループを取る可能性が高
いように事前のパラメータを設定すると, いくつかの不要な重みが見つかる.
・尤度(データの起こりやすさ)の計算を行うことで, 精度をあまり落とさずに
圧縮されたネットワークを見つけることが出来る.
inputs
a
b
c
d
e
f
w1
w2
𝑤1, 𝑤2 ∈ A
A:平均が0の重
みのグループ
inputs
a
b
c
d
e
f
Aに属する重
みを捨てる
圧縮されたネットワーク
正則化項の導入
正則化誤差
wの事後分布の対数 重みの分布は単一のガウス分布を仮定
今回は, 重みが複数のグループを構成する.
⇒重みに混合ガウス分布を仮定すればよい.
混合ガウス分布
K=3
複数のガウス分布を
足し合わせた分布
注: についてスケーリング
を行っている
wの確率密度関数
負の対数を取り,
正則化項
ネットワークの誤差関数
これを最小化するように, 重み, グループ毎の平均, グ
ループ毎の分散を決める.
重みとパラメータは依存しあっているので, 同時最適化
が望ましく, 共役勾配法や準ニュートン法が用いられる.
忘れた人は最適化数学の本参照
混合係数の分布
混合係数について以下のようにみなす.
k番目のクラスを選択する事前確率
〃 事後確率
誤差関数の最小化
重みに関する微分
重みが, そのクラスに属する確率に比例した大きさで,
それざれのガウス分布の平均の方向へ引っ張られる.
混合ガウス分布のそれぞれの平均に関する微分
クラスの平均が, そのクラスに属する可能性を考慮
した, 重みの平均の方向へ引っ張られる.
誤差関数の最小化
混合ガウス分布のそれぞれの分散に関する微分
分散が, そのクラスの平均まわりの重みの分散の
方へ引っ張られる.
分散の最小化についての注意
分散は非負でなければならないので,
・最小化は について行う.
・分散が0に近づきにくいため, 一つの分布が一
つの重みにだけ過剰に適合してしまうことを避
ける効果がある.
誤差関数の最小化
混合係数に関する微分
混合係数(クラスの出現確率)が, 事後分布を全て
の重みに対して平均した方向へ引っ張られる.
ソフトマックス関数
5.6 混合密度ネットワーク
教師有り学習の目標
これまでの仮定(多項式曲線フィッティングの例)
ガウス分布は単峰性を持つため, 多峰性を持つ問題に対応できない.
単峰性 多峰性
目標: がどんな分布か知りたい(平均などのパラメータも含めて)
多峰性:極大値
が複数あること
データが多峰性を持つ例
始点, アームの長さ, 終端位置から回転角を推定
二つの解がある
推定
機械学習の多くの場合, 多峰性があるかわからない
多峰性を持つ人工的なデータの学習
二乗和誤差関数を用いた二層ニューラルネットで学習
: 一様分布 に従う確率変数𝑥からサンプリングしたもの
: 関数 に から生成される乱数を加えたもの
ガウス分布の最尤推定と二乗和誤差関数
データへの仮定
データの対数尤度
二乗和誤差
データに対して単一のガウス分布を仮定した最尤推定
と, 二乗和誤差関数の最小化は等価
多峰性の確認
0 1
多峰性
𝑥1
𝑥1
𝑥2
𝑥2
t1 入力 に対する出力
の分布を取り出す
t1 𝑥
なぜ学習が失敗したのか
二乗和誤差関数の最適解が条件付き平均となるから
なぜ学習が失敗したのか
0 1
𝑥1 + 𝑥2
2
𝑥1
𝑥1
𝑥2
𝑥2
𝑥1 + 𝑥2
2
t1
ここでは単純化のため, での期待値を とするt1
𝑥1 + 𝑥2
2
なぜ学習が失敗したのか
0 1
𝑥1 + 𝑥2
2
𝑥1
𝑥1
𝑥2
𝑥2
𝑥1 + 𝑥2
2
t1
ここでは単純化のため, での期待値を とするt1
𝑥1 + 𝑥2
2
多峰性を持つ場合, 条件付き平均は解として不適
教師有り学習の目標(再掲)
これまでの仮定(多項式曲線フィッティングの例)
ガウス分布は単峰性を持つため, 多峰性を持つ問題に対応できない.
単峰性 多峰性
目標: がどんな分布か知りたい(平均などのパラメータも含めて)
多峰性:極大値
が複数あること
多峰性に対応するには
K=3
混合ガウス分布
データに対して, 混合分布を仮定する!
混合密度ネットワーク
データに対して, 混合分布を仮定したネットワーク
混合ガウス分布を仮定すると,
分布のパラメータは, ニューラ
ルネットの出力として得られる.
混合密度ネットワークの特徴
・異分散モデルの一つ.
・混合ベルヌーイ分布を用いて, 二値分類も可能.
・共分散行列を自分で与えることもできる.
異分散の例
𝑥1 𝑥2
等分散の例
𝑥1 𝑥2
でデータのば
らつき具合が違う
異分散
混合密度ネットワークの構造
出力 決定するもの 個数
混合係数 K
カーネルの幅 K
カーネルの中心 の要素 K×L
(L+2)K個の出力ユニットが必要
パラメータの生成
平均
混合係数
分散
混合密度ネットワークの誤差関数
データの尤度の負の対数尤度を誤差関数とし,
・ネットワークの構造は通常のニューラルネットと同じ.
⇒重みの微分は, 通常の逆伝播の手続きで評価できる.
・N個のデータのそれぞれの誤差関数を足し合わせること
で, 全体の誤差関数を計算できる.
誤差関数の最小化
混合係数を決めるネットワークの出力に関する微分は,
混合係数の事後分布として, 次の式を導入する.
より,
誤差関数の最小化
各要素の分散を決めるネットワークの出力に関する微分
各要素の平均を決めるネットワークの出力に関する微分
使用例
混合密度ネットワークで学習
決定されるパラメータの図示
混合数3の混合ガウス分布を使用
混合係数
それぞれのガウス分布
が選ばれる確率
平均
それぞれのガウ
ス分布の平均
条件付き確率密度分布
目標データの対応するクラスの条件付
き確率密度の等高線をプロットしたもの
各クラスを取る確率が
同じ部分を集めている
混合密度ネットワークの平均
決定されたパラメータを用いて, 出力について有用な量を計算する.
平均
ただし, 左図の例で見たように
平均は解としてふさわしくない
混合係数に応じて, 各ガウス
分布の平均を足し合わせる
混合密度ネットワークの分散
一つのガウス分
布内での分散
一つのガウス分布の平均
と, 全体の平均との分散
混合密度ネットワークの分散
・この値は入力によって変化するた
め, 最小二乗の結果より一般的.
・最小二乗は, データ全体に一つし
か分散が出ない.
混合密度ネットの分散
𝑥1 𝑥2
最小二乗の分散
𝑥1 𝑥2
混合密度ネットワークの解
最頻値が欲しい
0 1𝑥1 𝑥2
数値的反復法により求める
数値的反復法
混合密度ネットワークが持っている情報
細かく刻んだ一点
ずつ見ていって最
頻値を求める
混合密度ネットワークの解
数値的反復法を行いたくない.
⇒そのデータが生成された可能性が最も高いガウス分
布の平均を取り, 解とする.
混合係数 平均
青
緑
赤
青 緑 赤

PRML 5.5.6-5.6 畳み込みネットワーク(CNN)・ソフト重み共有・混合密度ネットワーク

Editor's Notes

  • #9 ゼロパティングなど
  • #10 ゼロパティングなど
  • #11 ゼロパティングなど
  • #12 ゼロパティングなど
  • #13 ゼロパティングなど
  • #14 ゼロパティングなど
  • #16 ゼロパティングなど
  • #19 左図のようになっている理由は, そのほうがプログラムが書きやすいからだと思われる.