ニューラルネットワークの内部動作の幾何学的直観を理解するにはどうすればよいですか?


8

私は最近ANNの背後にある理論を研究しており、非線形マルチクラス分類の能力の背後にある「魔法」を理解したいと思いました。これにより、この近似がどのようにして達成されるかを幾何学的に説明するこのウェブサイトに私を導きました。

ここに私がそれを(3Dで)理解した方法があります。非表示のレイヤーは、次のような3Dステップ関数(またはタワー関数)を出力すると考えることができます。

タワー機能

著者は、そのような複数のタワーを使用して、任意の関数を近似することができると述べています。次に例を示します。

ここに画像の説明を入力してください

これ理にかなっているようですが、著者の構成は、概念の背後にある直感を提供するようにかなり工夫されています。

しかし、任意のANNが与えられた場合、これをどのように正確に検証できますか?これが私が知りたい/理解したいことです:

  1. 私の知る限り、近似は滑らかな近似ですが、この「直感」は離散近似を提供するようですが、それは正しいですか?
  2. 塔の数は隠れ層の数に基づいているようです-上記の塔は2つの隠れ層の結果として作成されています。これを(3Dの例で)1つの非表示レイヤーだけで確認するにはどうすればよいですか?
  3. タワーは、いくつかの重みがゼロに強制されて作成されますが、これまでに試してみた一部のANNがこれに該当することはありません。それは本当にタワー機能でしょうか?4から辺でほぼ円に近いものは何ですか?(著者はそれが事実であると言いますが、それを自己学習として残します)。

ANNを単一の非表示レイヤーで近似できる任意の3D関数の3Dでのこの近似機能を本当に理解したいと思います。この近似多次元の直感を定式化するためにどのように見えるかを確認したいですか?

これが私が助けることができると私が考えていることです:

  1. ような任意の3D関数を取ります。fバツ1バツ2=バツ12+バツ22+
  2. のトレーニングセットを生成します。たとえば、1000データポイントの多くのポイントが、曲線の上と下のいくつかにあります。曲線上のものは「陽性クラス」としてマークされ(1)、「陰性クラス」としてマークされないもの(0)バツ1バツ2
  3. このデータをANNに送り、1つの隠れ層(約2〜6個のニューロン)で近似を視覚化します。

この構成は正しいですか?これはうまくいくでしょうか?これを行うにはどうすればよいですか?私はこれを自分で実装するための逆伝播にまだ熟達しておらず、この点についてより明確で方向性を模索しています。これを示す既存の例が理想的です。


1
このトピックに関する本当に良いブログ投稿がここにあります:colah.github.io/posts/2014-03-NN-Manifolds-Topology
Sycoraxは、モニカを

@ user777-はい、それは投稿のリンクと一緒に私の「その他」のリンクでした、そして、なぜか私はそれをリストするのを忘れました:)
PhD

回答:


8

区分的線形非線形性(ReLUのアクティブ化を含む)を持つディープニューラルネットワークのいくつかの幾何学的特性に関する最近の素晴らしい記事が2つあります。

  1. Montufar、Pascanu、Cho、Bengioによるディープニューラルネットワークの線形領域の数について
  2. Pascanu、Montufar、Bengioによる区分的線形活性化によるディープフィードフォワードネットワークの応答領域の数について

彼らはそれがニューラルネットワークになるといくつかのひどく必要な理論と厳密さを提供します。

彼らの分析は、以下のアイデアを中心にしています:

ディープネットワークは、同じ数の計算ユニットを使用しているにもかかわらず、入力空間を、浅い対応物よりも指数関数的に線形な応答領域に分離できます。

したがって、ディープニューラルネットワークを区分的線形活性化と解釈すると、入力空間が領域の束に分割され、各領域にわたっていくつかの線形超曲面があります。

参照したグラフィックでは、さまざまな(x、y)領域がその上に線形超曲面を持っていることに注意してください(一見すると傾斜した平面または平面)。したがって、参照されているグラフィックスで、上記の2つの記事の仮説が機能していることがわかります。

さらに、彼らは述べています(共著者からの強調):

ディープネットワークは、中間の隠れ層の共通の出力にマッピングすることにより、指数関数的な数の入力近傍を特定できます。この中間層のアクティブ化で実行される計算は、識別された各近傍で一度、何度も複製されます。これにより、比較的少ないパラメーターで定義されている場合でも、ネットワークは非常に複雑に見える関数を計算できます。

基本的に、これは、浅いネットワークよりもパラメーターの数が少ないにもかかわらず、深いネットワークが信じられないほど堅牢で多様な機能表現を持つことを可能にするメカニズムです。特に、ディープニューラルネットワークは、これらの線形領域の指数関数的な数を学習できます。たとえば、最初に参照された論文の定理8を取り上げます。

L0kkL1k0

これは、たとえばReLUのような区分的線形アクティベーションを使用するディープニューラルネットワークの場合も同様です。シグモイドのようなアクティベーションを使用した場合、正弦波のように見える超曲面がより滑らかになります。多くの研究者は、ReLUまたはReLUのいくつかのバリエーション(リークのあるReLU、PReLU、ELU、RReLU、リストが続く)を使用しています。これは、区分線形構造により、飽和できるシグモイド単位(非常にフラット/漸近領域)とグラデーションを効果的に殺します。

この指数性の結果は重要です。さもなければ、区分的線形性は、コンピュータービジョンやその他のハードマシン学習タスクに関して学習する必要がある非線形関数のタイプを効率的に表すことができない場合があります。ただし、この指数性の結果はあります。したがって、これらのディープネットワークは、理論上、膨大な数の線形領域で近似することにより、あらゆる種類の非線形性を学習できます。

y=fバツ1バツ2

直感だけをテストしたい場合は、最近利用できる優れたディープラーニングパッケージがたくさんあります:Theano(Lasagne、No Learn、およびKerasがその上に構築されています)、TensorFlow、他にたくさんあると思いますアウト。これらのディープラーニングパッケージは、バックプロパゲーションを計算します。ただし、前述のような小規模な問題の場合は、バックプロパゲーションを自分でコーディングして、一度だけ実行し、勾配チェックの方法を学ぶことをお勧めします。しかし、先ほど述べたように、実際に試して視覚化したいだけであれば、これらのディープラーニングパッケージをすぐに使い始めることができます。

ネットワークを適切にトレーニングできる場合(十分なデータポイントを使用し、それを適切に初期化し、トレーニングはうまくいく。これは率直に言うと、他の問題全体である)、ネットワークが学習したことを視覚化する1つの方法(この場合) 、超曲面は、xyメッシュまたはグリッド上で超曲面をグラフ化して視覚化することです。

上記の直観が正しければ、ReLUでディープネットを使用すると、ディープネットは指数関数的な数の領域を学習し、各領域には独自の線形超曲面があります。もちろん、要点は、指数関数的に多くあるため、線形近似は非常に細かくなり、十分に深い/大きいネットワークを使用した場合、すべてのギザギザさを認識できないということです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.