[機械学習] UFLDLノート-畳み込みニューラルネットワーク-完全接続、部分接続、畳み込み、プーリング



Ufldl Notes Convolutional Neural Network Full Connection



序文

この記事は、畳み込みニューラルネットワーク(畳み込みニューラルネットワーク)を学習するときの私のメモです。主な参考資料は、UFLDLチュートリアルのAndrewNg教師の関連する章です。インターネット上にはCNNに関するメモがたくさんあります。この記事では、さまざまな詳細については詳しく説明しませんが、混乱しやすく理解しにくいアルゴリズムの詳細についてのみ説明します。これらの詳細は、過去2年間の学生との交流や議論にまとめられています。
記事セクションは次のように構成されています。
1)完全に接続され、ローカルに接続されている
2)畳み込み
3)プーリング
4)参考文献

機械学習は内容が豊富で、多くの数学的知識が必要です。それは地球に熟考する必要があります、近道は決してありません、そして迅速な方法はありません!どんな科目でも、勉強することが重要なのは、興味と忍耐力、そして平和な態度です。

1.完全に接続され、ローカルに接続されている

1.1多層ニューラルネットワーク

UFLDLは、2種類のニューラルネットワークについて説明しました。1つは多層ニューラルネットワークです(参照注: [機械学習] Coursera MLノート-ニューラルネットワーク(表現) )、もう1つは、この記事で焦点を当てる畳み込みニューラルネットワークです。 2つのニューラルネットワークは完全に独立しているわけではありません。 CNNは、通常の多層ニューラルネットワークの高度な進化バージョンと見なすことができます。これは、より強力な特徴学習能力を備えており、さまざまなタスクで優れたパフォーマンスを発揮します。それはほとんどすべての機械を雷のように押しつぶします。学習アルゴリズム。しかし、その性質上、CNNは依然としてニューラルネットワークのカテゴリに属しています。順伝播と逆伝播の計算に関しては、実際には通常の多層ニューラルネットワークと本質的な違いはありません。

CNNを探索する前に、まず最も一般的な多層ニューラルネットワークを確認してください。



画像
多層ニューラルネットワークは、完全に接続されたネットワーク構造の一種です。つまり、隠れ層の各ニューロンは、前の層のすべてのニューロンに接続されています。このニューラルネットワークは、入力特徴をレイヤーごとにマッピングし、最終的に新しい特徴空間で分類するための分類器としてよりよく使用されます。

1.2完全接続と部分接続

次の図から、完全接続とローカル接続をうまく比較できます。

画像
左上: 完全に接続されたネットワーク。 各隠しユニットは、完全に接続された方法である画像の各ピクセルに接続されます。 100万の隠れ層ニューロンを持つ1000x1000ピクセルの画像があり、各隠れ層ユニットが画像の各ピクセルに接続されている場合、1000x1000x1000000 = 10 ^ 12の接続があります。これは、10 ^ 12の重みパラメーターです。
右上: ネットワークにローカルに接続されています。 各隠しユニットは、入力画像の小さな隣接領域のみを接続するため、これはローカル接続方法です。各隠れ層ユニットは、画像内の同じ位置ユニットの近くにある10x10ウィンドウに接続され、100万個の隠れ層ニューロンには100w x 100の接続、つまり10 ^ 8パラメーターしかありません。パラメータの数は、元のパラメータと比較して4桁減少しています。

ネットワークが部分的に接続されているという考えは、生物学における視覚システムの構造に触発されています。視覚野のニューロンは局所的に情報を受け取ります(つまり、これらのニューロンは特定の領域の刺激にのみ反応します)。

このようなローカル接続構造を使用すると、一方では学習する必要のあるパラメータの数が減り、他方では順方向および逆方向の伝播の計算速度が向上します。この構造には、ローカル認識能力もあります。人間の視覚系の認知スタイルと一致します。同時に、畳み込みニューラルネットワークは真にエンドツーエンドの学習を実現します。ネットワーク構造には、特徴抽出と分類の2つの部分があり、実際のビジネスでのアルゴリズムの展開により適しています。

1.3畳み込みニューラルネットワークの構造

UFLDLによって与えられる畳み込みニューラルネットワークの構造は次のとおりです。



UFLDL CNN

CodeMealsによって描画される畳み込みニューラルネットワーク構造は次のとおりです。
CNN
この図は、畳み込み層、プーリング層、CNN構造の入力から出力までの最後の完全に接続された層、およびさまざまな層の関係間の接続を明確に示しています。

2.畳み込み

2.1畳み込み演算と機能マップ

ローカル接続の具体的な実装は、いわゆる畳み込み演算です。ただし、これは実際の畳み込み演算ではなく、関連する演算(つまり、同じ型行列の2つの対応する要素を乗算して結果を加算する)であることに注意してください。ただし、畳み込みを使用して計算できるためです。それはそのような名前で使われます、後ろでチャートと公式を通してこの問題を説明します。
最も古典的な畳み込み操作図を考えてください。

画像
UFLDLのこのGIF画像は、基本的に、畳み込みニューラルネットワークのコア計算-畳み込み演算を説明しています。ここで実際に実行されるのは関連する操作です。実際の畳み込みの代わりに(真の畳み込み演算=畳み込みカーネルを180度回転してから、行列を使用して関連する演算を実行します)!

機能マップの説明
畳み込み操作の本質は実際にはアクティブです。つまり、大きなサイズの画像内のパッチが1つずつアクティブ化され、結果のアクティブ化値が組み合わされて畳み込み特徴マップ(特徴マップ)が形成されます。

フィーチャマップのサイズ
画像サイズがr * cで、畳み込みカーネルサイズがa * bであるとすると、結果のフィーチャマップサイズは次のようになります。(r-a + 1)×(c-b + 1)

2.2畳み込みカーネル

畳み込みカーネル(カーネル)は、重み行列または重み行列のグループであり、各重み行列は、畳み込みカーネル(立方体またはボリューム)を形成するために重ね合わされた正方形の複数の重み行列です。



画像
2つの点に注意してください:
1)畳み込みカーネル(カーネル)の重みを学習する必要があります。CNNトレーニングは、これらの畳み込みカーネルの重み行列を学習することです。
2)畳み込みカーネル(カーネル)内の重み行列の数と入力レイヤー(画像レイヤーやプーリングレイヤーなど)の特徴マップの数が同じであるか、一貫していない可能性があります。

2.3畳み込みニューラルネットワークの順伝播における畳み込み

これが説明する写真です 畳み込みニューラルネットワークの順伝播における畳み込み操作プロセス

画像
多くの学生は、たたみ込みカーネル、たたみ込みカーネルの構造、およびたたみ込み計算のプロセスに混乱します。上の図を例にとると、Pooling Layerには3つの特徴マップがあり、Conv Layerには4つの畳み込みカーネルに対応する4つの特徴マップがあり、各畳み込みカーネルには3つの重み行列があります。畳み込み操作中、畳み込みカーネルの3つの重み行列は、プーリングレイヤーの3つの特徴マップに対応し、計算プロセスは図のようになります。

畳み込みカーネルの構造は非常に柔軟です。上の図はその1つです。つまり、畳み込みカーネルの重み行列の数は、入力層の特徴マップの数と同じです。畳み込みこのとき、畳み込みカーネルの重み行列は、入力層の特徴マップに対応する畳み込み演算を実行し、出力温度特徴マップを重ね合わせて合計し、アクティブ化(Sigmoidなど)して特徴マップを生成します。さらに、畳み込みカーネルには1つの重み行列(または同じ重み行列)しか存在できません。畳み込みの場合、重み行列は入力レイヤーのすべての特徴マップを使用して畳み込み演算を実行し、出力の一時的な特徴マップSumを重ね合わせてアクティブ化し(たとえば、Sigmoid)、特徴マップを生成します。

2.4畳み込み演算の式

前の図を変更して、畳み込み演算の数学的形式を理解します。

画像
式は次のとおりです。
l +1番目の畳み込み層i番目の特徴マップa(l + 1)計算:
画像
ここで使用されている計算記号⊙に注意してください。 関連する操作 、CNNでの畳み込み計算は本質的に関連する操作であるため、それを理解する必要があります。

2.5畳み込みニューラルネットワークの学習とは何ですか?

畳み込みニューラルネットワーク学習の畳み込みカーネルとは何ですか?実際、ローカルパターン検出器を学習していると見なすことができるため、画像を畳み込むプロセスは、ローカルパターン検出プロセスと見なすことができます。これは実際には、SiftやSurfなどのローカル特徴抽出プロセスに似ています。
畳み込みカーネルを視覚化すると、各ローカルパターンを観察できます。視覚化効果は、スパースオートエンコーダ演習での重みの視覚化の結果に似ています。

画像

3.プーリング

3.1プーリング操作

プーリング(プーリング)は実際に統計的特徴を計算し、通常は平均または最大を取ります。これらの統計的特徴は、次元がはるかに低いだけでなく、結果を改善します(過剰適合は容易ではありません)。
古典的なプーリング操作図(一致しない領域のプーリング)を考えてください。

画像
2つの点に注意してください:
1)計算方法に関しては、プーリングも畳み込み演算によって行われますが、プーリング畳み込みカーネルのパラメーターは固定されているため(少なくともUFLDLでは)、重み行列のパラメーターを学習する必要はありません。
2)プーリングレイヤーのフィーチャマップは、コンバージョンレイヤーのフィーチャマップに対応しています。

3.2平均プーリング操作

平均プーリング操作、カーネルサイズとストライドの設定に注意してください。

画像

最大プーリング操作図:
最大プーリング
max-poolingは、各プーリングの最大値の位置を記録するために注意を払う必要があります。これは、エラーをバックプロパゲーションするときに使用する必要があります。

max-poolingとmean-poolingの違いについて:
maxとaverageはどちらも、抽象化に相当する地域の特徴を抽出しています。抽象化とは、不要な情報を除外することです(もちろん、情報の詳細も失われます)。したがって、抽象化では、レベルでより適切に識別できます。
最大と平均の効果が同じであるかどうかに関しては、それでも認識される必要がある画像の詳細に依存します。必ずしもそうとは限りませんが、差は2%を超えないと言われています。
ただし、注意するために、特徴抽出を評価する際のエラーは、主に2つの側面から発生します。
(1)近隣サイズの制限による推定値の分散が大きくなり、平均によってこの誤差を減らすことができます。
(2)畳み込み層パラメーターの誤差は推定平均の偏差を引き起こし、maxはこの誤差を減らすことができます。
言い換えると、averageは背景をよりよく保持し、maxはテクスチャをよりよく抽出します。フォントなどを認識している場合は、最大を考慮する必要があります。

3.3畳み込みニューラルネットワークの順伝播におけるプーリング

これは、畳み込みニューラルネットワークの順伝播におけるプーリング操作プロセスを説明するための図です。

画像
プーリング操作は比較的理解しやすく、CNNに対応する構造もよく理解されています。つまり、畳み込み層とプーリング層の間の特徴マップは1対1で対応しています。

参照

2.4なぜ過剰適合が発生するのですか?

UFLDL-畳み込みを使用した特徴抽出
http://ufldl.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
UFLDL-プーリング
http://ufldl.stanford.edu/wiki/index.php/Pooling
データマイニングシリーズ(10)-畳み込みニューラルネットワークアルゴリズムの実装
http://www.cnblogs.com/fengfenggirl/p/cnn_implement.html