情報処理試験を勉強していると、「CNNって略語は見たことあるけど、何がどう”畳み込み”なの?」と引っかかる人は多いです。
対象試験と出題頻度
CNN(畳み込みニューラルネットワーク)は、基本情報技術者・応用情報技術者で出題されるテーマです。
ディープラーニング関連の用語として、シラバスVer.9.0で基本情報技術者試験に正式追加されました。
RNN(再帰的ニューラルネットワーク)やGAN(敵対的生成ネットワーク)との区別が問われます。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
CNN(Convolutional Neural Network/畳み込みニューラルネットワーク)とは、一言で言うと
「畳み込み層とプーリング層を持ち、画像などのデータから特徴を自動抽出するディープラーニングモデル」
のことです。
イメージとしては、「虫メガネで写真を少しずつずらしながら調べる検査官」です。
検査官は写真全体をいきなり判断するのではなく、小さな区画ごとに「ここに線がある」「ここに角がある」とパーツ単位で特徴を拾い上げます。
拾った特徴を段階的にまとめていくことで、最終的に「これは犬の写真だ」と判定します。CNNもまさにこの流れで動いています。
📊 CNNの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Convolutional Neural Network |
| 分類 | ディープラーニング(深層学習)の一手法 |
| 得意分野 | 画像認識、音声認識、動画解析 |
| 主な層構成 | 畳み込み層 → プーリング層 → 全結合層 |
解説
従来のニューラルネットワーク(全結合型)で画像を扱うと、ピクセルごとの位置関係が無視され、膨大な数のパラメータが必要になるという問題がありました。
CNNは「近くのピクセル同士には関連がある」という画像の空間的な構造を活かすために設計されたモデルです。
3つの層の役割
CNNの処理は、主に3種類の層を順番に通過することで進みます。それぞれの役割を正確に区別することが理解の土台です。
| 層の名前 | 何をするか | 一言で |
|---|---|---|
| 畳み込み層 | カーネル(フィルタ)と呼ばれる小さな行列を入力データ上でスライドさせ、局所的な特徴(エッジ、模様など)を抽出する | 「特徴を見つける層」 |
| プーリング層 | 畳み込み層の出力を一定範囲ごとに集約(最大値や平均値)し、データサイズを縮小する。重要な特徴を残しつつ計算量を削減する | 「情報を圧縮する層」 |
| 全結合層 | 抽出・圧縮された特徴をもとに最終的な分類・予測結果を出力する | 「答えを出す層」 |
図解:CNNの処理フロー
入力画像がどのように処理されて最終的な分類結果になるか、全体の流れを図で示します。
CNN の処理フロー
入力画像
畳み込み層
カーネルで
特徴を抽出
プーリング層
データを
圧縮
×N回
繰り返し
全結合層
分類・
予測
犬
95%
出力結果
▲ 畳み込み層とプーリング層のペアを複数回繰り返した後、全結合層で最終判定を行う
畳み込み演算の具体的なイメージ(詳細を確認する)
畳み込み層では、入力画像の各位置に対して「カーネル(フィルタ)」と呼ばれる小さな行列を重ね合わせ、対応する要素同士を掛け算して合計します。これを画像全体にスライドさせながら繰り返すことで、1枚の「特徴マップ」が生成されます。
3×3 カーネルによる畳み込み演算の例
入力(一部)
| 1 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
カーネル
| 1 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
出力値
1×1+0×0+1×1
+0×0+1×1+0×0
+1×1+0×0+1×1
プーリング層では、この特徴マップを小さなウィンドウ(例:2×2)で区切り、各ウィンドウ内の最大値(Maxプーリング)や平均値を取ってデータを縮小します。これにより、対象の位置が多少ずれても同じ特徴として認識できる「位置ずれへの頑健性」が得られます。
RNN・GANとの違い
CNNを正しく位置づけるには、同じ深層学習の仲間であるRNNやGANとの違いを整理するのが近道です。
| モデル名 | 得意な入力データ | 特徴 |
|---|---|---|
| CNN | 画像・音声 | 空間的な特徴(位置関係)を捉える。畳み込み層とプーリング層が核心 |
| RNN | テキスト・時系列 | 時間的な前後関係を捉える。過去の出力を次の入力にフィードバックする構造 |
| GAN | 画像生成など | 生成器と識別器が互いに競い合うことで、本物そっくりのデータを生成する |
ここだけは確実に押さえてください。
CNNは「空間」、RNNは「時間」、GANは「生成と識別の競争」という軸で覚えれば混同しません。
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 CNNの核心を3行で
・画像の空間的な特徴を自動抽出するディープラーニングモデル
・畳み込み層(特徴抽出)→ プーリング層(圧縮)→ 全結合層(分類)の3層構成
・RNN(時系列向き)、GAN(データ生成向き)と得意分野で区別する
試験ではこう出る!
CNNは、FE・APの午前問題でディープラーニング関連の知識問題として出題されます。CNN単体の名称を直接問う問題はまだ少ないですが、「ディープラーニングとは何か」を問う設問の中で畳み込み層・プーリング層の知識が前提になるケースが増えています。
📊 関連する過去問の出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R6春 午前 問3 |
ディープラーニングの説明として正しいものを選ぶ問題 | ・「脳神経回路のように多層の処理を重ねる」が正解 ・データマイニング、エキスパートシステムがひっかけ |
| AP R3秋 午前 問3 |
ディープラーニングに最も関連が深いものを選ぶ問題 | ・「多層に配置された素子とパラメータ調整」が正解 ・遺伝的アルゴリズム、エキスパートシステムがひっかけ |
| FE R6 科目A 問3 |
上記AP R3秋 問3と同一構成の流用問題 | ・FEとAPで同一問題が出回る典型パターン |
| AP R1秋 午後 問3 |
ニューラルネットワーク(パーセプトロン)をテーマにしたプログラミング問題 | ・ニューラルネットワークの基本原理(重み・しきい値の調整)を問う応用問題 |
| IP R7 問80 |
基盤モデルの説明を選ぶ問題。選択肢にCNNが登場 | ・CNNは「主に画像認識で使われるモデル」として不正解選択肢に配置された |
📝 IPA試験での出題パターン
パターン1:「ディープラーニングの説明を選べ」
4つのAI技術の説明文が並び、ディープラーニングに該当するものを選ぶ形式。「多層のニューラルネットワーク」「パラメータの自動調整」がキーワード。ひっかけとしてエキスパートシステム(ルールベース推論)や遺伝的アルゴリズム(突然変異・交配)が紛れ込む。
パターン2:「深層学習モデルの種類を区別せよ」
シラバスVer.9.0の追加範囲として、CNN・RNN・GANの区別を問う出題が今後増加する見込み。「画像認識 → CNN」「時系列データ → RNN」「データ生成 → GAN」の対応を押さえておけば得点できる。
試験ではここまででOKです。カーネルサイズの計算やバックプロパゲーションの数式まで問われることは午前問題ではないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. ディープラーニングの手法のうち、畳み込み層とプーリング層を持ち、主に画像認識に用いられるモデルはどれか。
- A. 過去の出力を次の入力にフィードバックする構造を持ち、テキストや音声などの時系列データの処理に適したモデル
- B. 生成器と識別器の2つのネットワークを対立させて学習させることで、本物に近いデータを生成するモデル
- C. カーネルによる特徴抽出とデータ圧縮を繰り返し、空間的なパターンを段階的に認識するモデル
正解と解説を見る
正解:C
解説:
CNN(畳み込みニューラルネットワーク)は、カーネル(フィルタ)でデータの局所的な特徴を抽出する畳み込み層と、情報を圧縮するプーリング層を交互に重ねて処理するモデルです。画像の空間的な構造を活かせるため、画像認識分野で広く採用されています。
選択肢AはRNN(再帰的ニューラルネットワーク)の説明です。RNNは前の時刻の出力を次の入力に戻す再帰構造を持ち、時系列データを扱います。選択肢BはGAN(敵対的生成ネットワーク)の説明です。GANは生成器と識別器の競争によってリアルなデータを生成する仕組みであり、特徴抽出による分類を目的とするCNNとは役割が異なります。
よくある質問(FAQ)
Q. CNNは画像以外にも使えますか?
使えます。音声認識では音声信号をスペクトログラム(周波数と時間の2次元画像)に変換してCNNに入力する手法が普及しています。自然言語処理でも、テキストを行列化してCNNで短いフレーズの特徴を抽出するアプローチがあります。ただし、長い文脈の理解にはRNNやTransformerの方が適しているため、用途に応じた使い分けが必要です。
Q. CNNの「カーネル」と「フィルタ」は同じ意味ですか?
ほぼ同義として使われます。どちらも畳み込み演算で使う小さな重み行列を指します。厳密には、1チャンネル分の重み行列を「カーネル」、複数チャンネル分をまとめたものを「フィルタ」と呼び分ける文献もありますが、IPA試験の範囲ではこの区別は問われません。「カーネル=フィルタ=畳み込みに使う小さな行列」と理解していれば十分です。
Q. CNNとTransformerはどちらが優れていますか?
一概には比較できません。CNNは局所的な特徴の抽出に強く、画像認識の実績が豊富です。一方、Transformerは自己注意機構(Self-Attention)で入力全体の関係を捉えることに長けており、自然言語処理から画像認識(Vision Transformerなど)まで適用範囲が拡大しています。最近ではTransformerベースのモデルが画像分野でもCNNの精度を超えるケースが報告されていますが、CNNは構造がシンプルで計算コストが低いという強みがあります。
Q. CNNの学習に必要なデータ量はどのくらいですか?
タスクの難易度とモデルの規模によって異なりますが、一般的に数千〜数万枚の画像が必要です。データが不足する場合は、既に大量のデータで訓練済みのモデルを流用する「転移学習」や、画像を回転・反転させてデータを増やす「データ拡張(Data Augmentation)」といった手法で対処します。実務ではゼロからCNNを訓練するよりも、転移学習を活用するケースの方が圧倒的に多いです。