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

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

パラメータの共有や重みの複製は、ディープラーニングでは見落とされがちな領域です。しかし、この単純な概念を理解することは、畳み込みニューラル ネットワークの内部をより広く理解するのに役立ちます。畳み込みニューラル ネットワーク (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% 動作不能! 写真の「見えないマント」で写真のプライバシー データを保護

ブログ    
ブログ    

推薦する

インテル子会社が自動運転向け5nm RISC-Vプロセッサをリリース

CES(コンシューマーエレクトロニクスショー)がラスベガスで盛況だ。インテル、マイクロソフト、グーグ...

AI が顧客中心主義で債権回収サイクルを変革する方法

[[431145]]過去1年間、COVID-19パンデミックにより、多くの業界が開発戦略を再考し、変...

PyTorch と TensorFlow のベンチマーク: どちらのプラットフォームが NLP モデル推論をより速く実行しますか?

PyTorch と TensorFlow のどちらが優れているかという議論は、決して終わることはあ...

「アルゴリズムとデータ構造」二分木の美しさ

[[349809]]序文今回レビューする内容は、データ構造トピックの「ツリー」です。ツリーなどのデー...

...

優秀な AI 技術者が不足しています。学生たちはこの波にまだ追いつくことができるでしょうか?

ディープラーニングは、機械学習の最も重要な分野の 1 つとして、近年急速に発展しています。膨大なデー...

自律走行車の障害物回避、経路計画、制御技術の詳細な説明

1 はじめにインテリジェント交通システムは、複雑な環境における困難な自律性と安全性の問題に対処するた...

...

会話型 AI は FMCG 業界でどのように導入されていますか?

今日、ますます多くの消費財 (CPG) 企業が、日用消費財 (FMCG) 事業に AI テクノロジー...

魅力的な勾配フリーニューラルネットワーク最適化手法

[[336078]]勾配降下法は、機械学習における最も重要なアイデアの 1 つです。最小化すべきコス...

天才少年・志慧君が志遠ロボットとともに会場に入場!脳としてAIモデル、目標価格は20万以下

Huaweiの才能あふれる若者Zhihuiの起業家デビューがついに登場!観衆の注目が集まる中、「Ex...

類似画像検索エンジンを効率的に開発するにはどうすればよいでしょうか?

翻訳者 | 朱 仙中校正 | 梁哲、孫淑娟プロジェクト紹介類似画像検索とは、関連するあらゆる画像を検...

IDC が製造業の予測を発表。AI によるリスク意思決定がリストに含まれているのはなぜですか?

製造業の実際の発展状況は、国の経済発展と社会の安定に関係しています。伝統的な製造業のインテリジェンス...

...