CNNとは
CNN(Convolutional Neural Network、畳み込みニューラルネットワーク)は、画像認識をはじめとする視覚的なデータ処理に特化したディープラーニングモデルです。人間の視覚野の仕組みにヒントを得て設計されており、画像の局所的な特徴を段階的に抽出することで、高精度な認識を実現します。1998年にヤン・ルカンが開発したLeNetがその先駆けとなりました。
CNNの基本構造
CNNは主に畳み込み層(Convolutional Layer)、プーリング層(Pooling Layer)、全結合層(Fully Connected Layer)の3種類の層から構成されます。畳み込み層ではフィルタ(カーネル)を用いて入力画像からエッジや色、テクスチャなどの特徴を抽出します。プーリング層では特徴マップのサイズを縮小し、計算量を削減しながら位置ずれに対する頑健性を高めます。最後に全結合層で抽出された特徴を統合し、分類や回帰などのタスクを実行します。
CNNの応用分野
CNNは画像分類、物体検出、セマンティックセグメンテーション、顔認証など、コンピュータビジョンの幅広いタスクで利用されています。AlexNet、VGGNet、ResNetなどの代表的なアーキテクチャが提案され、ImageNetコンペティションで次々と精度記録を更新してきました。近年では医療画像診断や自動運転の視覚システムなど、実社会での応用も急速に広がっています。
CNNの発展と今後
CNNは長年にわたり画像処理の標準的な手法でしたが、Vision Transformer(ViT)の登場により、その優位性が再検討されています。しかし、CNNはパラメータ効率や推論速度の面で優れており、エッジデバイスへの展開では依然として重要な技術です。ConvNeXtなど、Transformerの設計思想を取り入れた新世代のCNNも研究されています。