Convolution
コンピュータービジョンとディープラーニングにおける畳み込みの基礎を探ります。カーネルと特徴マップがUltralytics YOLO26を支え、リアルタイムタスクを実現する仕組みを学びます。
畳み込みは、現代のコンピュータビジョン (CV)およびディープラーニング (DL)システムの中核を成す基本的な数学演算です。画像処理において、畳み込みは入力画像上で小さなフィルター(カーネルと呼ばれることが多い)をスライドさせ、重要な特徴のマップを作成します。この処理により、人工知能 (AI)モデルは、人の介入なしにエッジ、テクスチャ、形状などのパターンを自動的に学習して識別できます。従来の機械学習 (ML)では手動の特徴抽出が必要になることが多いのに対し、畳み込みによってネットワークは視覚データを階層的に理解できるようになります。単純な線から始まり、顔や車両などの複雑な物体へと理解を発展させます。
畳み込みの仕組み#
この演算では、入力データ上でフィルターを移動させ、要素ごとの乗算を実行して結果を合計し、各位置について1つの値を生成します。この出力は特徴マップと呼ばれます。
- カーネル: 特定の特徴を検出する小さな数値行列(重み)です。たとえば、Sobelオペレーターは、垂直または水平のエッジの検出に使用される特定の種類のカーネルです。
- スライディングウィンドウ: カーネルは、「ストライド」と呼ばれる定義済みのステップサイズを使用して画像上を移動します。この空間フィルタリング処理により、画像の理解に不可欠なピクセル間の関係が保持されます。
- 層の階層: 畳み込みニューラルネットワーク (CNNs)のような深層アーキテクチャでは、初期層が低レベルの詳細を捉え、より深い層がそれらを組み合わせて高レベルの概念を形成します。
畳み込みと関連概念の比較#
畳み込みを完全に理解するには、ニューラルネットワーク (NN)の文献でよく見られる類似用語と区別することが役立ちます。
- 相互相関と畳み込み: 数学的には、真の畳み込みでは適用前にカーネルを反転させます。しかし、PyTorchライブラリを含むほとんどのディープラーニングフレームワークは、カーネルを反転させない「相互相関」を実装しています。それでもこれを「畳み込み」と呼ぶのは、重みがトレーニング中に学習されるためであり、性能上は反転の違いが意味を持たないからです。
- 畳み込みとアテンション: 畳み込みが情報を局所的(隣接するピクセル)に処理する一方で、アテンションメカニズムによってモデルは画像内の離れた部分同士を同時に関連付けることができます。YOLO26のような現代のアーキテクチャでは、リアルタイム推論の速度を維持するため、高度に最適化された畳み込み層を使用することがよくあります。これは、アテンション層の計算負荷がより高くなる可能性があるためです。
実世界での利用例#
畳み込みの効率性により、堅牢な知覚システムを実現するAIがさまざまな業界に革新をもたらしています。
-
医療診断: 医療におけるAIの分野では、畳み込みが高解像度のMRIスキャンの分析に役立ちます。異常を強調するよう設計された特定のカーネルを使用することで、モデルは人間の専門家に匹敵する精度で腫瘍や骨折の初期兆候を検出できます。
-
自律航法: 自動運転車は、リアルタイムの物体検出に畳み込みを利用しています。車両が移動すると、畳み込み層がビデオフィードを処理し、歩行者、車線マーカー、交通標識を即座に識別します。これは、自動車分野におけるAIの安全性を支える重要な要素です。
Ultralyticsを使用したPythonの例#
Pythonを使用すると、最先端モデル内の畳み込み層を検査できます。次の例では、YOLO26モデルを読み込み、初期層がtorch.nnを介して実装された標準的な畳み込み演算を使用していることを検証します。
import torch.nn as nn
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Access the first layer of the model's backbone
first_layer = model.model.model[0]
# Verify it is a Convolutional layer
if isinstance(first_layer.conv, nn.Conv2d):
print("Success: The first layer is a standard convolution.")
print(f"Kernel size: {first_layer.conv.kernel_size}")エッジAIにおいて畳み込みが重要な理由#
畳み込み演算は高度に最適化できるため、計算リソースが限られているエッジAIのデプロイに適しています。同じカーネルが画像全体で共有されるため(パラメータ共有)、モデルに必要なメモリは従来の全結合アーキテクチャより大幅に少なくなります。この効率性により、高度なモデルをスマートフォンやIoTデバイス上で実行できます。
これらの演算をカスタムデータセットに活用したいチーム向けに、Ultralytics Platformは、複雑なインフラストラクチャを管理することなく画像のアノテーションや畳み込みベースのモデルのトレーニングを行えるシームレスな環境を提供します。転移学習を使用すると、事前トレーニング済みの畳み込み重みをファインチューニングし、最小限のトレーニングデータで新しい物体を認識できるようになります。






