0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Last updated at Posted at 2025-12-07

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

畳み込みニューラルネットワーク(CNN, Convolutional Neural Network)とは、主に 画像認識 の分野で用いられるディープラーニングアルゴリズムである。
人間の脳の視覚処理を模した構造を持ち、入力画像から自動的に特徴量を抽出し、それらを区別する能力を学習する点が特徴だ。

通常のニューラルネットワーク(3層構造程度)を大幅に深くした ディープニューラルネットワーク の一種であり、特に「一般物体認識」タスクで優れた性能を発揮することから注目されている。

CNNは主に以下の層で構成される。
• 入力層
• 畳み込み層(Convolution Layer)
• プーリング層(Pooling Layer)
• 全結合層(Fully-connected Layer)
image.png

生物学的な対応として、
• 入力層=網膜
• 畳み込み層=単純型細胞
• プーリング層=複雑型細胞
と近い役割を持つとされる。

局所受容野(Local Receptive Field)

人間が物体を見るとき、網膜が像全体を一度に処理するわけではなく、小さな領域ごとに分けて認識している。この小さな領域を局所受容野と呼ぶ。
CNNでも同様に、入力画像の一部分(局所)に注目して特徴を抽出する。これは畳み込み層の基本的な思想になっている。

畳み込み層:局所特徴の抽出

畳み込み層の役割は 画像内の局所的な特徴量を抽出することである。

イメージとして次のように画像とフィルタを重ね合わせる。
image.png

重ね合わせた部分を計算すると以下のようになる。

image.png

これを1つずつずらしていき、u2,u3…のようにして計算をしていく。結果uの固まりができる。画像とフィルタが似ていればuは大きくなる→特徴量の抽出

画像

画像は隣り合うピクセル同士の関係性が強く、エッジ・色の変化・模様などの特徴は局所に存在している。畳み込み層は カーネル(フィルタ) と呼ばれる小さな重み行列を画像の上でスライドさせ、加重和を計算することで特徴を抽出する。

カーネルとストライド

• カーネル(フィルタ):特徴を抽出するための重み行列
• ストライド:カーネルを移動させる幅
• 出力:特徴マップ(Feature Map)

カーネルの重みはバックプロパゲーションで学習され、同じカーネルが画像全体に対して共有される(重み共有)。これにより学習すべきパラメータが大幅に減り、学習効率が向上する。
畳み込み層ではカーネル(フィルタ)を画像の上でスライドさせ、局所的な特徴(エッジ・色の変化・模様など)を抽出する。
ストライドによってカーネルの移動幅が決まり、出力は特徴マップ(feature map)と呼ばれる。

● 重み共有(Weight Sharing)

畳み込み層のフィルタは、画像のすべての位置に対して同じ重みが適用される。
これは重み共有と呼ばれ、以下の利点がある。
• パラメータ数を大幅に削減
• 計算量を削減
• 「犬の耳」などの特徴がどの位置にあっても同じフィルタで認識できる

「特徴は画像内のどこにあっても同じ意味を持つ」という性質を利用した仕組みである。

プーリング層:移動不変性の獲得

プーリング層の役割は 位置に依存しない特徴表現(移動不変性)を得ることである。

畳み込み層で抽出された特徴は、物体が画像のどこにあるかで変化してしまう。これを軽減するため、プーリング層では特徴量マップの一部の領域(ウィンドウ)から代表値を取り出す。

代表的な手法は以下である。
• マックスプーリング:ウィンドウ内の最大値を取得
• 平均プーリング:ウィンドウ内の平均値を取得

これにより情報を圧縮し、位置の違いに頑健な特徴を獲得できる。

最大プーリング

画像の中から最大値を抽出するプーリングの手法。

画像

image.png

例えばx1,x2,x4,x5のうち一番大きい値をu1とする。少しずつずらして同じことを実施し、結果以下のようなuの固まりができる。

画像

最大値を取っているため、位置がある程度変化しても値が変化しないのが特徴(頑健性)。

パディング:特徴マップの縮小を防ぐ

畳み込みやプーリングを行うと、通常は出力のサイズが小さくなる。
そこで パディング を用いて、画像の周囲に0値のピクセルを追加し、縦横の大きさを維持することができる。

これにより、層を重ねても解像度が極端に小さくなるのを防ぎ、深いネットワーク構造を構築できる。

全結合層:最終的な分類を行う

畳み込みとプーリングで抽出された特徴をもとに、最後に 全結合層 が最終的なクラス分類や予測を行う。

ここでは抽出された特徴の組み合わせを学習し、「この画像は犬か?猫か?」といった判断を下す。CNN全体の“判断フェーズ”を担う部分である。

ソフトマックス関数

出力層で使われる関数。出力層のイメージは以下。(u1が全結合層から来る値)

image.png

image.png

ソフトマックス関数の式は以下。0~1の値をとり、総和が1になる。(=確率)

交差エントロピー

出力層で得た値を最後教師データと比較する。その時に使用する誤差関数の1つが交差エントロピーである。

image.png
image.png

誤差関数(交差エントロピー)を最小にするように重みを調整していく

例)
教師データは以下であったとする。

image.png

それに対し出力層で得た値は以下である。

image.png

この時の交差エントロピーを求める。

image.png

CNNの直感的理解:拡大鏡のように画像を順番に見る

CNNの特徴抽出は、
「画像を拡大鏡で小さな領域ごとにじっくり見る」
という作業に例えると理解しやすい。
• 畳み込み層:拡大鏡で小さく切り取られた部分を観察し、模様やエッジを見つける
• プーリング層:切り取った部分のうち重要な部分だけ残す
• 全結合層:さまざまな特徴を組み合わせ、最終的なラベルを判断する

このようにして、画像全体の意味を理解していくのがCNNである。

CNNの応用(CIFAR-10 / MNIST など)

CNNは画像認識の基礎タスクでも圧倒的な性能を発揮する。

● MNIST(手書き数字認識)
• 28×28の白黒画像
• 0〜9の分類タスク
• CNNは初期の研究でほぼ98%以上の精度を達成し、画像認識技術の基盤となった

● CIFAR-10(小型カラー画像)
• 32×32のカラー画像
• 飛行機、犬、猫など10クラス
• 畳み込み層で色や模様を識別し、深い層でより複雑な特徴を捉えられる

CNNの活用例

CNNは画像分類以外にも多岐にわたる分野で活用される。
• 医療画像診断(腫瘍の検出)
• 自動運転(カメラ映像の解析)
• 顔認識(スマホのロック解除)
• 衛星画像の解析(農業・気象)
• 不良品検知(製造業)
• スタイル変換(画像の芸術風変換)
• 物体検出モデル(YOLO・SSD)

畳み込み処理による特徴抽出能力が高く、多くの画像関連AI技術の基盤となっている。

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?