狠狠撸
Submit Search
Dynamic Routing Between Capsules
?
Download as PPTX, PDF
?
4 likes
?
3,648 views
M
Masaya Kaneko
Follow
Hinton先生による新しい論文が最近出て, MNISTのstate-of-the-artを達成したらしいので内容をまとめました.
Read less
Read more
1 of 18
Download now
Downloaded 37 times
More Related Content
Dynamic Routing Between Capsules
1.
Dynamic Routing Between Capsules
(NIPS 2017) 東京大学電子情報工学科 2017/11/12 B4 金子 真也
2.
1 概要 ? Back Propagation,
Auto Encoderなどを生み出したHinton先生を 含むGoogle Brainによる論文. ? 画像の意味解釈の文脈で最も用いられている, CNNよりも位置不変 性などの面で優れたCapsule Networkを提案. – Capsuleというニューロンの集合パーツを用いた ? 実際にMNISTでState-of-the-artの精度を達成.
3.
2 Capsule ? 人間の視覚が得た光学的情報から物体を解釈する際に, 構文木のよ うな構造を作成するという仮定から発想を得た. –
細部を無視して動的に構造を変えられるような仕組み ? Capsuleという小さなニューロンの集合によってこれを実現 – 構文木の各ノードに相当する – 反復ルーティングを利用して, 各Capsuleは一つ上層のCapsule (Parent)を選択し, 木構造を構築(routing) ? Capsule内のニューロンの状態はベクトルでParentへ出力される – ベクトルの長さによって内容の存在確率を表現 – ベクトルの向きによって性質を表現
4.
3 ベクトルの出力 ? Squash関数として非線形関数を利用 – ??は?番目のCapsuleへのトータルの入力 –
??は?番目のCapsuleからの出力 ? 非線形関数によってベクトルの長さを1に圧縮
5.
4 ベクトルの入力 ? 先ほどの??は一つ前のCapsuleから出力された複数のベクトルに対 して重み付けを行った結果である – ??は一つ前の?番目のCapsuleから出力されたベクトル –
???は?番目のCapsuleと?番目のCapsuleとの間の重み付け – 重み付けの結果に対してさらに, 反復ルーティングシステムに よって構造木そのものの結合度合い???で重み付けが行われる
6.
5 ルートの結合度合い ? ?番目のCapsuleが全体の構造木のルートの中でどのように結合され ているかを表すため結合度合い???が計算される. ? そのために,
ロジット???(0から1の間の値を持つ変数)が定義され, 以下のようにsoftmax関数で結合度合いが計算される. ? このロジットの値を最適化する方法が反復ルーティングであり, これにより動的に構造木を変化させることができる.
7.
6 反復ルーティング ? アルゴリズムとしては今まで解説した式を用いた形となる. – 反復して???の値を更新していく形となっている. Softmax関数(Eq.3)
厂辩耻补蝉丑関数(贰辩.1)
8.
7 反復ルーティング ? どの程度反復を行えばよいのかを調査した結果が以下. – MNISTに対して反復の回数を変えて,
最終的な誤り率を出力. – 回数をこなせばこなすほど最終的な誤差率は下がる. – ただ, 同時に過学習もしやすくなってしまう.
9.
8 Lossの定義 ? 結局出力されたベクトルの長さによってCapsuleの存在確率を表現 していた. ? 最終的なclassification結果をラベルに近づけるために以下のLossを 最適化する –
?番目のclassが目標のラベルであれば, ?? = 1. 異なれば?? = 0. – Marginとして?+ = 0.9, ?? = 0.1を用いる – 重みを軽減する項として, ? = 0.5 – 最終的にこれらの和がLossとなる.
10.
9 ネットワークの構造1 ? 単純なCapsNetの構造が以下.(3層) – Deep
Conv(Chang and Chen[2015])に相当する性能を持つ ? PrimaryCapsでは32channel – 各PrimaryCapは長さ8のベクトルを出力 (9 × 9 kernel, stride 2) ? DigitCapsへの入力は??(長さ8)(? ∈ (1,32 × 6 × 6))に対して,??? = [ 8 × 16]をしたため, ??は長さ16のベクトルとなる(? ∈ (1,10)) 今回はこの間のみ反復ルーティングが存在 (bij)
11.
10 ネットワークの構造2 ? 最終的にDigitCapsでのベクトルに対してDecoderを用い, 元の画像 を復元するように学習を行った –
例えば以下の図ではMNISTに対して数字の「5」に当たるベク トルのみを利用して, 元の画像をdecodeする.
12.
11 再構成の結果 ? 最小化するのは再構成した画像と元画像とのピクセル毎の二乗和 ? 結果は以下のようになる –
?:正解ラベル – ?:予測されたラベル – ?:再構成する目標のラベル ? 右の2つは認識に失敗したものを復元した結果. 5と3をどのように 間違えたかがわかる.
13.
12 MNISTでの結果 ? Classificationの結果が以下. ? 表の説明としては, –
Routingが反復ルーティングの回数 – Reconstructionが再構成での正規化Lossも用いたか? ? 結果としてBaseline(Wan et al.[2013])に比べて勝っている.
14.
13 Capsuleベクトルの表現 ? Capsuleベクトルのうち, 適当なある桁の値を範囲[-0.25,0.25]で 0.05の間隔で微調整した結果が以下. ?
16次元で表現されたCapsuleベクトルの中身は, ストロークの長さ, スキュー, 幅などの情報を含むことが分かる.
15.
14 CapsNetの頑強性 ? アフィン変換に対する頑強性をテストするため以下の実験 – MNISTデータでまず訓練 –
affNIST4データでモデルのテスト ? 従来のCNN(MaxPooling+Dropout)とCapsNetでこれを行い比較 – CapsNetの方が精度が良く, 頑強性を持つといえる. dataset CNN CapsNet MNIST 99.22% 99.23% affNIST4 66% 79%
16.
15 MultiMNISTでの結果 ? 異なるクラスのMNISTの数字が重なっているデータセット MultiMNISTを作成し, これで実験を行った.(1K
dataset) – Training:60M, Test:10M ? 同じくCapsNetの精度が高かった. また, decodeを用いて重複する 数字を復元した結果が以下. – スタイルと位置を認識できることが分かる
17.
16 他のdatasetでの結果 ? CIFAR10では10.6%の誤差精度 – 反復ルーティングを24
× 24のパッチで3回+7つのアンサンブル – MNISTと同様の単純な構造 – 従来のネットワークですぐに達成できる精度 – 背景が多彩過ぎて, MNISTに適用したような単純なモデルでは 困難 ? smallNORBでは2.7%の誤差精度(state-of-the-art) ? SVHNでは4.3%の誤差精度
18.
17 参考文献 ? Dynamic Routing
Between Capsules (NIPS2017) https://arxiv. org/pdf/1710.09829.pdf ? What is a CapsNet or Capsule Network? https://hackernoon.c om/what-is-a-capsnet-or-capsule-network-2bfbe48769cc
Download