[dl輪読会]exploiting cyclic symmetry in convolutional neural networks

18
2017/2/16 DL 輪輪輪 輪輪輪輪輪輪 D2 輪輪輪輪

Upload: deeplearningjp2016

Post on 21-Mar-2017

123 views

Category:

Technology


0 download

TRANSCRIPT

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

2017/2/16 DL輪読会

医学系研究科 D2山口亮平

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

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•回転に対するロバスト性をネットワーク内部で再現した論文。

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

Motivation<CNN・・・平行移動に対して強い >• Conv層・・・平行移動に対して equivariant• Pooling層・・・平行移動に対して invariant→①rotationに対しても invariantを保ちたい。ネットワークにその invariance/equivariantな性質を組み入れたい。(data augmentationでは一般化されているかどうか不明なため )

②パラメーター共有を普通の CNNに比べてさらに進めることで、overfittingリスクを減らせる。

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

Motivation<CNN・・・平行移動に対して強い >• Conv層・・・平行移動に対して equivariant• Pooling層・・・平行移動に対して invariant→①rotationに対しても invariantを保ちたい。ネットワークにその invariance/equivariantな性質を入れたい。②パラメーター共有を普通の CNNに比べてさらに進めることで、 overfittingリスクを減らせる。

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

limitation★Rotation:今回は 90度の整数倍の回転に絞っている。( 30度などの鋭角回転を入れると、画像的な補間が必要となり、さらに計算量が増えるから、という理由で除外している)★鏡面に関して対象な画像 (dihedral symmetry)に関しても、実装は容易に可能だ、としている。

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

基本的な考え方 画像を 4方向に回転させたものを作成、同じ数のフィルタを使い feature mapを 4倍作成できる

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

提案手法•以下の 3種類の層を組み込むことを提案 cyclic slicing, cyclic pooling, cyclic rolling( cyclic stackingは実際には使っていない)

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

①cyclic slicing, cyclic pooling

http://benanne.github.io/2015/03/17/plankton.html

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

http://benanne.github.io/2015/03/17/plankton.html

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

②cyclic rollingT(x)

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

実験<多クラス分類>• プランクトンデータセット( 121クラス、 95*95pixel、 3037valid/27299train)• 銀河写真データセット( 121クラス、 95*95pixel、 6157valid/55421train)<領域抽出>• マサチューセッツの航空写真 ( 80*80pixel,137train/4valid/10test)Baseline CNNをコントロールとし、 cyclic slicingなどを挿入することでどれだけ性能が向上したかを示した。

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

• Adam使用、プランクトンのみ weight decayも併用• Data augmentationは、ベースライン CNNにも、筆者らの提案した手法にも、どちらにも使用した

Page 13: [DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
Page 14: [DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks

実験その①( cyclic slice/pool)

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

実験その②( cyclic rolling)

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

<rollingの挿入の仕方>• Roll all(convの後にすべて挿入 )• Roll dense(dense layerの後にのみ挿入 )

•その後に 1/2,1/4とついているのは、フィルタの数をその倍率に縮小した、という意味。

Page 17: [DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks
Page 18: [DL輪読会]Exploiting Cyclic Symmetry in Convolutional Neural Networks

参考• http://benanne.github.io/2015/03/17/

plankton.html• http://icml.cc/2016/reviews/871.txt