[DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
-
Upload
deeplearningjp2016 -
Category
Technology
-
view
123 -
download
0
Transcript of [DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
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 rollingT(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.html• http://icml.cc/2016/reviews/871.txt