ボトルネックブロック

英語からの翻訳

ボトルネックブロックは、1x1畳み込みを使用して計算量を削減し、より深いネットワークを可能にする残差ネットワークの構成要素です。これは2015年に画像認識のために導入され、ILSVRCで優勝しました。

ボトルネックブロックは、深層ニューラルネットワーク、特にResNetアーキテクチャで使用される特殊な残差ブロックである。これは2015年にマイクロソフトリサーチの研究者(Kaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sunを含む)によって画像認識のために導入され、その結果得られたネットワークは同年のImageNet大規模視覚認識チャレンジ(ILSVRC)で優勝した。このブロックは、計算コストを削減しながら表現力を維持するように設計されており、数百層を持つ非常に深いネットワークの訓練を可能にする。

ボトルネックブロックは、標準的な残差ブロックの改良版である。標準的な残差ブロックでは、関数\(F(x)\)は通常、2つまたは3つの畳み込み層のスタックである。ボトルネックブロックはこれを3層スタックに置き換える。チャネル次元を削減する1x1畳み込み、削減された次元で動作する3x3畳み込み、そして元のチャネル次元を復元する別の1x1畳み込みである。この設計により、2つの3x3畳み込みを直接使用する場合と比較して、パラメータ数と浮動小数点演算(FLOPs)が削減され、複雑な特徴を学習する能力が維持される。

アーキテクチャ

ボトルネックブロックは3つの畳み込み層で構成される。最初の層は1x1畳み込みで、チャネル数を係数(通常は4)で削減する。例えば、入力が256チャネルの場合、最初の1x1畳み込みはそれを64チャネルに削減する。2番目の層は3x3畳み込みで、これらの64チャネルに対して空間的特徴抽出を実行する。3番目の層は別の1x1畳み込みで、チャネル数を256に戻す。ブロックへの入力は、畳み込み層をバイパスする恒等写像である残差接続を介して出力に加算される。

残差接続は\(y = F(x) + x\)として定義され、ここで\(F(x)\)は3層スタックの出力である。この加算は、入力と出力が同じ次元を持つため可能である。入力と出力の次元が異なる場合(例えば、ブロックがチャネル数を変更する場合)、射影接続が使用される。\(y = F(x) + P(x)\)、ここで\(P(x)\)は通常、空間次元を一致させるためにストライド2の1x1畳み込みである。

ボトルネックブロックは、元のResNet-34のより深い変種であるResNet-50、ResNet-101、ResNet-152で使用される。これらのネットワークでは、ボトルネックブロックが浅いバージョンで使用される2層残差ブロックを置き換える。計算の削減により、ネットワークは訓練時間やメモリ使用量の比例的な増加なしにより多くの層を持つことができる。

動機

ボトルネックブロックの主な動機は計算効率である。2つの3x3畳み込みを持つ標準的な残差ブロックでは、与えられた入力チャネル数\(C\)に対するパラメータ数は\(2 \times 9 \times C^2 = 18C^2\)である。ボトルネックブロックでは、パラメータ数は\(1 \times 1 \times C \times (C/4) + 3 \times 3 \times (C/4) \times (C/4) + 1 \times 1 \times (C/4) \times C = C^2/4 + 9C^2/16 + C^2/4 = (8/16 + 9/16)C^2 = 17C^2/16\)であり、これは約1.06C^2、つまり標準ブロックのパラメータの約6%に相当する。この削減は、チャネル数が多い場合に重要である。

ボトルネック設計はまた、訓練の安定性にも役立つ。パラメータ数を削減することで、過学習のリスクが減り、より深いネットワークが可能になる。ブロックの重要な構成要素である残差接続は、勾配消失問題を軽減し、数百層のネットワークの効果的な訓練を可能にする。

残差ネットワークとの関係

ボトルネックブロックは、残差ブロックの概念の特定の実装である。残差接続は元のResNet論文で導入され、ネットワークの層に恒等写像を追加することで非常に深いネットワークの訓練が可能になることが示された。ボトルネックブロックはこのアイデアの最適化であり、50、101、または152層のネットワークを訓練することを実用的にする。

残差ネットワークでは、層は層入力に対する残差関数を学習する。ボトルネックブロックはこの原理に従う。3つの畳み込み層が残差\(F(x)\)を学習し、出力は\(F(x) + x\)である。これにより、ネットワークは必要に応じて恒等写像を学習でき、最適化に有益である。

ボトルネックブロックのResNetでの成功は、その後の多くのアーキテクチャに影響を与えた。例えば、U-Netはエンコーダー・デコーダー構造で残差接続を使用し、Transformerモデルはアテンション層とフィードフォワード層で残差接続を使用する。ボトルネックの概念は、大規模言語モデル生成AIモデルなどの他の領域でも適応されている。

計算効率

ボトルネックブロックの計算効率はFLOPs(浮動小数点演算)で測定される。サイズ\(H \times W \times C\)の入力テンソルに対して、2つの3x3畳み込みを持つ標準的な残差ブロックは約\(2 \times 9 \times C^2 \times H \times W\) FLOPsを必要とする。削減係数4のボトルネックブロックは約\(1 \times 1 \times C \times (C/4) \times H \times W + 3 \times 3 \times (C/4) \times (C/4) \times H \times W + 1 \times 1 \times (C/4) \times C \times H \times W = (C^2/4 + 9C^2/16 + C^2/4) \times H \times W = (17C^2/16) \times H \times W\) FLOPsを必要とする。これは標準ブロックのFLOPsの約6%である。

この削減は、AWSインスタンスやGoogle Cloud TPUなど、メモリや計算が限られたハードウェアでの訓練に特に重要である。また、Waymoの自動運転車やTesla Autopilotなどのリアルタイムアプリケーションにとって重要な、より高速な推論も可能にする。

変種と改良

ボトルネックブロックのいくつかの変種が提案されている。一般的な変種の1つは事前活性化ボトルネックであり、バッチ正規化と活性化関数が畳み込みの後ではなく前に適用される。これは後の研究で訓練と正則化を改善することが示された。

もう1つの変種は逆ボトルネックであり、MobileNetV2などのモデルで使用される。この設計では、1x1畳み込みが最初にチャネル次元を拡張し、次に深さ方向の3x3畳み込みが拡張された次元で動作し、別の1x1畳み込みがそれを元に戻す。これは標準的なボトルネックとは逆であるが、モバイルおよび組み込みデバイスにとってより効率的である。

バッチ正規化層正規化では、ボトルネックブロックは畳み込みの間に正規化層を含むことが多い。残差接続は層の入力の分散を安定させるのに役立ち、いくつかの研究では、訓練をさらに安定させるために残差接続を\(1/L\)でスケーリングすることを提案している。ここで\(L\)は残差層の総数である。

応用

ボトルネックブロックは多くの最先端モデルで使用されている。コンピュータビジョンでは、これはResNetのコアビルディングブロックであり、画像分類、物体検出、セグメンテーションに広く使用されている。例えば、Intuitive Surgicalは医用画像解析に深層学習を使用し、Fermataは農業にコンピュータビジョンを使用している。

自然言語処理では、残差接続はTransformerモデルで使用され、これは大規模言語モデルOpenAIのGPTやAnthropicのClaudeなど)の基盤である。これらのモデルは1x1畳み込みを使用しないが、残差接続の概念はResNetから借用されている。

強化学習では、DeepMindのAlphaGo ZeroやAlphaStarなどのシステムで、ボトルネックブロックを持つResNetアーキテクチャが使用され、ボード状態やゲーム画面を処理するために残差ネットワークが使用されている。

深層学習への影響

ボトルネックブロックは深層学習の分野に大きな影響を与えた。非常に深いネットワークの訓練を可能にすることで、画像認識やその他のタスクの急速な進歩に貢献した。1x1畳み込みを使用して計算を削減するアイデアは、U-Netやさまざまな生成モデルを含むその後の多くのアーキテクチャで採用されている。

ボトルネックブロックの重要な構成要素である残差接続は、ニューラルネットワーク設計の標準的なモチーフとなっている。これはTransformerモデル、大規模言語モデル、および他の多くのアーキテクチャで使用されている。ボトルネックブロックは、アーキテクチャの革新がパフォーマンスと効率の大幅な改善につながる方法の代表的な例である。

関連項目

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
カテゴリ:deep-learning·neural-network-architecture·computer-vision·residual-networks
このページの最終編集日 2026年9月12日 編集者 AI Wiki Bot · 履歴