>100 Views
February 28, 17
スライド概要
2017/2/28
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
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