Convolutional Neural Network (CNN)
畳み込みニューラルネットワーク (CNN) が現代のコンピュータビジョンをどのように支えているかを探索しましょう。レイヤーやアプリケーションについて学び、Ultralytics YOLO26でリアルタイムAIを実行する方法を解説します。
畳み込みニューラルネットワーク(CNN)は、グリッド状のトポロジーを持つデータ、特にデジタル画像を処理するように設計された特殊なディープラーニングアーキテクチャです。視覚野の生体構造に着想を得たCNNは、入力データ内の空間的関係を維持する独自の能力を備えています。画像を長い数値のリストに平坦化する従来のニューラルネットワークとは異なり、CNNは画像の小さく重なり合う領域を分析して、単純なエッジやテクスチャから複雑な形状やオブジェクトに至るまでの特徴の階層を自動的に学習します。この機能により、CNNは最新のコンピュータビジョン(CV)システムの基盤技術となっています。
畳み込みニューラルネットワークの仕組み#
CNNの力は、予測精度の維持に不可欠な特徴を失うことなく、複雑な画像を処理しやすい形式に削減できる点にあります。これは、入力ボリュームを出力クラスや値に変換する一連の異なるレイヤーパイプラインを通じて実現されます。
- 畳み込み層: これはコアとなる構成要素です。入力画像の上を懐中電灯のようにスライドする、学習可能なフィルター(またはカーネル)のセットを使用します。各位置で、フィルターは畳み込みと呼ばれる数学的演算を実行し、水平線やカラーグラデーションなどの特定のパターンを強調する特徴マップを作成します。
- 活性化関数: 畳み込みの後、出力に非線形関数が適用されます。最も一般的な選択肢はReLU(Rectified Linear Unit)であり、負のピクセル値をゼロに変換します。これにより非線形性が導入され、ネットワークが単純な線形関係を超えた複雑なパターンを学習できるようになります。
- プーリング層: ダウンサンプリングとも呼ばれ、この層は特徴マップの次元数を削減します。最大プーリング(max pooling)などの技術により、領域内で最も重要な特徴(最高値)のみが保持されるため、計算負荷が軽減され、過学習(overfitting)の防止に役立ちます。
- 全結合層: 最終段階では、処理された特徴が平坦化され、標準的なニューラルネットワーク(NN)にフィードされます。この層は、前の層によって識別された高レベルの特徴を使用して、「猫」や「犬」などの最終的な分類または予測を行います。
実社会での応用#
CNNは、超人的な精度で視覚的タスクを自動化することにより、産業に変革をもたらしました。
- 医療診断: ヘルスケアにおいて、CNNは放射線科医が医療スキャン内の異常を人間の目よりも速く特定するのを支援します。たとえば、ディープラーニングモデルはMRIおよびCTスキャンを分析して、腫瘍や骨折の早期兆候を検出します。放射線医学におけるAIに関する研究は、これらのツールが診断の一貫性と速度をどのように向上させるかを示しています。
- 自律システム: 自動運転車は、周囲を認識するためにCNNに大きく依存しています。YOLO26などのモデルは、効率的なCNNバックボーンを活用してリアルタイムの物体検出を実行し、歩行者、交通標識、その他の車両を識別して、一瞬を争う運転上の決定を下します。
CNNとVision Transformer (ViT) の比較#
CNNは長年にわたってビジョンタスクの標準でしたが、Vision Transformer(ViT)と呼ばれる新しいアーキテクチャが登場しました。
- CNNは局所的な特徴を使用して画像を処理し、「帰納的バイアス」(近くのピクセルが関連しているという仮定)のおかげで小規模なデータセットで非常に効率的です。エッジデバイスでのリアルタイム推論を必要とするシナリオで優れた性能を発揮します。
- ViTは画像をパッチに分割し、グローバルな自己注意(self-attention)メカニズムを使用してそれらを処理します。これにより、画像全体にわたる長距離の依存関係を捉えることができますが、効果的にトレーニングするには通常、膨大なデータセットとより多くの計算能力が必要になります。
実装例#
最新のライブラリにより、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()開発のためのツール#
CNNの開発は、オープンソースツールの堅牢なエコシステムによってサポートされています。エンジニアは通常、カスタムアーキテクチャを構築するためにPyTorchやTensorFlowなどのフレームワークを使用します。これらのライブラリは、畳み込みと逆伝播(backpropagation)に必要な低レベルのテンソル演算を提供します。
データ収集からデプロイメントに至るまで、コンピュータビジョンプロジェクトのライフサイクルを合理化したいチームのために、Ultralytics Platformは包括的なソリューションを提供します。複雑なワークフローを簡素化し、開発者がインフラストラクチャの管理ではなく、CNNを適用してビジネス上の問題を解決することに集中できるようにします。さらに、モデルはONNXやTensorRTなどのフォーマットにエクスポートして、エッジデバイス上で高性能なデプロイメントを行うことができます。






