この記事では、あなたは学びます
- CNNとは何ですか?
- フィーチャーマップとは
- 最大プーリングとは
- さまざまな深層学習タスクの損失関数
簡単な紹介
この一連の記事は、深層学習がどのように機能するか、タスクとは何か、ネットワークアーキテクチャ、一方が他方より優れている理由を直感的に理解することを目的としています。「それをどのように実装するか」という精神には、具体的なことはほとんどありません。細部に至るまで詳しく説明すると、ほとんどの視聴者にとって資料が複雑になりすぎます。計算グラフがどのように機能するか、または畳み込み層を介した逆伝播がどのように機能するかについては、すでに書かれています。そして、最も重要なことは、それは私が説明するよりもはるかによく書かれていることです。
前回の記事では、FCNNについて説明しました。FCNNとは何か、問題は何かです。これらの問題の解決策は、畳み込みニューラルネットワークのアーキテクチャにあります。
畳み込みニューラルネットワーク(CNN)
畳み込み神経ネットワーク。次のようになります(vgg-16アーキテクチャ):
完全にメッシュ化されたネットワークとの違いは何ですか?隠しレイヤーにコンボリューション操作が追加されました。
畳み込みは次のようになります。
画像を取得し(今のところ-シングルチャネル)、トレーニングパラメータで構成されるコンボリューションカーネル(マトリックス)を取得し、カーネル(通常は3x3)を画像に「重ね合わせ」、カーネルにヒットした画像のすべてのピクセル値の要素ごとの乗算を実行します。次に、これをすべて合計し(バイアスパラメータ-オフセットも追加する必要があります)、いくつかの数値を取得します。この番号は、出力レイヤーの要素です。このコアをイメージに沿っていくつかのステップ(ストライド)で移動し、次の要素を取得します。そのような要素から新しいマトリックスが構築され、次の畳み込みカーネルがそれに適用されます(アクティベーション関数が適用された後)。入力画像が3チャンネルの場合、コンボリューションカーネルも3チャンネル(フィルター)です。
しかし、ここではすべてがそれほど単純ではありません。畳み込み後に取得するこれらのマトリックスは、前のマトリックスの一部の機能を他の形式で格納するため、機能マップと呼ばれます。実際には、複数の畳み込みフィルターが一度に使用されます。これは、次のコンボリューションレイヤーにできるだけ多くの機能を「もたらす」ために行われます。コンボリューションの各レイヤーで、入力画像にあった機能が抽象的な形でますます提示されます。
さらにいくつかのメモ:
- 折りたたむと、フィーチャーマップは小さくなります(幅と高さ)。場合によっては、幅と高さをより弱く縮小するため、またはまったく縮小しないために(同じコンボリューション)、ゼロパディング方法が使用されます。入力フィーチャマップの「輪郭に沿って」ゼロを埋めます。
- 最新の畳み込み層の後、分類および回帰タスクは、完全に接続されたいくつかの層を使用します。
なぜFCNNよりも優れているのですか
- レイヤー間でトレーニング可能なパラメーターを少なくすることができます
- これで、画像から特徴を抽出するときに、単一のピクセルだけでなく、その近くのピクセルも考慮に入れます(画像内の特定のパターンを識別します)
最大プーリング
これは次のように
なります。フィルターを使用して機能マップを「スライド」し、最も重要な(入力信号に関して、ある値として)機能のみを選択し、機能マップの次元を減らします。フィルタに分類される値を平均すると、平均(加重)プーリングもありますが、実際には、より適切なのは最大プーリングです。
- このレイヤーにはトレーニング可能なパラメーターがありません
損失関数
ネットワークXを入力に供給し、出力に到達し、損失関数の値を計算し、逆伝播アルゴリズムを実行します。これが、最新のニューラルネットワークが学習する方法です(今のところ、監視付き学習についてのみ説明しています)。
ニューラルネットワークが解決するタスクに応じて、さまざまな損失関数が使用されます。
- 回帰問題。ほとんどの場合、平均二乗誤差(MSE)関数を使用します。
- 分類の問題。それらは主にクロスエントロピー損失を使用します。
他のタスクについてはまだ検討していません。これについては、次の記事で説明します。なぜそのようなタスクのためにそのような機能が正確にあるのですか?ここでは、最大尤度の推定と数学を入力する必要があります。誰が気にする-私はそれについてここに書いた。
結論
また、複雑なものを含む、ニューラルネットワークアーキテクチャで使用される2つのものに注意を向けたいと思います。ドロップアウト(ここで読むことができます)とバッチ正規化です。読むことを強くお勧めします。
次の記事では、CNNアーキテクチャを分析し、一方が他方より優れている理由を理解します。