Activation Atlases:画像分類ニューラルネットワークの深部を探索(1/3)

  • 2019.03.10
  • AI
Activation Atlases:画像分類ニューラルネットワークの深部を探索(1/3)

1.Activation Atlases:画像分類ニューラルネットワークの深部を探索(1/3)まとめ

・隠れ層で起きているニューロンの活性化状態を地図にして視覚化しようという試み
・UMAPで高次元ベクトルを二次元に変換しグリッドにまとめて一目で閲覧可能に
・これによりニューラルネットワークの内部で起きている事が更に理解しやすくなった

2.Activation Atlasesとは?

以下、ai.googleblog.comより「Exploring Neural Networks with Activation Atlases」の意訳です。元記事の投稿は2019年3月6日、Shan Carterさんによる投稿です。Activation Atlases、直訳すれば活性化の世界地図ですが、ニューラルネットワークの隠れ層で起きているニューロンの活性化の状態をアトラス(世界地図)にして視覚化しようという試みです。これにより、ニューラルネットワークがとんでもない誤認識をする理由が少し判明してきました。例えば、クジラの画像に野球のボールを加えるとそれがサメの画像として認識される理由などです。

ニューラルネットワークは、画像アルバム内の写真への自動タグ付けから自動運転システムまで、さまざまな場面で現在使われているコンピューターシステムにおける画像関連作業の事実上の標準となっています。これらの機械学習システムは、人間が機械学習を使わずに作成したシステムよりも正確に機能するため、広く普及しています。

しかし、これらのシステムの動作原理は学習プロセス中に自動で学習されるので、ニューラルネットワークがその特定の作業をどのように認識して行っているのかに関する理解は、時折、少し謎のまま残されてしまう事があります。

本日、OpenAIの同僚と共同で、論文「Exploring Neural Networks with Activation Atlases」を発行しました。この論文では、「画像分類ニューラルネットワークがどのように画像を理解して画像を分類しているのか?」という質問に答えるのを助けることを目的とした新しいテクニックを説明しています。

Activation Atlasesは、畳み込み型ビジョンネットワークの内部を深く観察するための新しい方法を提供し、ネットワークの隠れ層内の概念を、グローバルで階層的で人間が解釈可能な概要として示します。

私達はActivation Atlasesは、画像を扱う機械学習が使っているアルファベットを明らかにすると考えています。アルファベット、つまり、より複雑なビジュアルアイディアを形成するために組み合わされて再結合される一連の単純で原子的な概念です。

私達はまた、あなたがあなた自身でActivation Atlasesを触って理解する事を助けるためにいくつかのJupyter note bookをリリースしています。(訳注:ページ下部の関連リンクにまとめました。)

InceptionV1画像分類ネットワークの隠れ層の1つをActivation Atlasesで詳細化した図。さまざまな種類の果物のようなテクスチャ、ハチの巣状のパターン、布のようなテクスチャなど、ニューラルネットワークが画像分類に使用する視覚検出器の多くが明らかにされています。

以下に示すActivation Atlasesは、ImageNetデータセットで訓練された畳み込み画像分類ネットワーク、Inceptionv1を用いて構築されています。

一般に、画像分類ネットワークは画像を入力され、その画像が「カルボナーラ」、「シュノーケル」、「フライパン」などあらかじめ定められた1,000程度の分類の中からどれに該当するか選んでラベルを付けるように求められます。

これを行う私達のニューラルネットワークは、約10程度のレイヤー(層)で構成され、各層が入力画像を段階的に評価していきます。各層は、それぞれ数百程度のニューロンから構築され、それぞれのニューロンは入力された画像の特定の特徴(質感、輪郭、形状、線、円、範囲、など)に反応して活性化します。ある層のニューロンは犬の耳に積極的に反応するかもしれません。それより前の層の別のニューロンは明暗の差が激しい垂直方向の線に反応するかもしれません。

以下のActivation Atlasesは、100万枚の画像をニューラルネットワークに分類させ、各層の内部活性化状態を集める事によって構築されました。活性化状態は、数学的には複雑な一連の高次元ベクトルですが、UMAPを介して有用な二次元レイアウトに投影する事ができます。UMAPとは高次元空間の局所構造の一部を二次元に保存する次元縮小手法です。

UMAPにより、活性化しているベクトルを整理することができますが、それらをより管理しやすい数に減らす必要もあります。活性化ベクトルを一目で理解できるようにまとめるにはそのままでは数が多すぎるのです。

そのため、作成した二次元レイアウト上にグリッド(格子)を描画します。グリッド内の各セルについて、そのセルの境界内にあるすべての活性化を平均化し、特徴を視覚化してアイコン表現を作成します。


左:ランダムに選ばれた100万枚の画像がニューラルネットワークを介して与えられ、画像ごとに1つのランダムな活性化状態が収集されます。真ん中:活性化状態はUMAPを介して2次元に縮小されます。その後、それらはプロット(作図)され、似ている活性化は互いに近くに配置されます。右:それから枠線を描き、個々の枠内に含まれる活性化を平均し、平均化した活性化に対して特徴反転を実行します。

 

3.Activation Atlases:画像分類ニューラルネットワークの深部を探索(1/3)関連リンク

1)ai.googleblog.com
Exploring Neural Networks with Activation Atlases

2)distill.pub
Exploring Neural Networks with Activation Atlases

3)github.com
lmcinnes/umap
Activation Atlas Notebooks