畳み込みニューラルネットワークにおけるパラメータ共有/重みの複製

畳み込みニューラルネットワークにおけるパラメータ共有/重みの複製

パラメータの共有や重みの複製は、ディープラーニングでは見落とされがちな領域です。しかし、この単純な概念を理解することは、畳み込みニューラル ネットワークの内部をより広く理解するのに役立ちます。畳み込みニューラル ネットワーク (CNN) は、ネットワークを介して供給される画像をアフィン変換に対して不変にすることができます。 この機能により、オフセット パターンを認識し、傾いた画像やわずかに歪んだ画像を識別することができます。

[[334801]]

アフィン不変性のこれらの特性は、CNN アーキテクチャの 3 つの主な特性によって導入されます。

  • 局所受容野
  • 重み共有(パラメータ共有)
  • 空間のサンプリング

この記事では、重み共有について説明し、CNN アーキテクチャにおける重み共有の用途と利点を理解します。この記事は、機械学習、特にディープラーニングに取り組んでいるあらゆるレベルの人々を対象としています。

導入

[[334802]]

まず、CNN の畳み込み層を頭の中で視覚化してみましょう。 。

CNN の畳み込み層 (conv 層) には、ニューロンとも呼ばれるユニットのグループが含まれています。

conv レイヤーには、レイヤー内にいくつかのフィルターも含まれており、これらは事前定義されたハイパーパラメータです。

レイヤー内のフィルターの数は、次のレイヤーへの入力として conv レイヤーによって作成されたアクティベーション/特徴マップの出力の深度次元を表します。

各フィルターには、レイヤー内の単一ユニットの局所受容野に対応する幅と高さが設定されています。入力データに適用されたフィルターは、畳み込み層の出力である特徴マップを生成します。

CNN のトレーニング段階では、フィルターの重み値を学習できます。畳み込み層の出力次元には深度コンポーネントがあり、出力の各セグメントをセグメント化すると、2D 特徴マップが得られます。単一の 2D 平面で使用されるフィルターには、同じ平面で使用されるすべてのフィルター間で共有される単一の重みが含まれます。

これの利点は、入力データの一部と入力データの別の部分で同じ特徴検出器が保持されることです。

畳み込み層の出力は特徴マップのセットであり、各特徴マップはユニット内の固定重みパラメータと入力データ間の畳み込み演算の結果です。

畳み込みニューラル ネットワーク レイヤーの基本的な特性は、入力レイヤーを介してレイヤーに入力される入力画像に対して行われたアフィン変換が、その特徴マップに反映されることです。

したがって、入力データのシフト、スキュー、または方向に対して、特徴マップは、入力データが受けた量だけシフト、スキュー、または方向付けられた出力を提供します。

理論を実践する

このセクションの目的は、畳み込みニューラル ネットワークで発生する重み共有の利点を明らかにすることです。

2 つの一般的な CNN アーキテクチャである LeNet と AlexNet の最初の畳み込み層で、異なる重み共有と重み共有を使用してトレーニング可能な重みの数を導出します。

実行する手順は次のとおりです。

1. 変換層の出力幅を取得する

(入力サイズ幅 - フィルタサイズ + (2 * パディング) / ストライド) + 1 = 畳み込み層の出力幅

  • 変換層のニューロン/ユニットの数を数える
  • 重み共有を使用しないトレーニング済みパラメータ(バイアスを含む)の数を数える
  • 重みを使用して共有されるトレーニングパラメータ(バイアスを含む)の数をカウントする

次の表は、畳み込み層内のトレーニング可能なパラメータ/重みの数を導出するために使用される AlexNet および LeNet CNN アーキテクチャからの情報を示しています。

アレックスネット

  • 変換層の出力幅: =((227-11)/4)+1=55(変換層の出力幅)
  • 畳み込み層のニューロン数/ユニット数 = 出力の高さ * 出力の幅 * 特徴マップの数 = 55*55*96 (畳み込み出力の数) = 290,400 ユニット
  • 畳み込み層のトレーニングパラメータまたは重みの数(重み共有を使用しない)= 290400 * ((11 * 11 * 3) + 1 バイアス) = ​​105,415,600
  • 重み共有を使用するトレーニングパラメータまたは重みの数 = 96 * ((11 * 11 * 3) + 1 バイアス) = ​​34944

レネット

  • 変換層の出力幅: =(((28–5)/1)+1=24(変換層の出力幅)
  • 畳み込み層のニューロン数/ユニット数 = 出力の高さ * 出力の幅 * 特徴マップの数 = 24*24*6 (畳み込み出力の数) = 3,456 ユニット
  • 畳み込み層内のトレーニング可能なパラメータまたは重みの数(重み共有を使用しない)= 3456 * ((5 * 5 * 1) + 1 バイアス) = ​​89,856
  • 重み共有を使用してトレーニングされたパラメータまたは重みの数 = 6 * ((5 * 5 * 1) + 1 バイアス) = ​​156

要約する

[[334803]]

明らかに、パラメータ共有により、Conv レイヤーの重みの数を減らすことができます。

パラメータ共有は、ネットワーク内のすべての conv レイヤーに使用されます。

パラメータの共有によりトレーニング時間が短縮されます。これは、バックプロパゲーション中に実行する必要がある重みの更新回数を減らすことによる直接的な利点です。

繰り返しになりますが、パラメータ共有は、畳み込み層内の平面内のユニットのフィルターと入力データとの間の畳み込みの結果として特徴マップが生成されるときに発生します。 このレイヤー プレーン内のすべてのユニットは同じ重みを共有します。そのため、重み/パラメーター共有と呼ばれます。

<<:  米メディア:人工知能(AI)は、人間の推論の欠点を伴わずにコンピューティングの利点を実現する

>>:  Microsoft Megvii の顔認識は 100% 動作不能! 写真の「見えないマント」で写真のプライバシー データを保護

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

...

2020年グローバルスマート教育会議でAI教育統合イノベーションの成果が発表されました

2020年8月20日から22日まで、北京で「人工知能と未来の教育」に重点を置いた、待望の「2020年...

自然言語処理のためのオープンソースツールトップ12

私たちの生活に浸透しているすべてのチャットボット、音声アシスタント、予測テキスト、その他の音声/テキ...

一枚の写真で3D顔モデリングを実現!中国科学院の博士課程学生による ECCV に関する新たな研究 | オープンソース

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

画像ベースの AI プロジェクト用のデータセットを準備する 7 つのステップ

翻訳者 |陳俊レビュー | Chonglouご存知のとおり、データセットはおそらく機械学習プロジェク...

Transformer のコンテキスト学習機能はどこから来るのでしょうか?

トランスフォーマーはなぜ優れたパフォーマンスを発揮するのでしょうか?多くの大規模言語モデルにもたらさ...

新しい小売トレンドにおけるビッグデータと人工知能の応用は何でしょうか?

2018年は新しい小売業が爆発的に増加した年でした。誰もがそれを実感したと思います。以前よりもコン...

ヘルスケアにおける人工知能の課題にどう対処するか

[[384554]]人工知能は、人類がより早く、より効果的に病気と闘い、より健康的な生活を送るのに役...

必ず読むべき28の古典的なプログラミングアルゴリズム

最初の 10 個は、聖書からのトップ 10 アルゴリズムです。発起者からの説明: Proofs fr...

AIロボットの出現により、運転訓練業界における知能の新たな章が開かれた。

近年、都市化と道路交通建設の加速により、自動車旅行の需要が継続的に増加しており、道路上の車両数の継続...

AIエンジニアリングは組織がAIを最大限に活用するのに役立ちます

「人工知能」という言葉は、最近はどこにでも見られるようになり、産業界におけるその応用に混乱が生じてお...