📄

"An Overview of Early Vision in InceptionV1"を読んだメモ

2020/12/30に公開

An Overview of Early Vision in InceptionV1
の記事を読んだメモ。

Intro

Circle projectの初頭の数記事では、InceptionV1の初期の視覚に焦点を当てる。
前段の層ではピクセルデータから洗礼された境界検出や形の検出、目の検出や未完成ではあるが小さな頭部の検出器を見ることができる。その過程で、Complex Gaborや白黒・カラー検出、小円検出器などの中間機能が見られる。

初期の視覚を研究することは2つ利点がある。1つ目は解析が簡単であることで、入力に近くCircuitの深さはわずか数層であるため、そこまでのニューロンのバリエーションは多くないため機能は単純に見える。2つ目は初期の視覚はUniversalである可能性が高く、異なるアーキテクチャやタスク間で同じ機能と回路を形成することである。

この記事ではInceptionV1の初期の視覚に限定することで、1056個のニューロンのみに焦点を当てる。

ドミトリ・メンデレーエフは、カードに各要素の詳細を書き、それらを分類および整理するさまざまな方法を検討することで、周期表を発見したと言われている。

我々の経験では、Vision Modelは親しい特徴の系統に分類できると考えている。
例えば、複数の入論が異なる方向や色で同じ特徴を検出するというのは珍しいことではない。

この記事ではいくつかの系統にニューロンを分類するが、分類はアドホックで人的に定義されたものである。いくつかの系統は確信度が高く、また定かではないカテゴリーも存在する。これらは研究者自身が今後方向づけしていくことに役立てることを目的としている。

この分類は特徴の視覚化、データセットサンプルの確認及び前段の層での特徴の組み合わせに注目することで定義づけされている。
ただし、すべてのニューロンに対して注意深く調査と定義付けを行っているわけではない。

我々のユニットの分類はNetDissectに似ており、ニューロンを事前定義された機能群との相関をとり、色・テクスチャ・オブジェクトなどのカテゴリにグループ化している。
これは主観を取り除き、スケーラブルであるという利点がある反面、相関関係によるミスリーディングや事前定義された分類法では見逃してしまう機能もあるという欠点がある。
解決策は各機能を手動で調査するという苦行である。
将来的には普遍性の仮説が立つ場合は既知の特徴量群と人的探索のハイブリットアプローチが想定できる。

注意書き

  • この記事は大まかな概要であり、多くのUnitについての理解の確信度は高くない
  • 多くのニューロン群は、主要な構造を反映しているとは思えない、包括的なカテゴリーに分類されている。
  • 主要な構造を反映していると思われるニューロン群でも、これらのグループ間の判断境界は曖昧である。

Presentation of Neurons

この記事では、特定のニューロンに強く反応する最適化された画像により機能の可視化を行う。
ただし、特徴の可視化がニューロンの動作全体を捉えられていると主張するわけではなく、機能の可視化の役割はプログラム上での変数名のようなものであり、任意の数値を意味のある記号を与えているようなものである。

Presentation of Circuits

前段の層の組み合わせ(回路)を可視化するために、前段の層で最も強い重み(L2norm)を持つユニットをピックアップして可視化している(図)。

ここから各層の解析

conv2d0

conv2d0は主にcolor-contrast検出とGabor filterの2つの要素で構成されている。
InceptionV1は他のモデルと比べて綺麗なフィルターにはなっておらず、少し煩雑である。
理由としてはInceptionV1が出た頃はBatch NormalizationやAdamのようなモダンな手法が利用されておらず、勾配が初期のlayerまで行き届いていないのではないかと推測される。


可視化されたフィルター

TF-Slimの最近のInceptionV1のrewriteだとBNを使ってたりするので結構ファインな感じになっている(下図)


The filters from TF-Slim

conv2d1

conv2d0とは似たパターンではあるが、場所や方角に対して不変なフィルターを構成している(Complex Gabors)。

Complex Gaborsはエッジ検出の役割を果たすが、SimbleなGabor Filtersを組み合わせることで、正確なエッジの場所や明暗の場所に対して比較的不変となっている。
同じ方向に反応する複数のGabor Filterを組み合わせることで獲得されており、同パターンで明暗を反転させたようなパターンを検出できる。
これは"union over cases"の初期の例として見ることができる。

また、 conv2dは1x1の畳み込みを行っているので、前層の各チャンネルの組み合わせで構成されている。

Complex Gaborsに加えてカラーコントラスト検出や、単一方向だけではないGabor、低周波数成分を捉えるような特徴が見られる。


conv2d1のフィルター応答の可視化例

conv2d2

このlayerの約25%はline detectorとして記述される。
また、小さな曲線、コーナー、発散(divergence)、単一の非常に小さな円検出を行う機能も見て取れる。
conv2d2は3x3の畳み込みなので、Gaborとlow-frequencyなエッジを組み合わせることで空間的に新しい特徴を作り出していると考えられる。

また、コントラスト、Gabor、ハッチ、低周波、高周波のテクスチャなど、さまざまな種類のテクスチャやカラー検出器がlayerの主要な構成要素になり始めている。


conv2d2のフィルター応答の可視化例

mixed3a

前述のレイヤーの例で見られたことに加えて、興味深い例をピックアップして説明。

Black & White Detectors

mixed3aの前のレイヤーではカラーコントラスト検出(bule vs yellow)のようなものが見られたが、ここでは白黒の検出器が見られるようになった。白黒の検出器はグレースケールのイメージにも適用できるようになっており、これはImageNetのカテゴリーと相関している。

白黒検出器の構成はシンプルで、大部分の大きな重みをnegativeにすることで色の欠如を検出する。


白黒検出器の構成例

Small Circle Detector

conv2d2の曲線と円の検出器を組み合わせることで様々な小さな円や目のような検出器が形成される。

Triangle Detectors

一般的な形に加えて、conv2d2のlineshifted lineの組み合わせにより、三角形の検出器も見られた。

ただし、実際にはこれらの三角形検出器はmult-edge detectorの下流工程もしくは凸状の境界を検出するために、他の多くのユニットと組み合わせて使用されることがよくあります。

Obverview of mixed3a

こんな感じ
詳しくはこちら

mixed3b

mixed3bは、high-levelの特徴(境界検出・初期の頭部検出・より洗礼されたパーツや形の検出器等の)とlow-levelの特徴(color center-surround unitなど)の2パターンが含まれる。

Boundary detectors

mixed3bで最も顕著な変化の1つは、境界検出器の形成である。
特徴の視覚化とデータセットの例を最初に見ると、これらはエッジまたはカーブ検出器の単なる繰り返しで構成されると思うかもしれないが、実際には、さまざまな手がかりを組み合わせて物体間の境界や遷移を検出している。
おそらく最も重要なのは、前の層で開発された高低周波数検出器である。
色や周波数の変化がどちらの方向であるかはほとんど気にせず、"変化がある"ということだけに注目している。

最急降下法は、後段のlayerに役立つ場合にのみ特徴を作成するが、前段のlayerで見られる機能は高低周波数検出器(mixed3a)を構成するために必要な要素であったと考えられる。

Curve-based Features

Curve Circuitsに関しては今後の記事で述べるが、コンセプト的には下記の図に示すとおりCurve Detectorの重みをつなぎ合わせるもとの考えることができる。

Fur detectors

もう1つの興味深い(おそらくImageNetの犬に特化している)回路は、頭の毛のような毛皮の分離を検出する「方向付けられた毛皮検出器」である。これらは、特定の方法で収束するように、ファーの前駆体(mixed3a)をつなぎ合わせることで実現している。
様々な角度で毛皮を検出して1点でカバーする初期の毛皮検出器を組み立てることにより、髪の毛のような毛皮の分離を検出している。

これらの一例はmixed3bに見られたほんの一例であり、他にも様々な系統群が見受けられる。

see more detail
https://distill.pub/2020/circuits/early-vision/#group_mixed3b_boundary

Others

上記の機能に加えて、きちんと分類できない機能も多い。
シンプルなlow-levelの表現にはなっていないが、特定のhigh-levelな表現とまでは行けないものもある。例えば、特定の動物の部位を検出するように見えるが、他の多くの物体にも反応するような、説明するのが難しいものもある。

https://distill.pub/2020/circuits/early-vision/#group_mixed3b_color_center_surround

Conclusion

この記事の目的は、InceptionV1の初期の視覚から高次元の概要を得ることであった。
例えば、Curve detectorは本当に曲線を検出しているのか、どのような曲線が発火しているのか、エッジにはどう反応しているのか、どのようにしてそれらは構成されているのか。今後の記事では、curveのケースを足掛りに、このような疑問を厳密に調査していく。
初期の視覚に関する調査はまだまだ未解決の問題を残している。
クラスタリングしたほうがいいのか、恣意的な分類が良いのか、他に良い分類方法はないのか?他のモデル間でどの程度こういった分類の類似性が見受けられるのか。
ある意味での「低レベルの視覚的特徴の周期表」というものは存在するのか?
これらは今後の研究のための興味深い問題であると考えている。

Discussion