Convolutional Neural Network (CNN)
畳み込みニューラルネットワーク (CNN) が現代のコンピュータビジョンをどのように支えているかを探索しましょう。レイヤーやアプリケーションについて学び、Ultralytics YOLO26でリアルタイムAIを実行する方法を解説します。
畳み込みニューラルネットワーク (CNN) は、格子状のトポロジを持つデータ、特にデジタル画像を処理するために設計された特殊なディープラーニングアーキテクチャです。生物の視覚野の構造に着想を得たCNNは、入力データ内の空間的な関係性を保持する独自の能力を備えています。画像を長い数値のリストにフラット化する従来のニューラルネットワークとは異なり、CNNは画像内の重なり合う小さな領域を分析することで、単純なエッジやテクスチャから複雑な形状や物体に至るまで、特徴の階層を自動的に学習します。この能力が、現代のコンピュータビジョン (CV) システムを支える基盤技術となっています。
Link to this section畳み込みニューラルネットワークの仕組み#
CNNの力は、予測精度の維持に不可欠な特徴を失うことなく、複雑な画像を処理しやすい形式に削減できる点にあります。これは、入力ボリュームを出力クラスや値に変換する一連の異なるレイヤーパイプラインを通じて実現されます。
- 畳み込み層 (Convolution Layer): これは中核となる構成要素です。学習可能なフィルター(またはカーネル)のセットを使用し、懐中電灯のように入力画像上をスライドさせます。各位置でフィルターは畳み込みと呼ばれる数学的演算を行い、水平線や色勾配などの特定のパターンを強調する特徴マップを作成します。
- 活性化関数 (Activation Function): 畳み込みの後、出力に対して非線形関数が適用されます。最も一般的なのはReLU (Rectified Linear Unit)であり、これは負のピクセル値をゼロに変換します。これにより非線形性が導入され、単純な線形関係を超えた複雑なパターンをネットワークが学習できるようになります。
- プーリング層 (Pooling Layer): ダウンサンプリングとも呼ばれるこの層は、特徴マップの次元を削減します。max poolingのような手法では、領域内で最も重要な特徴(最大値)のみを保持することで計算負荷を軽減し、過学習 (overfitting)を防ぐのに役立ちます。
- 全結合層 (Fully Connected Layer): 最終段階では、処理された特徴が平坦化され、標準的なニューラルネットワーク (NN)に供給されます。この層は、先行する層で特定された高レベルの特徴を使用して、「猫」や「犬」といった最終的な分類や予測を行います。
Link to this section実社会での応用#
CNNは、人間を超える精度で視覚タスクを自動化し、あらゆる産業を変革してきました。
- 医療診断: ヘルスケア分野において、CNNは医学的スキャン画像内の異常を人間の目よりも高速に特定することで放射線科医を支援します。例えば、ディープラーニングモデルはMRIやCTスキャンを分析し、腫瘍や骨折の初期徴候を検出します。放射線医学におけるAIに関する研究では、これらのツールが診断の一貫性と速度をいかに向上させるかが強調されています。
- 自律走行システム: 自動運転車は、周囲環境を認識するためにCNNに大きく依存しています。YOLO26のようなモデルは、効率的なCNNバックボーンを活用してリアルタイムの物体検出を実行し、歩行者、交通標識、その他の車両を識別して瞬時の運転判断を下します。
Link to this sectionCNNとVision Transformer (ViT) の比較#
長らくビジョンのタスクにおいてCNNが標準でしたが、新たにVision Transformer (ViT)と呼ばれるアーキテクチャが登場しました。
- CNNは局所的な特徴を使用して画像を処理し、「帰納バイアス」(近接するピクセルは関連しているという仮定)のおかげで小規模なデータセットでも非常に効率的に動作します。エッジデバイスでのリアルタイム推論が必要なシナリオで優れた性能を発揮します。
- ViTは画像をパッチに分割し、グローバルな自己注意 (self-attention)メカニズムを使用してそれらを処理します。これにより画像全体の広範囲な依存関係を捉えることができますが、効果的にトレーニングするには通常、膨大なデータセットとより高い計算能力が必要となります。
Link to this section実装例#
現代のライブラリを使えば、CNNベースのモデルを簡単に利用できます。ultralyticsパッケージは、高速推論のために高度に最適化されたCNNアーキテクチャを特徴とするYOLO26のような最先端モデルへのアクセスを提供します。
次の例では、事前学習済みのCNNモデルをロードして予測を実行する方法を示します。
from ultralytics import YOLO
# Load a YOLO26 model, which uses an advanced CNN architecture
model = YOLO("yolo26n.pt")
# Run inference on an image to identify objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the prediction results
results[0].show()Link to this section開発のためのツール#
CNNの開発は、オープンソースツールの強固なエコシステムによって支えられています。エンジニアは通常、PyTorchやTensorFlowといったフレームワークを使用してカスタムアーキテクチャを構築します。これらのライブラリは、畳み込みや逆伝播 (backpropagation)に必要な低レベルのテンソル演算を提供します。
For teams looking to streamline the lifecycle of computer vision projects—from data collection to deployment—the Ultralytics Platform offers a comprehensive solution. It simplifies complex workflows, allowing developers to focus on applying CNNs to solve business problems rather than managing infrastructure. Additionally, models can be exported to formats like ONNX or TensorRT for high-performance deployment on edge devices.






