Identity Mapping
ディープラーニングにおける恒等写像(identity mapping)について解説します。スキップ接続がどのように勾配消失を防ぎ、Ultralytics YOLO26のようなニューラルネットワークの性能を向上させるかを学びます。
数学および線形代数学において、恒等写像または恒等行列とは、入力値とまったく同じ値を返す関数のことです。人工知能 (AI)およびディープラーニングの文脈では、Identity Mapping(恒等写像)は、非線形変換を行うことなく、入力データを畳み込みニューラルネットワーク (CNN)の次の層へ直接渡すために使用される特定のアーキテクチャ手法を指します。この概念は、2015年にResidual Networks (ResNet)が登場したことで広く普及し、高度なコンピュータビジョン (CV)モデルの構築およびトレーニング方法に革命をもたらしました。
Link to this sectionIdentity Mappingの仕組み#
ディープニューラルネットワークは、頻繁に勾配消失問題に直面します。誤差逆伝播法(バックプロパゲーション)の間、ネットワークの重みを更新するために使用される誤差信号は、層を逆方向に伝播するにつれて指数関数的に小さくなり、初期の層が効果的に学習できなくなります。Identity Mappingは、「スキップ接続」や「ショートカット接続」を作成することでこれを解決します。
シーケンシャルな層に対して、新しく参照されていないマッピングを強制的に学習させる代わりに、残差関数を学習するように設計されています。数学的には、ブロックへの入力を x とした場合、層は変換 F(x) を学習します。Identity Mappingは、元の入力 x をその変換の出力に直接加算し、最終出力 F(x) + x を生成します。これにより、極めて深いネットワークにおいても、勾配がモデルバックボーンを通じて直接、滞りなく流れるようになります。Google DeepMindやOpenAIのような著名なAI研究組織は、大規模な基盤モデルのトレーニングを安定させるために、これらのアーキテクチャ上のショートカットを頻繁に活用しています。
Link to this sectionIdentity MappingとIdentity Preservationの違い#
Identity Mappingと、名前の似ているIdentity Preservationを区別することは重要です。
Identity Mappingが機械学習 (ML)のトレーニングフローを最適化するために設計されたニューラルネットワークの構造的コーディング機能であるのに対し、Identity Preservationは別個のコンピュータビジョンタスクです。Identity Preservationは、物体追跡におけるビデオフレーム間や、生成AIワークフローにおける生成画像間において、特定の人物や物体の視覚的一貫性を維持することに重点を置いています。
Link to this section実社会での応用#
Identity Mappingは、今日実運用で広く使用されている多くの高精度モデルの基本的な構成要素として機能しています。
- 高度な物体検出: 最新のUltralytics YOLO26を含む現代のリアルタイムアーキテクチャは、特徴抽出層内にIdentity Mappingを含む高度な残差ブロックを利用しています。これにより、ネットワークの深さが増してもパフォーマンスを低下させることなく、自動運転のような複雑な環境下で高速かつ精密な検出を実行できます。
- 画像分類モデル: arXivやIEEE Xplore Digital Libraryといった学術リポジトリで広く文書化されている最先端のビジョンアーキテクチャは、何百もの層を持つモデルを正常にトレーニングするためにIdentity Mappingに依存しています。TensorFlowのようなハイレベルフレームワークは、これらのショートカットを使用して、巨大なデータセットから非常に複雑な階層的特徴を抽出します。
Link to this sectionPyTorchにおけるIdentity Mappingの実装#
カスタムニューラルネットワークを構築する際、PyTorchのようなディープラーニングフレームワークは、これらのショートカットを容易に実装するためのネイティブツールを提供しています。PyTorch nn.Identityモジュールを明示的に使用するか、あるいはnn.Moduleのフォワードパス内で単純に数学的な加算を適用することができます。
以下のスニペットは、Identity Mappingを利用した基本的な残差ブロックを示しています。データセット管理とモデルトレーニングのためにクラウドベースのUltralytics Platformを利用する開発者は、これらの高度に最適化されたアーキテクチャ構造をバックグラウンドで自動的に活用できることに留意してください。
import torch.nn as nn
class ResidualBlock(nn.Module):
def __init__(self, channels):
super().__init__()
# A simple convolutional layer for feature extraction
self.conv = nn.Conv2d(channels, channels, kernel_size=3, padding=1)
# Explicit identity mapping module
self.identity = nn.Identity()
def forward(self, x):
# The block output is the sum of the learned features and the identity map
return self.conv(x) + self.identity(x)





