畳み込みニューラルネットワーク、制限付きボルツマンマシン、および自動エンコーダーの違いは何ですか?


123

最近、私はディープラーニングについて読んでいますが、用語(またはテクノロジー)について混乱しています。違いは何ですか

  • 畳み込みニューラルネットワーク(CNN)、
  • 制限付きボルツマンマシン(RBM)および
  • 自動エンコーダー?

回答:


237

Autoencoderは、出力ユニットが直接入力ユニットに直接接続される単純な3層ニューラルネットワークです。たとえば、次のようなネットワークで:

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

output[i]バックにエッジがあるinput[i]すべてのためにi。通常、非表示のユニットの数は、表示される(入力/出力)ユニットの数よりもはるかに少なくなります。その結果、そのようなネットワークを介してデータを渡す場合、最初に入力ベクトルをより小さな表現に「フィット」するように圧縮(エンコード)し、次に再構築(デコード)を試みます。トレーニングのタスクは、エラーまたは再構成を最小限に抑えることです。つまり、入力データの最も効率的なコンパクトな表現(エンコード)を見つけます。

RBMも同様のアイデアを共有していますが、確率論的なアプローチを使用しています。決定論的(例:ロジスティックまたはReLU)の代わりに、特定の(通常はガウスのバイナリ)分布を持つ確率単位を使用します。学習手順は、ギブスサンプリング(伝播:可視性が与えられたサンプルの隠蔽、再構築:隠されたサンプルが可視化されたサンプル、繰り返し)のいくつかのステップで構成され、再構成エラーを最小限に抑えるために重みを調整します。

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

RBMの背後にある直感は、いくつかの目に見えるランダム変数(異なるユーザーからの映画レビューなど)といくつかの隠れた変数(映画のジャンルやその他の内部機能など)があり、トレーニングのタスクはこれら2つの変数セットが実際にどのようになっているかを見つけることです互いに接続されています(この例の詳細については、こちらを参照してください)。

畳み込みニューラルネットワークはこれら2つに多少似ていますが、2つのレイヤー間で単一のグローバルウェイトマトリックスを学習する代わりに、ローカルに接続されたニューロンのセットを見つけることを目的としています。CNNは主に画像認識で使用されます。それらの名前は「畳み込み」演算子または単に「フィルター」に由来します。つまり、フィルターは、たたみ込みカーネルを簡単に変更することで、複雑な操作を簡単に実行できます。ガウスぼかしカーネルを適用すると、滑らかになります。Cannyカーネルを適用すると、すべてのエッジが表示されます。Gaborカーネルを適用して、勾配機能を取得します。

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

ここから画像)

畳み込みニューラルネットワークの目標は、定義済みのカーネルの1つを使用することではなく、データ固有のカーネル学習することです。アイデアはオートエンコーダーやRBMと同じです-多くの低レベルの機能(ユーザーレビューや画像ピクセルなど)を圧縮された高レベルの表現(映画のジャンルやエッジなど)に変換します-ただし、重みは次のニューロンからのみ学習されます空間的に互いに近い。

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

3つのモデルにはすべて、ユースケース、長所と短所がありますが、おそらく最も重要な特性は次のとおりです。

  1. オートエンコーダーは最も単純なものです。それらは直感的に理解でき、実装が簡単で、推論も簡単です(たとえば、RBMよりも優れたメタパラメーターを見つける方がはるかに簡単です)。
  2. RBMは生成的です。つまり、一部のデータベクトルのみを区別して他のベクトルを優先するオートエンコーダとは異なり、RBMは特定の結合分布を使用して新しいデータを生成することもできます。また、機能が豊富で柔軟性が高いと考えられています。
  3. CNNは非常に特殊なモデルであり、主に非常に特殊なタスクに使用されます(かなり一般的なタスクですが)。画像認識のトップレベルアルゴリズムのほとんどは、今日のCNNに何らかの形で基づいていますが、そのニッチ以外ではほとんど適用できません(たとえば、フィルムレビュー分析に畳み込みを使用する理由は何ですか?)。

UPD。

次元削減

nnバツバツmmm<nmその後、最も重要なコンポーネントが新しい基盤として使用されます。これらの各コンポーネントは、元の軸よりも優れたデータベクトルを記述する高度な機能と考えることができます。

nm

ディープアーキテクチャ

mc1cmバツ==1mwc

nmmk

ただし、新しいレイヤーを追加するだけではありません。各レイヤーで、前のものからのデータの可能な限り最高の表現を学習しようとします。

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

上の画像には、このような深いネットワークの例があります。通常のピクセルから始め、単純なフィルター、次に面要素、最後に顔全体に進みます!これがディープラーニングの本質です。

ここで、この例では画像データを使用して、空間的に近いピクセルのより大きな領域を順次取得していることに注意してください。同じように聞こえませんか?はい、それは深い畳み込みネットワークの例だからです。オートエンコーダーまたはRBMに基づいて、畳み込みを使用して局所性の重要性を強調します。そのため、CNNはオートエンコーダーやRBMとは多少異なります。

分類

ここで言及したモデルは、それ自体は分類アルゴリズムとして機能しません。代わりに、事前トレーニングに使用されます -低レベルで使いにくい表現(ピクセルなど)から高レベルの表現への変換を学習します。深い(またはそれほど深くない)ネットワークが事前トレーニングされると、入力ベクトルはより適切な表現に変換され、結果のベクトルは最終的に実際の分類器(SVMやロジスティック回帰など)に渡されます。上の画像では、一番下に実際に分類を行うコンポーネントがもう1つあることを意味します。


3
@ffriend非常に短く明確な説明。これらのトピックについてはたくさん書かれていますが、あなたのブリーフィングは素晴らしいです。「RockTheStar」あなたはより詳細な説明をしたい場合は、ヨシュア・ベンジオ(www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)のこの100ページの本読むことができます
Javierfdr

イベントのシーケンスを予測するために何を使用しますか?
スカン

2
@skan:RNNを見てください。具体的には、 LSTMは現在非常に人気があります。RNNは私の専門分野ではないため、詳細な質問を別の質問に入力して、適切な回答を得ることもできます。
-ffriend

15

これらのアーキテクチャはすべて、ニューラルネットワークとして解釈できます。AutoEncoderとConvolutional Networkの主な違いは、ネットワークのハードワイヤリングのレベルです。たたみ込みネットはほとんどハードワイヤードです。畳み込み演算は、イメージドメインではほとんどローカルであるため、ニューラルネットワークビューの接続数がはるかに少なくなります。画像領域でのプーリング(サブサンプリング)操作も、神経領域でのニューラル接続のハードワイヤードセットです。ネットワーク構造に対するこのようなトポロジの制約。このような制約が与えられると、CNNのトレーニングは、この畳み込み演算に最適な重みを学習します(実際には複数のフィルターがあります)。CNNは通常、畳み込み制約が適切な仮定である画像および音声タスクに使用されます。

対照的に、オートエンコーダーはネットワークのトポロジについてほとんど何も指定しません。より一般的です。アイデアは、入力を再構築するための適切なニューラル変換を​​見つけることです。これらは、エンコーダー(入力を非表示層に投影)とデコーダー(非表示層を出力に再投影)で構成されます。隠れ層は、潜在的な特徴または潜在的な要因のセットを学習します。リニアオートエンコーダは、PCAと同じサブスペースにまたがっています。データセットが与えられると、彼らはデータの基礎パターンを説明するための基礎の数を学びます。

RBMはニューラルネットワークでもあります。しかし、ネットワークの解釈はまったく異なります。RBMは、ネットワークをフィードフォワードではなく、隠れ変数と入力変数の同時確率分布を学習するという2部グラフとして解釈します。それらはグラフィカルモデルとして表示されます。AutoEncoderとCNNの両方が決定論的な関数を学習することに注意してください。一方、RBMは生成モデルです。学習した隠された表現からサンプルを生成できます。RBMをトレーニングするためのさまざまなアルゴリズムがあります。ただし、一日の終わりに、RBMを学習した後、そのネットワークの重みを使用して、それをフィードフォワードネットワークとして解釈できます。


6

RBMは、ある種の確率的自動エンコーダーと見なすことができます。実際、特定の条件下では同等になることが示されています。

それにもかかわらず、この同等性を示すことは、それらが異なる獣であると単に信じることよりもはるかに困難です。実際、よく見るとすぐに、3つの間で多くの類似点を見つけるのは難しいと思います。

たとえば、自動エンコーダー、RBM、およびCNNによって実装された関数を書き留めると、3つの完全に異なる数式が得られます。


1

RBMについてはあまり説明できませんが、オートエンコーダーとCNNは2つの異なる種類のものです。オートエンコーダーは、教師なしでトレーニングされるニューラルネットワークです。オートエンコーダの目標は、データを対応するコンパクトな表現に変換するエンコーダと、元のデータを再構築するデコーダを学習することにより、データのよりコンパクトな表現を見つけることです。オートエンコーダー(および元はRBM)のエンコーダー部分は、より深いアーキテクチャーの適切な初期重みを学習するために使用されてきましたが、他のアプリケーションもあります。基本的に、自動エンコーダーはデータのクラスタリングを学習します。対照的に、CNNという用語は、データから特徴を抽出するために畳み込み演算子(多くの場合、画像処理タスクに使用される場合は2D畳み込み)を使用するニューラルネットワークのタイプを指します。画像処理、フィルター、画像と複雑に絡み合っているものは、手元のタスク、たとえば分類タスクを解決するために自動的に学習されます。トレーニング基準が回帰/分類(教師あり)か再構成(教師なし)かは、アフィン変換の代替としての畳み込みの概念とは無関係です。CNNオートエンコーダーを使用することもできます。


オートエンコーダは、特定の入力として出力と同じ情報を生成するためのトレーニングを監視します。これは、ネットワークが適切なエンコードを見つけ、入力を非表示レイヤーのサイズに変換して戻す必要があるようにするためです。 。SOMやニューラルガスなどの統計ネットワークで使用されている、非賢明なトレーニングでは、出力としてネットワークに提示されるターゲット情報はありません。
SCI
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.