見出し画像

論文輪読トレーニング!2日目「Dynamic Routing Between Capsules」②(アブストラクト)

こんにちは、aki@Osakaです。フリーランスプログラマーをやっています。😄

本日の論文輪読トレーニングはアブストラクトです!

⭐️アブストラクトとは

全ての論文には冒頭にアブストラクト (Abstract) という項目があります。日本語直訳では「抽象」という意味ですね。この論文で言いたいことを簡潔にまとめた部分のことです。(抽象的にまとめた部分みたいな感じで思っていただけたら言葉の意味とあうかなぁと思います)

日本人の若者の間では略して「アブスト」とも呼ばれたりします。

🔰本記事が初めての方は

初めての方はまずはこちらの記事をご一読ください。(^-^)

論文輪読トレーニング! Dynamic Routing Between Capsules (CapsNet)|aki@Osaka|note(ノート)

⭐️現在取り上げている論文

現在、取り上げている論文はトロント大学教授ジェフリーヒントン先生が2017年11月7日にarXiv.orgに投稿されたDynamic Routing Between Capsulesです。

それでは見ていきましょう!🙂

⭐️目次

・アブストをざっと眺める
・オブジェクト(object)とは
・インスタンス化パラメータ (instantiation parameters) とは
・活性化ベクトル (activation vector) とは
・カプセル (capsules) とは
・まとめると
・アブストラクトまとめ

⭐️アブストをざっと眺める

具体的な勉強方法はお任せですが、1パラグラフずつ分けて記載してありますので、まず論文の英語を1パラグラフ読んで、どんな内容か考えてみてください。そして、答え合わせの気分で下の日本語訳と解説を読んでいただければよいかと思います。難しい英単語はパラグラフの下にまとめておきます。それを参考にしてみてください。こういったトレーニングを積み重ねることで、徐々に論文が読めるようになると思います。

(オススメ)スマートフォンで見ていらっしゃる方は、画面を横にしてご覧になると下の画像が画面に大きく表示されます。

capsule = カプセル(ヒントン先生が提唱する新概念)
activity vector = 活性化ベクトル
instantiation parameters = インスタンス化パラメータ
entity = 存在
transformation matrices = 変換行列
discriminatively = 判別可能に、識別可能に
considerably = かなり
digit = 数字
routing-by-agree mechanism = ルーティングバイアグリーメントメカニズム(これもヒントン先生が提唱する新アルゴリズム)
scalar product = スカラー積(内積のことです)

はい、どうでしたでしょうか。初めは何が何だかという感じだと思います。
というより、カプセルやルーティングバイアグリーメントメカニズムなど新しい概念が入ってきているので、初心者だけではなく、誰でも「んー、よくわからん」ってなると思います。😌それが普通ですので、気を落とさないでください。

それでは、さっそく論文概要(アブストラクト)をじっくり見ていこうと思います。上記のアブストラクトを直接日本語訳すると以下のようになります。長いので5個に分割します。

(1) A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part. 

カプセルとは、活性化ベクトル(activation vector)を持つニューロンのグループです
。そして、活性化ベクトルとは、オブジェクトまたはオブジェクトの一部等の特定のタイプの実体のインスタンス化パラメータ(instantiation parameter)を表したものです。
(2) We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters. 

実体(Entity)が存在する確率を活性化ベクトルの長さで表し、インスタンス化パラメータを活性化ベクトルの向きで表します。
(3) Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active.

あるレベルのアクティブなカプセルは、より高いレベルのカプセルのインスタンス化パラメータに対して、変換行列 (transformation matrices) を介して予測を行います。複数の予測が一致すると、より高いレベルのカプセルがアクティブになります。
(4) We show that a discriminatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits.

我々は、識別可能に訓練済みの多層カプセルシステムが、MNISTにおいて最先端の性能を達成し、非常に重複する数字を認識する際に畳み込みニューラルネットワーク(CNN)よりもかなり優れていることを示しました
(5) To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.

これらの結果を達成するために、我々は反復的なルーティング・バイ・アグリーメント・メカニズムを使用しました。ルーティング・バイ・アグリーメント・メカニズムとは、低レベルのカプセルが、低レベルのカプセルから来る予測を伴う大きな内積を持つ高レベルのカプセルにその出力を送るようなメカニズムです。

おお、やっぱりなかなか意味が分からないですね。(笑)
以下、かみ砕いていきます。

まず単語の確認といきましょう!

⭐️オブジェクト(object)とは

オブジェクト(object)というのは写真の中に写っているもの(普通の意味でのオブジェクト)ということのようです。人間の顔の写真を入力にする場合は、オブジェクトとは目や鼻、口になると思われます。オブジェクト(object) と実体(エンティティ, entity)とは、ほぼ同じ意味ととらえてもらって構わないと思っています。

オブジェクトのイメージ

画像の中に人の顔が映っていれば、その中に写っている目や鼻、耳、口などがオブジェクトです。

◆ [Column] オブジェクトとオブジェクトパーツ

オブジェクト (object) とオブジェクトパーツ(object part)は、どういう視点で見るかによって、どれがオブジェクトで、どれがオブジェクトパーツかどうかは変わってきます。例えば、人間の顔が映っていて、それをオブジェクトとするならば、目や鼻はオブジェクトパーツですし、人間の体全体も映り込んでいれば、人間の顔はオブジェクトパーツでもあるのです。

⭐️活性化ベクトル (activation vector) とは

次に活性化ベクトル (activation vector) ですが、これはカプセルの中を伝播するもので、デフォルトでは16次元で表現されます。
それゆえ3次元空間上には表現できません。

また、活性化ベクトルの長さは、写真の中に眼や鼻などの実体 (Entity) が存在する確率を表し活性化ベクトルの向きインスタンス化パラメータ(実体の姿勢や歪みなど)(後述)を表すようになっています。

◆ [Column] ベクトルの復習

ベクトルには向き大きさ(長さ)と言う二つの概念から構成されるものです。下の図は1次元のベクトルを例示しています。なので、○○ベクトルと出てきて、それの向きが云々、大きさ(長さ)が云々と出てくるのはとても自然なことです。

⭐️インスタンス化パラメータ (instantiation parameters) とは

次にインスタンス化パラメータ (instantiation parameters) です。

インスタンス化パラメータは、活性化ベクトルの向きによって表現されるもので、画像内に写っている物体(オブジェクト)がどんな方向を向いているか、ゆがんでいるかなどの情報を表すもののようです。

インスタンス化パラメータの例

⭐️カプセル (capsules) とは

そして、カプセル (Capsules) というのは、活性化ベクトルが流れるニューロンが複数集まったものです。

また、カプセルにはレベル(階層)という概念があるようで、高いレベルのカプセル、低いレベルのカプセルがあるそう。そして、低レベル側のカプセルが、予測なるものを行い、低レベルのカプセル達の予測が一致すればするほど、高レベルのカプセルの活性が上がる(become active)というのです。

⭐️まとめると

要は、カプセルはニューロンの集合で、そのニューロンの中ではベクトルが伝播して(流れて)いて(普通のニューラルネットワークはスカラーが伝播しています)、そのベクトルを活性化ベクトルと言い、その次元は(デフォルトでは)16次元ある。その次元一つ一つの向きインスタンス化パラメータと言い、写真の中に写っている物体(オブジェクト)の姿勢や歪み量などを表します。また、活性化ベクトルの大きさその物体が画像内のその部分に存在する確率を表します。

ここまで単語の確認をしてきました。
それでは1行目からもう一度見てみましょう。

(1) A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or an object part. 

カプセルとは、活性化ベクトル(activation vector)を持つニューロンのグループです。そして、活性化ベクトルとは、オブジェクトまたはオブジェクトの一部等の特定のタイプの実体のインスタンス化パラメータ(instantiation parameter)を表したものです。

なんとなくイメージが掴めたでしょうか。😋
次に二行目以降もみていこうと思います。

(2) We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation parameters. 

実体(Entity)が存在する確率をベクトルの長さで表し、インスタンス化パラメータを方向で表します。

先ほどから言っている通りで、活性化ベクトルの長さで、写真の中に眼や鼻などの実体 (Entity) が存在する確率を表し、活性化ベクトルの向きでオブジェクトの姿勢や歪みなどのインスタンス化パラメータを表すということのようです。

(3) Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active.

あるレベルのアクティブなカプセルは、より高いレベルのカプセルのインスタンス化パラメータに対して、変換行列 (transformation matrices) を介して予測を行います。複数の予測が一致すると、より高いレベルのカプセルがアクティブになります。

まず、カプセルにはレベル(階層)という概念がありましたね。高いレベルのカプセル、低いレベルのカプセルがあるということです。そして、低レベル側のカプセルが、予測なるものを行い、低レベルのカプセル達の予測が一致すればするほど、高レベルのカプセルの活性が上がる(become active)というのです。

また、変換行列とは英語で、transformation matricesと言うようで、matricesは、matrix (行列)の複数形です。transformation=平行移動ですし、平行移動を含む、立体図形(オブジェクト)の拡大・縮小・回転・変形・移動などの変換を行う演算(行列)のことを指すと考えられます。

◆ [Column]なんで行列みたいな話が出てくるのか?

ディープラーニングの論文でどうして行列とかが出てくるのか?って疑問に思うかたはいらっしゃるでしょうか。一応なんでなのかを個人的に思うことを書いておきます。

そもそもディープラーニングの基本のネットワークは、ニューラルネットワークでしたね。そのニューラルネット自体が数式で表現されるものなのです。そして、その数式の中で使われている演算の殆どが行列演算だからということになります。

なので、ディープラーニング関連の論文で行列に関する記述があるのはとても自然なことなのです。

次に四行を見ていきましょう!

(4) We show that a discriminatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits. 

我々は、識別可能に訓練された多層カプセルシステムが、MNISTにおいて最先端の性能を達成し、非常に重複する数字を認識する際に畳み込みネット(CNN)よりもかなり優れていることを示しました。

これは説明の必要はないかと思いますが、MNISTとは、手書き文字画像を認識用のデータセットのことです。

また、「重複する数字」というのは、MNISTの画像(例えば、1と8など)を重ねて一枚の画像にした画像(後述されます)のようで、それを識別する問題(タスク)(つまりこの画像には1と8が書かれている!と言い当てる問題ということです)については、CNNよりも良い成績を残しているというのです。
なかなか期待できますね。

MNISTデータセット(手書き文字画像)の例

(5) To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.

これらの結果を達成するために、我々は反復的なルーティング・バイ・アグリーメント・メカニズム (iterative routing-by-agreement mechanism) を使用しました。ルーティング・バイ・アグリーメント・メカニズムとは、低レベルのカプセルが、低レベルのカプセルから来る予測を伴う大きな内積を持つ高レベルのカプセルにその出力を送ることを好むようなメカニズムです。

iterative routing-by-agreement mechanismを日本語に直すと、反復的な合意による経路制御メカニズムのようになると思います。

「反復的」とは、「なんども繰り返す」ということ。「経路制御」とは、それぞれのカプセルが何者かによって動的(流動的)に接続の制御をされているということでしたね。(詳しくはトレーニング1日目参照)

それが「合意(Agreement)」ということですから、複数の何者かがそれぞれ意見を言いあって、合意(Agreement)したら、カプセルどうしの接続が動的に(Dynamicに)決定される(routing)。そしてそれが複数回(iterative)行われるというような意味に捉えられますね!

ここは、フーン、そういう名前のメカニズムを使っているんだなあくらいでよいかと思います。具体的には後述されますので!

さて、アブストラクトは以上となります。
お疲れさまでした😌
まとめると、以下のようなことを言っていました。

⭐️アブストラクトまとめ

1. カプセルはニューロンの集合で、その中を流れるベクトルを活性化ベクトルと呼ぶ。
2. 活性化ベクトルの長さは、オブジェクトの存在確率を表す。
3. 活性化ベクトルの向きは、インスタンス化パラメータの向きを表す。
4. カプセルには階層があり、低レベルのカプセルが出した予測が一致すると高レベルのカプセルの活性が上がる。
5. MNISTではCNNレベルの性能を発揮し、MNISTを重ねて作った「重ね手書き文字認識」タスクでは、CNNの性能を上回った

今日はアブストラクトを解説しました!
このあたりとしようと思います!
また数日後にお会いしましょう('◇')ゞ

🌃終わりに

こちらの記事は、初心者でも論文を読めるようになるべくわかりやすく解説していくことを目標とするマガジンです。その点、正確性に関しては少し目をつぶっていただけると幸いです。

もしこの記事に興味があれば、ぜひスキボタンやフォローしていただけると助かります。励みになりますし、どのくらい読みたい人がいらっしゃるのかによって、更新頻度を変える予定です。🙂

また希望やご意見などございましたら、お気軽にコメントいただければと思います。皆様のご意見とともにこのマガジンがより良いものとなって行けば嬉しい限りです。

Twitter もやっておりますので、良ければフォローお願いいたします(^-^)

aki@Final Cut 練習中 (@n_aki_039827)さんをチェックしよう https://twitter.com/n_aki_039827?s=09

この記事が気に入ったらサポートをしてみませんか?