ニューラルネットワークとディープニューラルネットワークの違いは何ですか?また、ディープニューラルネットワークの方が優れているのはなぜですか?


114

これらの用語で正確に述べられた質問を見たことがないので、新しい質問をするのはこのためです。

私が知りたいのは、ニューラルネットワークの定義ではなく、ディープニューラルネットワークとの実際の違いを理解することです。

コンテキストについて:ニューラルネットワークとは何か、逆伝播がどのように機能するかを知っています。DNNには複数の非表示層が必要であることを知っています。しかし、10年前のクラスでは、ニューラルネットワークが表現できる機能の点で、複数の層または1つの層(入力層と出力層をカウントしない)を持つことは同等であることを知りました(サイベンコの普遍近似定理を参照)、そしてレイヤーが増えると、パフォーマンスが向上せずに分析が複雑になります。明らかに、そうではありません。

私はおそらく間違っていると思いますが、違いは構造ではなくトレーニングアルゴリズムとプロパティの面にあり、したがって、答えがDNNへの移行を可能にした理由を強調することができれば本当に感謝します(たとえば、数学的な証明またはネットワークでランダムに遊ぶ?)および望ましい(例:収束の速度?)



近似したい関数が合成関数である場合(物理学の法則による画像処理および多くの自然領域で一般的)。ディープネットワークはこの構成性を活用し、指数関数的に少ない数のニューロンで(単一の隠れ層ネットワークと比較して)同じレベルの近似誤差を達成できることが証明できます。参照:Poggio、Tomaso、et al。「浅いネットワークではなく、深いネットワークが次元の呪いを避けることができるのはいつですか:レビュー」International Journal of Automation and Computing(2017)
DataHungry

あなたはを見てみたいことがあり、この記事
agcala

回答:


152

些細なことから始めましょう。ディープニューラルネットワークは、多くの隠れ層を備えた単純なフィードフォワードネットワークです。

定義については、これでほぼすべてです。ニューラルネットワークはリカレントまたはフィードフォワードです。フィードフォワードはグラフ内にループを持たず、レイヤーに編成できます。「多くの」層がある場合、ネットワークは深いと言います。

どのように多くの層のネットワークは、深い資格を得るために持っていなければならないのですか?これに対する明確な答えはありませんが(何個の粒がヒープを作るかを尋ねるようなものです)、通常、2つ以上の隠されたレイヤーを持つことは、深いと見なされます。対照的に、単一の隠れ層のみを持つネットワークは、従来「浅い」と呼ばれます。私はここでいくらかのインフレが起こるのではないかと疑っています。10年後、人々は、例えば10層未満のものは浅く、幼稚園の運動にのみ適していると考えるかもしれません。非公式には、「深い」ということは、ネットワークの処理が難しいことを示しています。

以下は、ここから改作さた図です

ディープvs非ディープニューラルネットワーク

しかし、あなたが尋ねている本当の質問は、もちろん、なぜ多くのレイヤーを持つことが有益なのでしょうか?

驚くべき答えは、誰も本当に知らないということだと思います。以下に簡単に説明する一般的な説明がいくつかありますが、それらのどれもが真実であると納得できるほど実証されていません。また、多くのレイヤーを持つこと本当に有益であることを確信することさえできません。

ディープラーニングは非常に人気があり、毎年すべての記録を破り(画像認識、囲Goの再生、自動翻訳など)、業界などで使用されているため、これは驚くべきことだと思います。なぜこれほどうまく機能するのか、まだよくわかりません。

私は上の私の議論をベースに深い学習 2017年に出て、広くなると考えられているグッドフェロー、Bengio、およびCourvilleの著書深い学習に関する本。(オンラインで無料で利用できます。)関連するセクションは6.4.1 Universal Approximation Properties and Depthです。

あなたはそれを書いた

10年前のクラスでは、複数のレイヤーまたは1つのレイヤー(入力レイヤーと出力レイヤーをカウントしない)を持つことは、ニューラルネットワークが表すことができる機能の点で同等であることを学びました[...]

1989年にサイベンコによって証明され、1990年代にさまざまな人々によって一般化された、いわゆる普遍近似定理を参照する必要があります。基本的に、浅いニューラルネットワーク(1つの隠れ層を持つ)は任意の関数を近似できる、つまり原則として何でも学習できると言っています。これは、ほとんどのニューラルネットワークが現在使用している修正線形ユニットを含む、さまざまな非線形活性化関数に当てはまります(この結果については、教科書ではLeshno et al。1993を参照しています)。

もしそうなら、なぜ誰もが深いネットを使用していますか?

まあ、素朴な答えは、彼らがより良く働くからです。ディープラーニングの本の図は、1つの特定のタスクにより多くのレイヤーを追加するのに役立つことを示していますが、さまざまなタスクとドメインで同じ現象がよく見られます。

より多くの層が良いです

浅いネットワーク、深いネットワークと同等のパフォーマンスを発揮できることがわかっています。しかし、そうではありません。そして、彼らは通常そうではありません。質問は---なぜですか?可能な答え:

  1. たぶん、浅いネットワークには深いニューロンよりも多くのニューロンが必要でしょうか?
  2. 浅いネットワークは、現在のアルゴリズムでトレーニングするのが難しいかもしれません(たとえば、より厄介なローカルミニマムを持っている、収束速度が遅い、など)。
  3. 浅いアーキテクチャは、私たちが通常解決しようとしている種類の問題に適合しないかもしれません(例えば、オブジェクト認識は典型的な「深い」階層プロセスです)。
  4. 他に何か?

ディープ学習本は、箇条書き#1と#3のために主張しています。まず、浅いネットワーク内のユニットの数は、タスクの複雑さとともに指数関数的に増加すると主張します。したがって、有用であるためには、浅いネットワークは非常に大きくする必要があります。おそらく深いネットワークよりもはるかに大きい。これは、浅いネットワークが指数関数的に多くのニューロンを必要とする場合があることを証明する多くの論文に基づいています。しかし、MNIST分類やGoプレイなどがそのような場合であるかどうかは、本当に明確ではありません。第二に、本はこう言っています:

深いモデルを選択すると、学習したい関数がいくつかのより単純な関数の合成を含むべきであるという非常に一般的な信念がエンコードされます。これは、表現の学習の観点から、学習問題は、他のより単純な基礎となる変動要因の観点から説明できる一連の変動要因を発見することからなると考えると考えることができます。

現在の「コンセンサス」は、箇条書き#1と#3の組み合わせだと思います。実際のタスクでは、深層アーキテクチャは多くの場合有益であり、浅層アーキテクチャは非効率であり、同じパフォーマンスのためにより多くのニューロンが必要になります。

しかし、証明されているとはほど遠い。たとえば、Zagoruyko and Komodakis、2016、Wide Residual Networksを検討してください。150以上のレイヤーを持つ残存ネットワークが2015年に登場し、さまざまな画像認識コンテストで優勝しました。これは大成功であり、深みを支持する説得力のある議論のように見えました。これは、最初の著者による残余ネットワークペーパーに関するプレゼンテーションの 1つの図です(時間は混乱して左に移動していることに注意してください)。

深い残差ネットワーク

しかし、上記リンクの論文は、「16」層のみの「幅の広い」残余ネットワークは、150層以上の「深い」ものよりも性能が優れていることを示しています。これが当てはまる場合、上の図のポイント全体が壊れます。

または、Ba and Caruana、2014年、ディープネットは本当にディープである必要があるのでしょうか?

この論文では、浅いネットが深いネットと同じ機能を学習でき、場合によっては深いネットと同じ数のパラメータを使用して学習できるという経験的証拠を提供します。これを行うには、まず最先端のディープモデルをトレーニングし、次に浅いモデルをトレーニングしてディープモデルを模倣します。模倣モデルは、次のセクションで説明するモデル圧縮スキームを使用してトレーニングされます。驚くべきことに、浅いネットを元のモデルで直接トレーニングする場合、これらの浅いネットを深いネットほど正確にトレーニングすることはできませんが、モデル圧縮を使用すると、浅いネットをいくつかの深いモデルと同じくらい正確にトレーニングすることができますラベル付きトレーニングデータ。深いネットと同じ数のパラメーターを持つ浅いネットが、高い忠実度で深いネットを模倣することを学習できる場合、

trueの場合、これは正しい説明が#1または#3ではなく、私の箇条書き#2であることを意味します。

私が言ったように---誰もまだ本当に確かに知りません。


おわりに

過去10年間のディープラーニングで達成された進歩の量は本当に驚くべきことですが、この進歩のほとんどは試行錯誤によって達成されたものであり、ディープネットが正確に機能するための正確な基礎知識はまだ非常に不足しています。効果的なディープネットワークを構築するために人々が重要と考えるもののリストでさえ、2年ごとに変わるようです。

深層学習のルネッサンスは、2006年に、誰からもあまり興味を持たずに20年以上ニューラルネットワークに取り組んでいたGeoffrey Hintonが、深層ネットワークをトレーニングする効果的な方法を提供するいくつかの画期的な論文を発表したときに始まりました(サイエンスペーパーニューラルコンピューティングペーパー) 。秘dは、勾配降下を開始する前に教師なしの事前トレーニングを使用することでした。これらの論文は分野に革命をもたらし、数年間、人々は教師なしの事前訓練が鍵であると考えていました。

その後、2010年にMartensは、ディープニューラルネットワークを2次法(いわゆるヘッシアンフリー法)でトレーニングでき、事前トレーニングで訓練されたネットワークを上回ることができることを示しました:ヘッシアンフリー最適化によるディープラーニング。その後、2013年にSutskeverら。いくつかの非常に巧妙なトリックを使用した確率的勾配降下は、ヘッセを含まない方法よりも優れている可能性があることを示しました深層学習における初期化と運動量の重要性について。また、2010年頃、シグモイド単位の代わりに整流線形単位を使用すると、勾配降下に大きな違いが生じることに気付きました。ドロップアウトは2014年に登場しました。残留ネットワークは2015年に登場しました。人々は、より深いネットワークを訓練し、10年前に重要な洞察のように思われたものは、今日ではしばしば迷惑と見なされます。そのすべては主に試行錯誤によって推進されており、何がうまく機能するのか、そうでないのかについてはほとんど理解されていません。深いネットワークのトレーニングは、大きなトリックのようなものです。成功するトリックは通常、事後的に合理化されます。

深いネットワークがパフォーマンスのプラトーに達する理由はわかりません。わずか10年で人々は極小値を非難していましたが、現在の考え方ではこれはポイントではありません(パフォーマンスがプラトーになると、勾配は大きくなる傾向があります)。これは、ディープネットワークに関するこのような基本的な質問であり、私たちもこれを知りません。

更新:これは、錬金術としての機械学習に関するAli RahimiのNIPS 2017の話題の多かれ少なかれです:https : //www.youtube.com/watch?v= Qi1Yry33TQE


[この回答は2017年4月に完全に書き直されたため、以下のコメントの一部は適用されません。]


2
いい反応です!1)@Nicolasも言及したように、単一の隠れと有限数のニューロンを持つフィードフォワードニューラルネットワークが近似できると主張する定理(en.wikipedia.org/wiki/Universal_approximation_theorem)があることがわかりますユニットハイパーキューブ上の任意の連続関数(DNNを含む)。この結果は、アクティベーション機能の選択とは無関係であると主張されています。2)最後の発言(ヒントンがGoogleに参加したこと)が最近のDNNの成功に関連しているかどうかはわかりません。ヒントンは、DNNが流行したずっと後にGoogleに入社しました!
ソビ

4
たぶん、私たちは異なる用語を使用しています。パーセプトロンには隠れ層がありません。入力はデータであり、出力は分類です。多層ネットワーク層から出力することを一緒に、有線パーセプトロンの束で構成され形の入力層に。したがって、単一の非表示レイヤーを持つネットワークには、3つのレイヤー(入力、非表示、出力)があります。この隠された層は普遍的な近似の鍵です。パーセプトロンはそれを欠いており、XORのようなものを計算できませんが、多層ネットワークは計算できます。nn1n
マットクラウス

2
直線性の問題は、2つの問題の組み合わせのようです。パーセプトロンは線形決定境界のみを計算できます。2つのクラスを分割するために直線のみを描画できます。多層ネットワークは、より複雑な境界を「描く」ことができます。 ただし、多層ネットワークの出力層を除き、パーセプトロンも多層ネットワークも線形活性化関数を使用しません。パーセプトロン活性化関数はヘビサイドです(x> 0の場合は1、そうでない場合は0)。多層ネットワークではシグモイドがよく使用されますが、普遍的な約 かなり穏やかです:一定ではなく、境界があり、単調に増加しています。
マットクラウス

2
@amoebaの素晴らしい答え、最初の写真は残りを読むことを私に先送りにしたが、それは最高のものだった。パーセプトロンは分類の線形回帰の対応物であり、これが人々がオンライン(sgd)メソッドの代わりに問題を解決するために閉形式解(疑似逆)を使用するとき、ロジスティック(シグモイド関数)のためにロジスティック回帰と呼ばれる理由です=パーセプトロン。パーセプトロン/ロジスティック回帰は、線形決定境界のみを「描く」ことができ、それが線形と呼ばれる理由です。
手裏剣x青

2
ただし、マルチレイヤーパーセプトロン(左の最初の図で描いたもの)は、複数のそのような線形決定境界を組み合わせて、空間を分割して@Mattのような(非線形)XOR問題を解決できます。そのため、たとえば目を細めた場合、多くの多くの線形決定境界を組み合わせて円を描くことができます。それはあなたがそれについてどう考えるかに依存します-決定は依然としてより高い空間で線形です、あなたがカーネルに精通しているなら、それは一種の同じことです。
手裏剣x青

8

これまでのところ良い答えは、ここの周りに誰も言及していないものがいくつかありますが、ここに私の0.02 $があります

物語の形で答えて、物事をもっと楽しく明確にする必要があります。ここにはtldrはありません。その過程で、違いが何であるかを理解できるはずです。

DNNが発火したときに火花が散った理由は複数あります(スターは、同様のものすべてと同様に、適切な場所、適切な時間などの問題です)。

1つの理由は、データ、大量のデータ(ラベル付きデータ)の可用性です。「一般的な事前」または「普遍的な事前」(タスク/アプリケーション間で再利用できる基本的な構成要素)のようなものを一般化し、学習できるようにするには、大量のデータが必要です。そして、野生のデータは、制御された照明とすべてを備えた実験室で慎重に記録された無菌データセットではなく、追加するかもしれません。メカニカルタークはそれを可能にしました。

第二に、GPUを使用してより大規模なネットワークをより高速にトレーニングできるため、実験がより高速になりました。ReLUユニットは、物事の計算も高速化し、正規化を提供しました。レイヤーがより疎になったため、同じ情報を圧縮できるように1つのレイヤーでより多くのユニットを使用する必要があったため、ドロップアウトでもうまくいきました。また、複数のレイヤーをスタックするときに発生する重要な問題の解決にも役立ちました。それについては後で詳しく説明します。パフォーマンスを改善するさまざまな複数のトリック。ミニバッチ(実際には最終エラーに有害です)や畳み込み(実際には局所受容野ほどの分散を捕捉しない)を使用するのと同様ですが、計算は高速です。

その間、人々は、より細く、よりぽっちゃり、より小さく、より高く、そばかすの有無にかかわらずなどを好むかどうかについて議論していました。そしてニュートン法、最後に彼らは皆、無料のランチがないことに気づきました。ネットワークはげっぷしていた。

物事が遅くなったのは、勾配消失の問題です。人々は次のように行った:おっ、それは遠い、男!一言で言えば、入力に近いレイヤーのエラーを調整するのが難しかったことを意味します。ケーキにさらにレイヤーを追加すると、ぐらつくようになります。意味のあるエラーを最初のレイヤーに戻すことはできませんでした。レイヤーが多いほど、悪化します。残念。

一部の人々は、クロスエントロピーを損失関数として使用することで(また、分類と画像認識)、何らかの正規化を提供し、ネットワークが飽和状態になるのを防ぎ、勾配がそれをうまく隠せないことを理解しました。

物事を可能にしたのは、教師なしの方法を使用したレイヤーごとの事前トレーニングでした。基本的に、圧縮率を上げると、多くの自動エンコーダーを使い、ますます抽象表現が少なくなります。これらのネットワークの重みは、監視対象バージョンを初期化するために使用されました。これにより、消失勾配の問題が別の方法で解決されました。すでに、より良い開始位置から教師付きトレーニングを開始しています。それで、他のすべてのネットワークが立ち上がり、反乱を始めました。しかし、とにかくネットワークには監視が必要でした。そうでなければ、ビッグデータを維持することは不可能でした。

さて、最後の部分では、最終的には複雑すぎて簡単に言えば答えが得られません。なぜ1つだけではなくより多くの層なのか。できるから!コンテキストと不変の特徴記述子のため。とプール。

次に例を示します。画像のデータセットがあり、そのデータを使用して計画NNをどのようにトレーニングしますか?さて、単純に、各行を取り上げて1つの長いベクトルに連結し、それが入力になります。何を学びますか?さて、画像内のオブジェクトには多くの種類の分散が含まれており、関連するものと無関係なものを区別できないため、何のようにも見えないファジーなナンセンス関数があります。また、ある時点で、ネットワークは新しいものを再学習できることを忘れる必要があります。容量の問題があります。これはより非線形のダイナミクスですが、直感的には、ネットワークにより多くの情報を含めることができるようにニューロンの数を増やす必要があります。

重要なのは、画像を1つのピースとして入力するだけでは、抽象化を学習できないため、余分なレイヤーを追加してもあまり意味がないということです。これは非常に重要です。したがって、特定の種類のオブジェクトに焦点を当てるなど、ネットワークでより簡単なことをしている場合を除き、全体的に物事を行うことはうまくいきません。

それで、何をする必要がありますか?画面の端を見て、このテキストを読んでみてください。問題?ばかげているように、読んでいるものを見る必要があります。それ以外の場合は、あいまいすぎます/十分な解像度/粒度がありません。フォーカス領域を受容野と呼びましょう。ネットワークも集中できる必要があります。基本的に、画像全体を入力として使用する代わりに、画像に沿ってスライディングウィンドウを移動し、それをネットワークへの入力として使用します(人間が行うよりも少し確率的です)。これで、ピクセルとオブジェクトの間の相関関係をキャプチャする機会が得られ、ソファに座っている眠そうな猫と逆さまの猫のバンジージャンプを区別することもできます。きちんとした、人類への信仰が回復しました。ネットワークは、複数のレベルで画像のローカル抽象化を学習できます。ネットワークはフィルターを学習し、

要約すると、受容フィールド/畳み込み、教師なし初期化、修正された線形ユニット、ドロップアウトまたは他の正則化方法です。これについて非常に真剣に考えている場合は、ニューラルネットワークでのSchmidhuberのディープラーニングを参照することをお勧めします。概要は、プレプリントのURL http://arxiv.org/abs/1404.7828です。

そして覚えておいてください:大きな学習、深いデータ。語。


こんにちはフローリン、いい答えをありがとう!私は書くスタイルが好きです。スライディングウィンドウについて話すとき、畳み込みNNの畳み込み層が画像のさまざまな部分を観察し、それらの活性化を低次元の空間に投影する方法について言及していますか?
ニコラス

はい、畳み込みは必要ありませんが、重みが制約されているため、計算は高速です。畳み込みを使用せず、局所受容フィールドを使用するこのペーパーをチェックしてください。重要なキーワードはローカル/階層的です:arxiv.org/pdf/1112.6209.pdf
x blue

また、最も近い体系的な答えはソビだと思います。彼は私の賛成票を持っています。私はあちこちに塩とコショウを少し加えていくつか追加しました。
手裏剣x青

6

素人の言葉で言えば、古典的なニューラルネットワークとの主な違いは、はるかに多くの隠れ層があることです。

概念は、ラベルをレイヤーに追加して、いくつかの抽象レイヤーを作成することです。

たとえば、オブジェクト認識用のディープニューラルネットワーク

  • レイヤー1:単一ピクセル
  • レイヤー2:エッジ
  • レイヤー3:フォーム(円、正方形)
  • レイヤーn:オブジェクト全体

Quoraのこの質問で良い説明を見つけることができます。

そして、あなたがこの主題に興味があるなら、私はこの本を見るのを勧めるでしょう。


1
デイビッドに感謝しますが、ラベルを追加するだけで違うものになるとは思いません。また、ニューラルネットワークによって関数がどのようにエンコードされるかを理解し、分解することは難しい問題であったことも覚えています。レイヤーを増やすだけではありません。あなたが与えた例については、個々の(古い学校の)ニューラルネットワークを訓練して、各タスクを実行できると信じています。
ニコラス

パイプラインのように使用するとパワーが得られるため、レイヤーからの入力と出力はすべてのレイヤーでスタックされます。
デビッドガスケス

私はあなたの最初のリンクを読んでいます。これは良いリソースであり、quoraとseに関する他の関連する質問ですが、あなたが与えた例は私が読んだものと正確ではないようです。私は自分の質問に答えて、これらの読みを要約してみます。
ニコラス

2
先のとがったリソースが興味深いにもかかわらず、現在の返信では質問に答えていません。
ニコラス

レイヤーにラベルが付けられている例を指摘できますか(純粋に説明的な方法以外で)。隠されたレイヤーが各隠されたレイヤーで連続してより複雑な機能に見えることは確かに真実ですが、「ラベルを追加する」ことは、それらを特に訓練することを暗示しているようです。
マットクラウス

2

また、最初はニューラルネットワーク(NN)とディープニューラルネットワーク(DNN)の違いに少し混乱していましたが、残念ながら「深さ」はパラメーターとレイヤーの数のみを指します。いわゆる「カナダのマフィア」の下で、何らかのブランド変更と考えることができます。

数年前、クラスの一部としてニューラルネットワークもあり、複数の隠れたレイヤーと出力、およびDNNの持つすべてのジャズを備えたNNを使用して、数字認識、波近似、および同様のアプリケーションを実行しました。しかし、当時はなかったのは計算能力でした。

DNNへの移行を可能かつ望ましいものにしたのは、ハードウェア開発の進歩です。簡単に言えば、より多く、より速く、より多くの並列処理(GPUのDNN)を計算できるようになりましたが、以前はNNのボトルネックでした。

ディープラーニングの Wikipediaのページで参照されているように、「深い」部分は主に、複数のレイヤー上で機能が非線形的に相互作用することを指し、したがって機能の抽出と変換を実行します。これは標準のNNでも行われましたが、規模は小さくなりました。

同じページで、ここであなたが定義を持っている「深いニューラルネットワーク(DNN)は、入力と出力層の間の単位の複数の隠れ層を持つ人工ニューラルネットワーク(ANN)です。」


こんにちはMttk、あなたの答えをありがとう、この質問にもっと光を投げかけます。あなたの最後の点に関して、はい構造は違いを説明するのは非常に簡単です(1対複数のレイヤー)が、これらの複数のレイヤーがどのように使用されるかの違いは重要なことであり、はるかに明確ではありません。私は構造上の問題ではありません。..焦点を当てた理由です
ニコラ・

正直なところ、私が参照した最後の定義には同意しません-1つの隠れ層を持つANN / NNは実際には効率的ではなく、より複雑な予測のために複数が必要でした(DNNは役に立たない流行語が既に良い用語に追加されました(NN)。NNとDNNを交換可能に使用できると思います(今日では誰も1隠しレイヤーのNNを使用していないため) DNN自体のアイデアではありません。
mttk

2

私の知る限り、今日のディープニューラルネットワーク(DNN)と呼ばれるものは、古い標準のニューラルネットワーク(NN)と根本的または哲学的な違いはありません。理論的には、1 つの隠れ層のみを持つ浅いNNを使用して任意のNNを近似できますが、これは、同じアルゴリズムとトレーニングデータを使用してトレーニングしたときに2つのネットワークが同様に実行されることを意味しません。実際、深いネットワークと同様に機能する浅いネットワークのトレーニングに関心が高まっています。ただし、これを行う方法は、最初に深いネットワークをトレーニングし、次に浅いネットワークをトレーニングして模倣することです。ディープネットワークの最終出力(最後から2番目の層の出力)。ディープアーキテクチャが有利なのは、ニューロンが階層構造にレイアウトされている場合に、今日のトレーニング手法(逆伝播)がうまく機能することです。

質問されるかもしれないもう1つの質問は、なぜニューラルネットワーク(特にDNN)が突然人気を博したのかということです。私の理解では、最近DNNの人気を高めた魔法の成分は次のとおりです。

A.データセットとデータ処理機能の改善

1.数百万の多様な画像を含む大規模なデータセットが利用可能になりました

2.高速GPU実装が公開されました

B.改善されたトレーニングアルゴリズムとネットワークアーキテクチャ

1.シグモイドまたはタンの代わりに整流線形単位(ReLU)

2.長年にわたって進化したディープネットワークアーキテクチャ


A-1)ごく最近まで、少なくともコンピュータービジョンでは、数百万のラベル付き画像でモデルをトレーニングできませんでした。そのサイズのラベル付きデータセットが存在しなかったからです。画像の数に加えて、ラベルセットの粒度もDNNの成功にとって非常に重要な要因であることがわかります(この論文の Azizpourらによる図8を参照)。

A-2)実際にうまく機能するDNNのトレーニング、特にGPU実装の出現を可能にするために、多くのエンジニアリング努力が注がれています。DNNの最初の成功したGPU実装の1つは、2つの並列GPUで実行されます。それでも、ハイエンドGPUを使用して1000カテゴリの120万枚の画像でDNNをトレーニングするには、約1週間かかります(Krizhevskyらによるこのペーパーを参照)。

B-1)シグモイド関数およびタン関数の代わりに単純な整流線形ユニット(ReLU)を使用することは、おそらくDNNのトレーニングを可能にする最大の構成要素です。シグモイド関数とtanh関数は、低活性化レベルから高レベルへの遷移速度に応じて、ほぼすべての場所で勾配がほぼゼロであることに注意してください。極端な場合、遷移が突然の場合、遷移が発生する1つのポイントを除いて、どこでも勾配がゼロのステップ関数を取得します。

B-2)ニューラルネットワークアーキテクチャが長年にわたってどのように開発されたかという話は、進化が自然界の生物の構造をどのように変えるかを思い出させます。パラメーター共有(例:畳み込み層)、ドロップアウト正則化、初期化、学習率スケジュール、空間プーリング、より深い層でのサブサンプリング、および現在DNNのトレーニングで標準と考えられている他の多くのトリックが開発され、進化し、調整されましたディープネットワークのトレーニングを今日のように可能にするために何年もかかりました。


3
+1。OPの質問に対する適切な回答を提供するこのスレッドの最初の回答。ここで多くの良い点。私の唯一の大きなコメントは、AとBに加えて、C:利用可能なトレーニングデータセットのサイズが大幅に増加していることです。これは、AとBと少なくとも同じくらい重要であると考えられる
アメーバ

1
reluはそれほど重要ではないと思います。Alexkrizhevskyの論文は、nnが最大6倍速く学習できると主張しました。あなたが言及する他のネットワーク構造の変更のほとんどは、標準的な画像処理パイプラインをコピーするだけの畳み込みnnに関連しています(良いことですが、新しい洞察はありません)
seanv507

1
@amoeba:データセットのサイズはA未満です。テキストを更新して強調表示しました。
ソビ

@ seanv507:確かに、答えを書くときに畳み込みネットワーク(ConvNets)を念頭に置いていました。私が見逃した他の重要な要素(ConvNetsとは無関係)がある場合、それらに言及していただければ幸いです。それに応じて回答を更新させていただきます。ReLUについては、tanhおよびSigmoidを使用したnnのトレーニングは、勾配が消失する問題があるため、ReLUを使用した場合よりもかなり難しくなります。飽和)
ソビ

2

「ディープ」NNと標準NNの違いは純粋に定性的なものです。「ディープ」が意味するものの定義はありません。「ディープ」とは、50〜80以上のレイヤーを持つGoogle、Facebook、およびcoで使用される非常に洗練されたアーキテクチャから、2つの隠しレイヤー(合計4レイヤー)アーキテクチャまでを意味します。「深い」とはあまり意味がないので、1つの隠されたレイヤーでディープラーニングを行うことを主張する記事を見つけても驚かないでしょう。

「ニューラルネットワーク」も、あまり正確な意味を持たない単語です。ランダムなボルトズマンマシン(無向グラフ)からさまざまなアクティベーション機能を備えたフィードフォワードアーキテクチャまで、非常に大きなモデルのアンサンブルをカバーしています。ほとんどのNNはbackpropを使用してトレーニングされますが、そうである必要はないため、トレーニングアルゴリズムでさえも非常に均質ではありません。

全体として、ディープラーニング、ディープNN、およびNNはすべて、多くのアプローチをとらえるキャッチオールワードになっています。

「何が変わったのか」への入門的な参考文献として:表現の深層学習:将来を見据えて、Bengio、2013は良いレビュー+将来の展望です。参照してくださいドゥディープネットは本当に深いする必要がありますか?Ba&Caruana、2013は、深さ表現ではなく学習に役立つかもしれないことを示しています。


あなたが与える参考文献は非常に役立ちますが、現在のフォームの残りの回答(「NNは何も意味せず、DNNは何も意味せず、NNとDNNは多くのことを行うことができます」)はあまりありません修正を検討しますか?
ニコラス

1

David Gasquezの答えを拡張するために、ディープニューラルネットワークと従来のニューラルネットワークの主な違いの1つは、ディープニューラルネットに逆伝播を使用しないことです。

どうして?バックプロパゲーションは、前のレイヤーをトレーニングするよりも後のレイヤーをより効率的にトレーニングするため、ネットワーク内の早い段階で進むにつれて、エラーは小さくなり、より拡散します。したがって、10層ネットワークは、基本的に7層のランダムな重みとそれに続く3層の適合重みで構成され、3層ネットワークと同様に機能します。詳細はこちらをご覧ください。

したがって、概念的なブレークスルーは、個別の問題(ラベル付きレイヤー)を個別の問題として扱うことです。最初に一般的に適切な最初のレイヤーを作成する問題を解決しようとし、次に一般的に適切な2番目のレイヤーを作成する問題を解決しようとすると、最終的には、実際の問題にフィードできる深い機能スペースができます。


1

NN:

  • 隠れ層は1つで十分ですが、それでも複数の層を持つことができます。左から右への順序付け(モデル:フィードフォワードNN)
  • 監視された方法でのみトレーニングされます(逆伝搬)
  • 複数のレイヤーを使用する場合、すべてのレイヤーを同時にトレーニングします(同じアルゴリズム:バックプロパゲーション)。エラーが小さすぎるため、レイヤーを増やすと使用が難しくなります。
  • 各層で学んだことを理解するのは難しい

DNN:

  • 複数の層が必要、無向のエッジ(モデル:制限付きボルトマンマシン)
  • ネットワークが入力を再現することを学習することにより関連する特徴を学習する、教師なしの方法で最初に訓練され、次に分類するために特徴を微調整する教師ありの方法で訓練された
  • 入力層から出力層まで1つずつ層をトレーニングします(アルゴリズム:対比発散)
  • 各層には、抽象化が増加する機能が明確に含まれています

DNNへの移行は、2006年に発生した3つの独立したブレークスルーによるものです。

NNの定理に関して、質問が示唆するものは次のとおりです。

  • 普遍近似定理またはサイベンコ定理:単一の隠れ層を持つフィードフォワードニューラルネットワークは、任意の連続関数を近似できます。ただし、実際には、単一の隠れ層が使用される場合、より多くのニューロンが必要になる場合があります。

2
-1?本当に?私はこれをすべて文献で読み、両方のアプローチのポイントごとの比較を行いました!少なくとも間違っていることを述べてください
ニコラス

3
私はダウン投票しませんでした(おそらく、ダウンボッターはあなたがあなた自身の質問に答えることを好まなかったのでしょうか?しかし、それはもちろんここでは完全に問題ありません)が、ここでは完全に正しいわけではありません。DNNのプロパティとしてリストするもの:エッジは無向、最初は教師なしの方法でトレーニングされ、レイヤーは1つずつトレーニングされます。これらはすべて、2006年にヒントンが提案した深い信念ネットワークのみを参照しています。一般にディープニューラルネットワークには必ず当てはまりますが、実際には、すべてを使用せずにディープネットワークをトレーニングする方法は数多くあります。私の答えをご覧ください。
アメーバ

1

O(n)

後退して、これが浅いAIに復活をもたらしたことを確認する必要があると思います。たとえば、感情分析や他の言語アプリケーション用の単語の袋や、DNN以前の視覚的な単語の袋は、画像認識へのアプローチをリードしていました。bag of wordsが言語の真のモデルであると言う人はいませんが、効果的なエンジニアリングソリューションです。だから私はDNNがより良い「視覚的な言葉の袋」だと言うだろう-例えばSzegedy et al。2013 ニューラルネットワーク とNguyen等の興味深い特性ディープニューラルネットワークは簡単にだまされます:高次構造などが学習されていないことが明らかな認識できない画像(またはDNNに対して主張されているもの)に対する信頼性の高い予測


@amoebaこの他のペーパーは、最初のコンパニオンペーパーとほぼ同じです(再び多くの画像があります!)
seanv507

0

ディープラーニングは、複数の非線形変換で構成されるアーキテクチャを使用して、データの高レベルの抽象化をモデル化しようとする機械学習のアルゴリズムのセットです。

出典:アルノ・キャンデル

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