2017/2/16
DL輪読会
医学系研究科 D2
山口亮平
Exploiting Cyclic Symmetry in
Convolutional Neural Networks
• Deep Mindの論文
• Sander Dileman(ゲント大学の博士課程→google)。博士
課程のとき、Kaggle2015のプランクトンコンテストで
優勝。
• ICML16で発表、引用数12(2017/2/17現在)
• http://benanne.github.io/2015/03/17/plankton.html
• 回転に対するロバスト性をネットワーク内部で再現し
た論文。
Motivation
<CNN・・・平行移動に対して強い>
• Conv層・・・平行移動に対してequivariant
• Pooling層・・・平行移動に対してinvariant
→
①rotationに対してもinvariantを保ちたい。
ネットワークにそのinvariance/equivariantな性質を組み入れたい。
(data augmentationでは一般化されているかどうか不明なため)
②パラメーター共有を普通のCNNに比べてさらに進めることで、
overfittingリスクを減らせる。
Motivation
<CNN・・・平行移動に対して強い>
• Conv層・・・平行移動に対してequivariant
• Pooling層・・・平行移動に対してinvariant
→
①rotationに対してもinvariantを保ちたい。ネットワー
クにそのinvariance/equivariantな性質を入れたい。
②パラメーター共有を普通のCNNに比べてさらに進める
ことで、overfittingリスクを減らせる。
limitation
★Rotation:今回は90度の整数倍の回転に絞ってい
る。
(30度などの鋭角回転を入れると、画像的な補間
が必要となり、さらに計算量が増えるから、とい
う理由で除外している)
★鏡面に関して対象な画像(dihedral symmetry)に関
しても、実装は容易に可能だ、としている。
基本的な考え方
画像を4方向に回転させたものを作成、同じ数のフィルタ
を使いfeature mapを4倍作成できる
提案手法
• 以下の3種類の層を組み込むことを提案
cyclic slicing, cyclic pooling, cyclic rolling
(cyclic stackingは実際には使っていない)
①cyclic slicing, cyclic pooling
http://benanne.github.io/2015/03/17/plankton.html
http://benanne.github.io/2015/03/17/plankton.html
②cyclic rolling
T(x
)
実験
<多クラス分類>
• プランクトンデータセット
(121クラス、95*95pixel、3037valid/27299train)
• 銀河写真データセット
(121クラス、95*95pixel、6157valid/55421train)
<領域抽出>
• マサチューセッツの航空写真
(80*80pixel,137train/4valid/10test)
Baseline CNNをコントロールとし、cyclic slicingなどを挿入すること
でどれだけ性能が向上したかを示した。
• Adam使用、プランクトンのみweight decayも併
用
• Data augmentationは、ベースラインCNNにも、
筆者らの提案した手法にも、どちらにも使用し
た
実験その①(cyclic slice/pool)
実験その②(cyclic rolling)
<rollingの挿入の仕方>
• Roll all(convの後にすべて挿入)
• Roll dense(dense layerの後にのみ挿入)
• その後に1/2,1/4とついているのは、フィルタの
数をその倍率に縮小した、という意味。
参考
• http://benanne.github.io/2015/03/17/plankton.ht
ml
• http://icml.cc/2016/reviews/871.txt

[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks