💨

"Curve Detectors"を読んだメモ

2021/01/06に公開

Curve Detectorを読んだメモ

Intro

調査したすべてのVision Modelには曲線検出のニューロンが含まれている。
この記事は、曲線検出器について深く掘り下げた3つの記事の最初の部分であり、検出器の動作、ニューロンの構築過程、各モデルでの発生率について解説する。

interpretability communityがいくつかの重要な課題に対して否定的な意見を持つ可能性があるためこういった取り組みを行っている。
NNの表現が目・頭部・車の検出器など一見意味のある機能について報告している論文があると同時に、部分的な部分しか反映されていないという懐疑的な部分もある。NNが前述のような意味のある特徴を捉えているわけではなく、テクスチャや近くできないパターンを検出していることを示唆している論文もいくつかある。
例えば、犬の頭部検出器に見えるようなものがあったとしても、それは犬の頭部に関連するテクスチャを検出していると結論づけることもできるため、意味のある機能が存在する場合であってもNN内で重要な役割を果たしていない可能性もある。

Curve Detectorはこの意見の相違を進展させるための優れた手段だと考えている。人工的な曲線は簡単に生成でき、それらが2-3層深さの畳み込み層でしか反応していないという事実は、すべてのニューロン群を追跡して入力に戻すことができるということである。

A Simplified Story of Curve Neurons

実験の詳細に触れる前に、3bの10個のCurveニューロンについて見てみる。

これらのCurve Detectorは多様な曲線に反応する多様だが同様のアルゴリズムで実装されており、明暗・テクスチャ・色等の表面的な特徴に対して頑健である。

こんなかんじで

10個のActivationを重ねるとこんなかんじ

Curve Detectorの発火は非常にスパースであり、ImageNet全体の空間的な位置に対してわずか10%しか発火せず、発火した際のレスポンスは非常に微弱である。

多種多様な自然画像全体の曲線を検出することは、古典的なコンピュータビジョンでは困難であり、ほぼ間違いなく未解決の問題である。InceptionV1は、この問題に対して柔軟で一般的なソリューションを学習しているように見える。

何を主張すればニューロンが曲線を検出しているというかは様々な意見がある。
経験的に曲線に対して発火していると示すのは簡単であるが、次のような論争になる可能性のある主張がある。

  • Causality(因果関係)
    • 曲線と相関する刺激ではなく、曲線を真に検出する。「逆に実行すると」曲線が生成されるため、機能の視覚化と帰属の視覚化の実験によって因果関係が確立されると考えている。
  • Generality(一般性)
    • 広範囲の半径に対してカバーしており、色・明暗・テクスチャなどの外見属性に対して不変である。Syntheticな刺激に対してこれらの普遍性を示すことは説得力のある根拠であると考える。
  • Purity(純度)
    • Curve Detectorは複数の意味を持ち合わせず二次的な機能がない。様々なActivationの大きさによるデータセットの例を分類し、可視化することで二次的な機能が稀であることを示す。(次回の記事で深堀り)
  • Family
    • 曲線ニューロンは、曲線のすべての方向に集合的に広がる

Feature Visualization

Feature Visualizationでは最適化を利用して、objectiveを最大化する入力を見つける。
この記事では特徴の可視化によって因果関係を見つけることに利用する。

Feature Visualizationを読み取るにはスキルが必要であり、これまで読み解いたことがない場合は混乱する可能性がある。注意深くみると小さな垂線に気づくと思うが、この線をcombingと呼ぶ(後に説明)。

Diversity Termを利用した明示的な画像を与えたとしても、ニューロンをできるだけ強く発火させるためにFeature Viualizationを利用することで曲線のイメージを得ることができる。これは曲線検出器が多様な機能を持ち合わせていないということをの強い根拠になる。

ニューロンは類似した刺激に対して強く発火し、刺激がそれらの視覚的特徴を示さなくなるにつれて徐々に弱くなると想像することがあるが、極端でないActivationのニューロンの動作が全く異なる場合や、二次的な刺激に対して弱く反応も考えられる。

実際にニューロンがどのように振る舞うのかを理解したいのであれば、データセットの画像に対して実際にどのように反応するのかを観察することになる。

Dataset Analysis

データセットに対する応答を見るために、3b:379にフォーカスする(人力作業になるので)

データセット内でのActivationの分布を可視化することでActivationの発火の強さや頻度を研究する。

3b:379のPre-activationの平均値は-200で、ReLUのActivation後、約11%のデータセットに対して発火している。

確率のlog plotを見てみると、プロットの直線に対応する指数分布に従っていることがわかる。これは確率密度関数が{-x^2}ではなくe^{-x}$のガウス分布に従っていることを表しており、分布はlong tailであると予想する必要がある。
(ニューラルネットワークの活性化が一般に指数分布に従うという観察は、ネットワークの最初の層を除くすべての層に当てはまると観察したBriceMénardによって行わている。これは、指数分布に完全に従うように見えることと、確率変数の線形結合がガウス分布を形成することを期待することが多いため、少し驚くべきことである。)

この分布のさまざまな部分を定性的に理解するために、3b:379の値ごとに画像をランダムにサンプリングしてキルト化(タイリング)してみる。
最も強い活性化を引き起こす画像は、ニューロンの特徴の視覚化に似た曲線を持っており、弱く正の活性化を引き起こす画像は、平坦すぎる、方向がずれている、またはその他の欠陥がある不完全な曲線となっている。0に近いPre-ReLU Activationを引き起こす画像は、直線または円弧のない画像になる傾向があり、一部の画像は方向から約45度ずれた曲線である。最も強い負の活性化を引き起こす画像には、ニューロンの理想的な曲線から45度以上離れた方向の曲線になっている。

画像のキルトは様々なパターンを明らかにするが誤解を招く可能性もある。画像のReceptive-fieldのトリミングに対するニューロンの活性化は単一の数値であるため、画像のどの部分がそれを引き起こしたのかを確認することはできず、その結果疑似相関に騙される可能性もある。
例えば、3b:379を最も強く発火させる画像の多くは時計であるため、ニューロンは曲線でなく時計を検出するものと考えることもいえる。

画像がニューロンを興奮する理由を確認するために、特徴の可視化を利用して画像のニューロンへの帰属を可視化できる。

Visualizing Attribution

NNの帰属を明らかにする既存研究はたくさんあり、これらの方法はどのpixelもしくは以前のニューロンが発汗原因であるかを説明しようとする。線形の場合、一般的に帰属は同意されている。

ニューロンのPre-activationとbias値はその前のニューロンの線形関数であるため、一般的に合意された帰属方法を使用可能である。特に3bの活性化前の値の曲線検出器は3aの線形関数であり、影響度合いの帰属テンソルはActivationに重みをかけたものになる。

可視化の際はFeatureVsiualization(abs(W \odot h_{prev}))を利用する(ポジティブネガティブ両方可視化)。実際にはAttributionの可視化をグレースケールでパラメーター化しより読みやすくしている。

上記の実験は3aのすべてのニューロンを可視化するが、帰属は様々な方法でCircuitsの研究に適用できる強力なツールである。
各Activation Vectorはfamiliyが画像で見たものも示し、それが3b:379にどれだけコントリビューションしたかを示している。

次のセクションでは、データセット画像から情報を抽出するために、ニューロンの活性化自体を見ずに画像を手作業で分類する。

Human Comparison

著者の一人であるNickは手動で800枚以上の画像を4つのグループ(curve, imperfect curve, unrelated image, or opposing curve)に分割し、ラベリングした。
3b:379から一定数の画像を100binごとにランダムにサンプリングした。Nickは画像のピクセルのみをみて下記のルーブリックによりアノテーションを行った(ニューロンのActivationやVisualizationは見ない)

  • Curves: ニューロンの特徴の可視化と同等の方向の曲線の含まれる画像で、曲線は画像の大部分を横切っている。
  • Imperfect Curve: 上記に似ているが、少なくとも1つ欠陥がある。例えば、平坦すぎたり、円弧を遮る角度があったり、方向がずれていたり。
  • Unrelated: 画像に曲線が含まれていない。
  • Opposing Curve: 画像には、ニューロンの特徴の視覚化と45度以上異なる曲線が含まれている。

アノテーションをしたあと、3b:379のactivationの比較を行った。
Stackplotを用いることで、各ラベルが異なるActivationに分類されることがわかった。

しかしながら、下記の例のようなactivateされるがcurveに分類されないようなイメージも多くあった。

Attributionを可視化することでラベル付けのプロセスで見逃した曲線を発見することができ、こういったケースにおいては人間以上の性能を3b:379は持っているように感じ取れる。

How important are different points on the activation spectrum?

これらのチャートは手作業でラベリングされたものを比較することには役立だつが、全体像としては不完全である。3b:379は曲線に対してとても選択的であるように見えるが、ニューロンが発火するケースは極稀である。殆どの場合発火せず、発火したとしても反応は非常に微弱である。

これを確認するために、すべてのImageNetのexampleに対してActivation Magunitudeに対する確率密度をみて、ラベルを付けたデータセットと同じクラスの活性化マグニチュード当たり(x軸)の比率に分割する。


ラベルを付けたデータセットはActivationから一様にサンプリングしているが、曲線の画像はデータセット内ではまれであり、3b:379の活性化は指数関数的な分布をたどっている。このプロットでは、3b:379の活性化が、ラベル付きデータセット内で、与えられたActivationレベルにおける異なるグループの条件付き確率に分割されていることを示している

この観点から見ると、ニューロンが強く発火するケースは稀である。確率密度は右に進むにつれて指数関数的に減少するので、このような活性化はまれである。(画像の中で明確な曲線はめったに起こらないので、このようなこと起きるのは多少許容できるが。)

ラベル付のエラーと曲線の希少性が原因というということは多少考えられる。

ケースの大部分はニューロンが発火しなかったけーづであるため、確率密度がニューロンの振る舞いについて考える正しい方かどうかというのは明らかではない。

活性化スペクトルの重要性について考えるための大胆手段として、期待値への寄与 x * p(x) を考える。この測定値は、その活性化値がニューロンの出力にどの程度影響するか、および拡張ネットワークの動作によって概算を与えると考えることができる。

期待値の寄与は、曲線と不完全な曲線が55%を形成することを示している。
これは、3b:379が曲線検出器であるという仮説と一致しているようであり、発火させる他の刺激はラベル付エラー及びノイズの多い画像がニューロンのmisfireさせることである。

この実験結果から、3b:379は人間によるラベル付けの判断にほぼ対応しているように見えることを示している。
さらに画像の帰属ベクトルを可視化することで発火する理由は画像の曲線によるものであり、擬似相関ではないことが分かる。
しかし、これらの実験は曲線ニューロンが曲線画像を検出という主張には不十分である。
曲線画像がデータセットに含まれることはめったに無いため、曲線画像を体系的に調査するためである。
次の実験ではこの問題に直接焦点を当て、曲線ニューロンが妥当な曲線画像空間にどう反応するかを研究する。

Joint Tuning Curves

最初の2つの実験は、各曲線検出器が異なる方向の曲線に応答することを示唆している。
次の実験は、同じ機能の回転バージョンを実際に検出することを確認し、各ユニットが向きの変化にどの程度敏感であるかを特徴づけるのに役立つ。

この実験のために、Joint Tuning Curvesを作成する。

各ニューロンには、その優先方向を囲むガウスのような隆起があり、各ニューロンが発火を停止すると、別のニューロンが発火を開始し、曲線のすべての方向に広がる。


ニューロンを最大限に活性化するデータセットの例を収集。それらを0度から360度まで1度ずつ回転させ、アクティベーションを記録。
各ニューロンが応答するポイントが整列するように、アクティベーションがシフトされ、次に、曲線を平均して、典型的な応答曲線を作成。

Turing Curveは画像の摂動全体に対するニューロンの活性化を測定するのに役立つが、実行可能な摂動の種類によって制限される。
次の実験では人工的な刺激をレンダリングすることでより広範囲な摂動を行う。

Synthetic Curves

Discussion