Inceptionism:ニューラルネットワークの最深部へ

入門/解説

1.Inceptionism:ニューラルネットワークの最深部へまとめ

・人工知能が悪夢のような絵を書いたと話題になったDeep Dreamの元技術
・画像分類の際の各レイヤーの動作原理を解明するテクニック
・原文は人工知能に対する愛が感じられ、新しい芸術の扉も開くポテンシャルがある

2.Inceptionism及びDeepDreamとは?

以下、ai.googleblog.comより、「Inceptionism: Going Deeper into Neural Networks」の意訳です。元ブログの投稿日は2015年6月17日、Alexander MordvintsevさんとChristopher OlahさんとMike Tykaさんによる投稿です。もう3年前も前なのですが、悪夢のような絵を作り出す人工知能!などと話題になったDeepDreamに繋がったお話です。

アーティフィカルニューラルネットワークは、画像分類および音声認識の顕著な進歩に拍車をかけています。しかし、これらはよく知られている数学的方法に基づく非常に有用なツールであるにもかかわらず、実際には特定のモデルがなぜ機能し、他のモデルが何故機能しないのかということが驚くほどよくわかっていません。ですから、これらのネットワークの中を覗くための簡単なテクニックを見てみましょう。

何百万という訓練データを用いて、私たちは望む分類結果を人工知能が出力するようになるまでネットワークのパラメータを徐々に調整します。アーティフィカルネットワークは、典型的には、アーティフィカルニューロンのレイヤー(層)を10から30程度重ねて作成されています。各画像は入力レイヤに入力され、最終的に出力レイヤに達するまで順番に次のレイヤに伝播していきます。ニューラルネットワークの「回答」はこの最終出力レイヤーからもたらされます。

ニューラルネットワークの課題の1つは、各層が具体的に何をやっているのかを理解することです。

訓練を終えた後、最終的な出力層が画像の分類内容を決定するまで、各層は画像の高次元の特徴を徐々に抽出します。

おそらく、第1層は角や曲線部分などのパーツを探しています。中間の層は、基本的な特徴を解釈してドアやリーフのような全体的な形状や部品を探します。後半の層はそれらを完全な解釈に組み立て、これらのニューロンは建物や樹木全体のような非常に複雑なものに反応して活性化しています。

何が起こっているかを視覚化する1つの方法は、ネットワークを上下逆にして、特定の解釈を引き出すように入力イメージに変更を加えていく事です。

例えば、どのような画像が「バナナ」と分類されるのかを知りたいとします。ランダムなノイズでいっぱいな画像から始め、ニューラルネットワークがバナナと考えるものに向かって徐々に画像を微調整していきます。それだけではうまくいきませんが、隣接ピクセルとの相関など自然な画像と類似の特徴を持つように制約を課すとうまくいきます。

ここに一つの驚くべき事例があります。異なる種類の画像を区別するように訓練されたニューラルネットワークは、画像を生成する事ができるのです。下記のいくつかの例を確認してください。

何でこれが大切なのでしょうか?
はい、私たちはネットワークを訓練する際に多くの事例を見せて、人工知能が分類すべき対象の特徴の本質を抽出することを望んでいます。

例えば、フォークには持ち手の部分と2~4の刺す部分が必要です。そして、フォークはどのような形、大きさ、色、向きでも構いません。しかし、ネットワークが適切な機能を正しく学習したことをどのように確認すればよいでしょう?視覚化はフォークをネットワークがどのような特徴で表現したのか知る事に役立ちます。

実際、幾つかのケースで、ニューラルネットが我々がそれと認識する際に注目する特徴とかなり違う特徴を見ている事が明らかになる場合もあります。たとえば、以下は私たちが設計したニューラルネットの1つのダンベルを認識した画像です。

なるほど、確かにそこにはダンベルがありますが、ダンベルは筋肉質なウェイトリフターが傍にいないと完成しないようです。この場合、ネットワークはダンベルのエッセンスを完全に抽出することができていませんでした。たぶんそれは、ダンベルの写真のほとんどにそれを持つ筋肉質な腕が一緒に写っていたからでしょう。視覚化は、こうした種類のトレーニングの事故を修正するのに役立ちます。

どの特徴量を増幅させたいのかをネットワークに厳密に指定する代わりに、ネットワークにその決定を任せることもできます。この場合、単にネットワークに任意の画像や写真を送り、ネットワークに画像を分析させるだけです。次に、レイヤーを選択し、そのレイヤーが検出したものを強化するようにネットワークに依頼します。

ネットワークの各レイヤーはそれぞれ異なった特徴を処理するため、増幅される特徴の複雑さは、どのレイヤーに強化依頼をしたかによって異なります。例えば、下位レイヤー(前半の層)は、エッジ(角)やその向きなどの基本的な特徴に敏感なため、ストロークやシンプルな装飾的なパターンを生成する傾向があります。

左:Zachi Evenorのオリジナル写真。右:GüntherNoack、ソフトウェアエンジニアによって処理された画像

左:Georges Seuratのオリジナル絵画。右:ソフトウェアエンジニアMatthew McNaughtonによる処理済みの画像

上位レイヤー、つまり画像のより洗練された特徴を識別している層を選択すると、複雑な機能やオブジェクト全体が出現する傾向があります。ここでもまた、既存の画像をニューラルネットワークに与え、ニューラルネットに尋ねるのです「あなたが見ているものが何であれ、もっと強調してください!」

これはフィードバックループを作成し、もし雲が少しでも鳥のように見えたら、ネットワークはネットワークが鳥と感じた部分を増強し、より鳥のように見える画像を出力します。これにより、ネットワークは次のループで更に鳥をより強く認識するようになり、最終的に詳細な鳥がどこからともなく出現します。


結果は興味深いものです。比較的簡単なニューラルネットワークでも、雲を見たり、ランダムな形を解釈したりして楽しんでいた子供のように、画像を過剰解釈することができます。このネットワークは主に動物の画像で訓練されていたので、自然に動物の形に解釈する傾向があります。しかし、そのように高い抽象度でデータが保存されているため、結果はこれらの学習された特徴がまざりあった興味深いものになります。

もちろん、この手法では雲を見る以上のことができます。どのような種類の画像にも適用できます。入力された画像から人工知能が特徴を抽出し、特定の解釈に向かってバイアスをかけるため、結果はイメージの種類によってもかなり異なります。例えば、水平線はタワーや仏塔に変わる傾向があります。岩や木々は建物に変わります。鳥や昆虫が葉の画像に現れます。

元の画像は、処理された画像内でどのような種類のオブジェクトが形成されるかに影響します。

このテクニックを使うと特定のレイヤーが画像の理解において抽出した抽象的なレベルの特徴量を定性的に確認できます。私たちは、このテクニックを「Inceptionism」と名付けました。

さらに多くの画像とその処理結果、さらにはクールなビデオアニメーションは、Inceptionismギャラリーでご覧になれます。

もっと繰り返してもっと深部に
もし、私達がこのアルゴリズムを、各出力後に一部分をズームしながら何度も出力に適用するとニューラルネットワークが知っている事、その深部を探索しながら、ニューラルネットワークによる新しい表現の無限の奔流を得る事ができます。

このプロセスをランダムなノイズ画像から開始することさえできます。その結果は、次の画像に示すように、ニューラルネットワークが導き出した純粋な表現になります。

ニューラルネットの見ている夢 – MIT Computer ScienceとAI Laboratoryが学習させた人工知能を使用して、完全なランダムノイズ画像から生成されました。上記の画像の高解像度バージョンについては、Inceptionism galleryをご覧ください(「Places205-GoogLeNet」とマークされた画像はこのネットワークを使用して作成されました)。

ここで紹介した手法は、ニューラルネットワークがどのようにして困難な分類タスクを実行し、ネットワークアーキテクチャを改善し、トレーニング中に何を学んだのかを理解し、視覚化するのに役立ちます。

また、私達はニューラルネットワークが、アーティストのためのツール(ビジュアルコンセプトをリミックスするための新しい方法)になるえるか、あるいは人間の脳の創造的プロセスのルーツを解明するために多少なりともヒントになるのではないかと思っています。

3.Inceptionism:ニューラルネットワークの最深部へ感想

Deep Dreamは一般的なニュース媒体では「悪夢を作り出す」などと不気味で非人間的なおどろおどろしい恐ろしい人工知能として報道される事が多かったですが、本来は人工知能の動作原理を可視化するInceptionism というテクニックを発展させて、人工知能に自身が認識している概念を表現させ、クリエイターの手助けや新しい芸術を生み出させようとする試みでした。

Deep Dreamはネガティブな感想が多く、実際、紹介される画像はサイケデリックで人間が想像する概念と似ても似つかないような画像ばかりだったのですが、今回の原文からは我が子が見る夢をそっと見守るような、ニューラルネットワークに対する愛を感じられました。

このころから、ニューラルネットワークの各層が具体的に何を認識しているのかを解き明かすのは課題とされていました。もし、この記事やDistillの可視化ツールの関する記事に書かれているように、初期レイヤーが細かい部分をパーツとして認識し、層が進むにつれて少しずつ画像内のオブジェクトの全体像をつかむように動作しているのであれば、少し前に紹介したデータに細工をした敵対的データを与えると確信を持って間違えだす現象が上手く説明できないのです。

4.Inceptionism:ニューラルネットワークの最深部へ関連リンク

1)ai.googleblog.com
Inceptionism: Going Deeper into Neural Networks

コメント

タイトルとURLをコピーしました