deep simnets
TRANSCRIPT
2016/07/17 CV勉強会@関東CVPR2016読み会 発表資料
2016/07/17
@peisuke
自己紹介
名前:藤本敬介
研究:ロボティクス、コンピュータビジョン
点群:統合、メッシュ化、認識
画像:認識、SfM・MVS
ロボット:自律移動、動作計画
本発表の概要
•発表論文• Deep SimNets
• どんな論文?• 畳み込みニューラルネットを一般化したネットワークの提案、少ないパラメータながらも高精度
•特徴は?• 内積を一般化したSimilarity Operator、非線形処理
(pooling, ReLU)を一般化したMEX Operator
• 一般化により例えばMax PoolingとAvrage Poolingの中間的な動作が可能
• 教師無し事前学習
Deep SimNets
Nadav Cohen
Or Sharir
Amnon Shashua
CNNの様々な構成要素
•畳み込み層
•全結合層
• Max Pooling
• Average Pooling
•非線形活性化(ReLU等)
CNNのバリエーション
• NiN、GoogLeNet, VGG
CNNのバリエーション
• FitNets
• HMAX
• Kernel Method for Deep Learning
• Sum product networks
• Invariant scattering convolution networks
• Polynomial networks
• BinaryNet
• XNOR-Net
• PerforatedCNNs
• Memory Bounded Deep Convolutional Networks
• Deep Compression
• SqueezeNet
たくさん!
Deep SimNets
• Deep Learningの構成要素を一般化し、一つの記述で色々な構成を表現
•適切な構成も学習可能とすることで、性能向上• 層内のノード数
• Max or Average
•効率化の利点• モバイル端末への利用などもできるようなるはず
線形計算の一般化非線形処理の一般化
線形計算の一般化
•下記のように線形計算を表現
φlinでu=1を選べば、従来の演算と等価
φlpはカーネル法と関連付けると実は自然な定義(後述)、事前学習に有効(後述)
𝑾𝒙𝒖𝑖𝑇𝜙 𝒙, 𝒛𝑖
𝜙𝑙𝑝 𝒙, 𝒛𝑖 = − 𝒙 − 𝒛𝑖𝑝
𝜙𝑙𝑖𝑛 𝒙, 𝒛𝑖 = 𝒙𝑇𝒛𝑖
Similarity operator
非線形処理の一般化
•以下のように非線形関数を定義
β→0の場合、MEX(x)はmean(x)
β →-∞の場合、MEX(x)はmin(x)
β →∞の場合、MEX(x)はmax(x)
𝑀𝐸𝑋β 𝒙 =1
βlog1
𝑁
𝑖
exp β𝒙
MEX operator
Maximum-minimum Expectation Collapsing Smooth
MEXのテスト
0.1
0.15
0.2
0.25
0.3
0.35
0.0001 0.001 0.01 0.1 1 10 100 1000
𝒙 = 0.1, 0.2, 0.3𝑀𝐸𝐴𝑁 𝑥 = 0.2𝑀𝐴𝑋 𝑋 = 3.0
𝛽
𝑀𝐸𝑋(𝒙)
𝑀𝐸𝑋β 𝒙 =1
βlog1
𝑁
𝑖
exp β𝒙
MEXによるMax pooling
•所定の位置の画素群に対して、β→∞でMEX operatorをかける
𝒙 = 1, 2, 3,4
𝑀𝐸𝑋β→∞ 𝒙1 2 5
3 4 4
3 1 3
4
MEXによるGlobal Average pooling
•画像全体に対して、β→0 でMEX operatorをかける
𝒙 = 1, 2, … , 3
𝑀𝐸𝑋β→0 𝒙1 2 5
3 4 4
4 1 3
3
MEXによるReLU
•入力xの各要素に対して0を追加し、β→∞でMEX operatorをかける
𝒙 = 4,0
𝑀𝐸𝑋β→∞ 𝒙1 2 5
3 4 4
3 1 3
4
SimNet MLP
•単純なSimNet
•入力に対してSimilarity Operator、MEX Operatorをかけて出力• MEX Operator内でバイアスを追加
SimNet MLPConv
•畳み込み演算同様に、所定の領域に対して、Similarity Operatorを掛ける
1 2 5
3 4 4
3 1 3
𝒙 = 1, 2, 3,4
𝒛𝒊 = 0.2, 0.4, 0.1, 0.3𝒖𝒊𝑇𝜙 𝒙, 𝒛𝒊
𝒖𝒊 = 0.2, 0.4, 0.1, 0.3
入力画像のとあるチャンネル
SimNet MLPConv
白色化処理
•画像白色化による精度向上
•畳み込み領域に関連して白色化の変換行列を一度かけ、その後Similarity Operator
白色化
•画素間の相関を無くすよくやられている処理
•省略
続きはWebで!
白色化 検索
Go○gle
𝒚 = 𝑾𝒙 cov 𝒚 = 𝑰
Deep SimNet
• SimNetをたくさん重ねる
•白色化行列は初期値、学習で数値を決定
事前学習
•教師無し学習によりパラメータを事前決定• w: 畳み込み係数(白色化で決定)
• z,u: Sim. Operatorの係数
• p: Sim. Operatorのノルムの値
• b: MEX Operatorのバイアス
事前学習
•教師無し学習は、データの分布をうまく表せるような所定の確率分布を決定する処理
この場合、正規分布3つでデータ点群を表せる
事前学習
• Similarity Operatorは以下であった
• これを、確率分布の対数尤度の部分とみなすと、確率分布はGeneralized Gaussianになる
−
𝑖
𝒖𝑖𝑇 𝒚 − 𝒛𝑖
𝑝
𝑖
𝛽
2𝛼Γ 1/𝛽𝑒− 𝒚−𝒖𝑖 /𝛼𝑖
𝛽
論文に合わせ、変数を置き換えています。
事前学習
• CNNは、多チャンネルの出力となるので、前述のモデルをGeneralized Gaussian Mixtureとする
• このパラメータを決定することで入力データをうまく表す分布が決定できる• パラメータ決定はEMアルゴリズム等を使い、よろしくやる
カーネル法との関係
• SimNetはカーネル法みたいな感じ
ガウスカーネル
指数カーネル
実験• SimNetとConvNetの比較
• 1層での比較• 2層での比較• 3層SimNetとSOTA手法の比較
• ベンチマーク• SVHN:数字画像データセット• CIFAR10:10カテゴリ画像データセット• CIFAR100:100カテゴリ画像データセット
•条件• SimNetは事前学習あり• ConvNetはランダムで初期化
1層SimNet
•演算回数あたりの、認識精度を比較
• ネットワークの構成• 5x5畳み込み層、16x16のプーリング
• チャンネル数を変えながらテスト
• 2%~4%ほど精度高
2層SimNet
•小さな構成の軽量なネットワーク同士での比較• モバイル端末等での利用を想定
• ネットワーク構成は5x5の畳み込み、3x3のプーリング
•同程度の精度なら、パラメータ数・計算回数とも半分程度
3層SimNet
• SOTAのConvNet(NiN、Highway Net)との比較
• ネットワークについて• SimNetは5x5、5x5、3x3の畳み込み、1層目ではMax、2層目では Average poolingを利用(あれ・・?)、Sim. Operatorのノルムpは2(あれれ?)
•同程度の精度は達成している
まとめ
•畳み込みニューラルネットを一般化• 内積を一般化したSimilarity Operator、非線形処理
(pooling, ReLU)を一般化したMEX Operator
• 一般化してるのでMax PoolingとAvrage Poolingの中間的な動作可能
• 教師無し事前学習
•小さなネットワークでは効率高、大きくしてもSOTAと同等の性能
• カーネル法の変形ともみなせる