なぜニューラルネットワークは深くなりつつあるが、広くはならないのか?


73

近年、畳み込みニューラルネットワーク(または一般的にはディープニューラルネットワーク)はますます深くなり、最先端のネットワークは4層で7層(AlexNet)から1000層(残余ネット)になります年。より深いネットワークからのパフォーマンスの向上の背後にある理由は、より複雑な非線形関数を学習できるからです。十分なトレーニングデータがある場合、これにより、ネットワークは異なるクラスをより簡単に区別できます。

ただし、この傾向は各レイヤーのパラメーターの数では続かないようです。たとえば、畳み込みレイヤーのフィーチャマップの数、または完全に接続されたレイヤーのノードの数は、レイヤー数が大幅に増加したにもかかわらず、ほぼ同じままで、規模は比較的小さいままです。しかし、私の直感からは、レイヤーごとのパラメーターの数を増やすと、各レイヤーに非線形関数を学習するための豊富なデータソースが与えられるように思えます。しかし、この考え方は、それぞれが少数のパラメーターを持つレイヤーを追加するだけで、見過ごされていたようです。

したがって、ネットワークは「より深く」なっていますが、「より広く」はなりません。どうしてこれなの?


1
+1ですが、公平を期すために、これらの1000以上の階層化されたネットワークが他のネットワークよりも優れているという意味で「最先端」であることはありません。リンクしたarxivの論文は、ImageNetの現在の勝者として152層の残存ネットワークを報告しています。
アメーバは、モニカーを復活させる

3
広い残余ネットワークarxiv.org/abs/1605.07146を読んでいます ....たぶん理由はありません。勾配降下で非凸関数を最適化することには理論的な基礎がありません...ただ試行錯誤があります:-)
seanv507

@ seanv507非常に興味深い、このリンクをありがとう。ところで、ここに非常に関連するスレッドがあります:stats.stackexchange.com/questions/214360と、このredditスレッドへのリンクがあります。
アメーバは


回答:


87

免責事項として、私は自分の研究でニューラルネットに取り組んでいますが、一般的には、あなたがあなたの質問で引用する最先端の研究で、本当に深いネットワークではなく、比較的小さく浅いニューラルネットを使用します。私は非常に深いネットワークの癖や特殊性についての専門家ではありません。

まず、原則として、ディープニューラルネットが必要な理由はまったくありません。単一の隠れ層のみを備えた十分に幅の広いニューラルネットワークは、十分なトレーニングデータが与えられると、(合理的な)関数を近似できます。ただし、非常に幅が広​​く浅いネットワークを使用すると、いくつかの問題が発生します。 主な問題は、これらの非常に広く浅いネットワークが暗記には非常に優れているが、一般化にはそれほど優れていないことです。したがって、可能なすべての入力値を使用してネットワークをトレーニングすると、最終的にスーパーワイドネットワークは、必要な対応する出力値を記憶する可能性があります。しかし、実用的なアプリケーションでは、トレーニングに使用できる入力値がすべて揃っているわけではないため、これは役に立ちません。

複数のレイヤーの利点は、さまざまなレベルの抽象化で機能を学習できることです。たとえば、画像を分類するために深い畳み込みニューラルネットワークをトレーニングすると、最初のレイヤーはエッジのような非常に基本的なものを認識するようにトレーニングし、次のレイヤーはシェイプなどのエッジのコレクションを認識するようにトレーニングしますレイヤーは目や鼻などの形状のコレクションを認識するように自身を訓練し、次のレイヤーは顔のような高次の特徴をさらに学習します。 複数の層は、生データと高レベルの分類との間のすべての中間機能を学習するため、一般化がはるかに優れています。

そのため、非常に幅が広​​く浅いネットワークではなく、深いネットワークを使用する理由を説明しています。しかし、なぜ非常に深く、非常に広いネットワークではないのでしょうか?答えは、良い結果を出すためにネットワークをできるだけ小さくしたいということだと思います。ネットワークのサイズを大きくすると、ネットワークで学習する必要のあるパラメーターが増えて、過剰適合の可能性が高くなります。 非常に広く、非常に深いネットワークを構築する場合、各レイヤーが出力に必要なものを記憶しているだけで、新しいデータへの一般化失敗するニューラルネットワークになります

オーバーフィットのスペクターは別として、ネットワークが広いほど、トレーニングに時間がかかります。ディープネットワークは既にトレーニングに非常に高い計算コストがかかる可能性があるため、十分に機能するように幅を広げようとする強いインセンティブがありますが、それ以上は広くありません。



2
私はそれをスキミングしただけなので、権威あることは言えませんが、少なくとも残りのネットワークの場合、幅の広い(まだ16層の深さ!)ネットは狭く、非常に深い(1000層の)ネット。残留ネットワークについてはあまり知りませんが、導入によると、それらをトレーニングすることの難しさは、レイヤーがまったく何も学習せず、結果にあまり貢献しない傾向があることです。これは、より少ないがより強力なレイヤーを使用することで回避できるようです。これが他の種類のNNに当てはまるかどうかはわかりません。
J.オブライエンアントニーニ16

明確で簡潔な回答、よくやった。@J
16

21

あなたの質問に明確な答えがあるとは思いません。しかし、私は従来の知恵が次のように行くと思う:

基本的に、学習アルゴリズムの仮説空間が拡大するにつれて、アルゴリズムはより豊かな構造を学習できます。しかし同時に、アルゴリズムは過剰適合しやすくなり、一般化エラーが増加する可能性があります。

したがって、最終的に、任意のデータセットについて、データの実際の構造を学習するのに十分な容量を備えた最小限のモデルを使用することをお勧めします。しかし、これは非常に手作業のアドバイスです。通常、「データの実際の構造」は不明であり、多くの場合、候補モデルの容量でさえ漠然としか理解されていないからです。

ニューラルネットワークに関しては、仮説空間のサイズはパラメーターの数によって制御されます。そして、固定された数のパラメーター(または固定された大きさ)で、深くなるほど、モデルはより豊富な構造をキャプチャできるようになります(このペーパーなど)。

これは、より少ないパラメーターでより深いモデルの成功を部分的に説明する可能性があります:VGGNet(2014年から)は、〜140Mパラメーターの16層を持ち、ResNet(2015年から)は152層でありながら、〜2Mパラメーターのみです

(側面として、小さなモデルは計算的に訓練が容易かもしれませんが、深さは実際には訓練を複雑にするため、それ自体が主要な要因だとは思いません)

この傾向(より深い、より少ないパラメーター)は、主に視覚関連のタスクと畳み込みネットワークに存在し、これはドメイン固有の説明を必要とすることに注意してください。それで、別の視点があります:

畳み込み層の各「ニューロン」には「受容野」があります。これは、各出力に影響を与える入力のサイズと形状です。直感的に、各カーネルは、近くの入力間のある種の関係をキャプチャします。また、小さなカーネル(一般的で望ましい)には受容フィールドが小さいため、ローカル関係に関する情報のみを提供できます。

しかし、深くなるにつれて、以前の層に関する各ニューロンの受容野が大きくなります。そのため、深いレイヤーは、グローバルなセマンティックな意味と抽象的な詳細(オブジェクトの関係の関係の関係)を備えた機能を提供できますが、小さなカーネルのみを使用します(ネットワークが学習する関係を正規化し、収束して一般化するのに役立ちます)。

そのため、コンピュータービジョンにおける深い畳み込みネットワークの有用性は、画像とビデオの空間構造によって部分的に説明される場合があります。時間が経てば、さまざまなタイプの問題、または非畳み込みアーキテクチャの場合、実際には深度がうまく機能しないことがわかります。


ディープネットワークの制限付きボルツマンマシン部分は、収束時間の大きな乗数です。(afaict)
EngrStudent

4
RBMはディープラーニングに固有のものではありません。多くの(今日では、ほとんど?)成功した​​ディープネットワークはRBMを使用しません。
ボルベイ

3
その論文にリンクしてくれてありがとう、私はそれを見たことがなかったし、非常に関連性が高いようだ。
J.オブライエンアントニーニ16

@Borbei-RBMなしで機能の分離をどのように保証しますか?
EngrStudent


10

より多くの機能を追加することは役立ちますが、多くの機能を追加した後、利益はすぐに限界になります。これが、PCAのようなツールが機能する理由の1つです。いくつかのコンポーネントが機能のほとんどの違いをキャプチャします。したがって、ある時点の後に機能を追加してもほとんど役に立ちません。

一方、機能のmaに適切な機能を見つけることは常に良い考えです。ただし、良い理論を持っていない場合は、正しい機能を考え出すのは難しいです。したがって、レイヤーを追加することは、ブルートフォースアプローチの形式として役立ちます。

単純なケースを考えてみましょう:車の空気抵抗。私たちが式を知らなかった、と言う: 場所- crossectional車の面積、 -空気密度、および -車の速度。車の測定が重要であると考えて、それらを特徴として追加すると、車の速度も入ります。そのため、機能を追加し続け、空気圧、温度、長さ、車の幅、座席数などを追加します。

fCρAv2/2
Aρv

最終的にようなモデルに なります。すべての相互作用と多項式を追加しない限り、これらの機能が「真の」方程式にどのようにアセンブルされないかがわかります。ただし、指数またはその他の奇妙な超越関数があるなど、真の方程式が便利な多項式ではない場合、機能セットを拡張したりネットワークを広げたりしてエミュレートする機会はありません。

fiβixi

ただし、ネットワークをより深くすると、2つのレイヤーだけで上記の方程式を簡単に得ることができます。より複雑な機能には、より多くのレイヤーが必要になります。そのため、レイヤーの数を増やすことは、多くの問題に対処する方法となります。


5
線形伝達関数を仮定します。しかし、他にも多くの(一般的な)選択肢があり、ANNの普遍的な近似定理によれば、単一の隠れた非線形層(十分に広い場合)でもすてきな関数を近似できます。そのため、表現力は、ディープネットワークの成功を実際に説明することはできません。
ボルベイ

2
私の例は線形でしたが、より幅広いケースに適用されます。あなたは「素敵な」機能を想定していましたが、多くはそれほど良くありません。たとえば、購入する車を選択するときに、なぜ私の決定アルゴリズムが素晴らしい機能になるのでしょうか?
アクサカル

2

深さおよび幅密に接続されたニューラルネットの場合、パラメーター(したがって、ネットワークの実行またはトレーニングに必要なRAM)の数はです。したがって、パラメーターの数が限られている場合、幅を少し増やすよりも深さを大きくする方が適切な場合がよくあります。dwO(dw2)

パラメータの数を制限しようとしているのはなぜですか?いくつかの理由:

  • 過剰適合を避けようとしています。(パラメーターの数を制限することは、これを達成するための非常に鈍い手段ですが。)
  • 同じ数のパラメータを使用して他の人のモデルよりも優れている場合、研究はより印象的です。
  • モデル(Adamを使用している場合はモーメントパラメータも)が単一のGPUのメモリに収まる場合、モデルのトレーニングははるかに簡単です。
  • 実際のアプリケーションでは、モデルを提供するときにRAMが高価になることがよくあります。これは、たとえば携帯電話などでモデルを実行する場合に特に当てはまりますが、クラウドからモデルを提供する場合にも当てはまる場合があります。

どこんから来るの?幅が 2つの隣接するレイヤーのそれらの間の接続は記述されます。したがって、幅レイヤー(および入力レイヤーと出力レイヤー)がある場合、パラメーターの数は 幅を制限する代わりに、スパース接続を使用することもあります。たとえば、ネットワークトポロジを初期化するときに、各接続を確率できるため、パラメーターの合計数はO(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
1/wO(dw)。しかし、これを行うと、幅を増やすことでモデルの学習能力が必然的に増えることは明らかではありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.