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









