CNN(畳み込みニューラルネットワーク)

Convolutional Neural Network

CNNとは

CNN(Convolutional Neural Network、畳み込みニューラルネットワーク)は、画像認識をはじめとする視覚的なデータ処理に特化したディープラーニングモデルです。人間の視覚野の仕組みにヒントを得て設計されており、画像の局所的な特徴を段階的に抽出することで、高精度な認識を実現します。1998年にヤン・ルカンが開発したLeNetがその先駆けとなりました。

表:CNN(畳み込みニューラルネットワーク)の要点まとめ
ひとことで言うと画像の「特徴」を段階的に拾い上げていく、画像認識向けのニューラルネットワーク。
どこで使う画像分類、不良品検査、顔認証、医療画像診断、自動運転の視覚システム。
注意点学習に大量の画像が必要。最近は画像でもTransformer(ViT)が使われる場面が増えている。

CNNの基本構造

CNNは主に畳み込み層(Convolutional Layer)、プーリング層(Pooling Layer)、全結合層(Fully Connected Layer)の3種類の層から構成されます。畳み込み層ではフィルタ(カーネル)を用いて入力画像からエッジや色、テクスチャなどの特徴を抽出します。プーリング層では特徴マップのサイズを縮小し、計算量を削減しながら位置ずれに対する頑健性を高めます。最後に全結合層で抽出された特徴を統合し、分類や回帰などのタスクを実行します。

図:CNNが画像を見分けるまで
1入力画像縦×横×色の数値の塊
▶
2畳み込み層線や輪郭を検出
▶
3プーリング層縮めて位置ずれに強く
▶
4全結合層特徴をまとめて判断
▶
5分類結果「猫 95%」など
↺ 畳み込み+プーリングを何段も重ね、単純な線から複雑な形へ

CNNの応用分野

CNNは画像分類、物体検出、セマンティックセグメンテーション、顔認証など、コンピュータビジョンの幅広いタスクで利用されています。AlexNet、VGGNet、ResNetなどの代表的なアーキテクチャが提案され、ImageNetコンペティションで次々と精度記録を更新してきました。近年では医療画像診断や自動運転の視覚システムなど、実社会での応用も急速に広がっています。

CNNの発展と今後

CNNは長年にわたり画像処理の標準的な手法でしたが、Vision Transformer(ViT)の登場により、その優位性が再検討されています。しかし、CNNはパラメータ効率や推論速度の面で優れており、エッジデバイスへの展開では依然として重要な技術です。ConvNeXtなど、Transformerの設計思想を取り入れた新世代のCNNも研究されています。