結論
CNNは畳み込みで近くの値どうしの局所的なパターンを捉え、RNNは系列を1時刻ずつ順に処理して過去の情報を隠れ状態で受け渡します。TransformerはSelf-Attentionで系列内のすべての位置どうしの関係を直接計算するので、離れた位置の関係を捉えやすく、学習時の並列計算にも向きます。
比較表
| 観点 | CNN | RNN | Transformer |
|---|---|---|---|
| 中心となる仕組み | 畳み込み層(小さなフィルタを位置をずらしながら掛ける)とプーリング層 | 前の時刻の隠れ状態を次の時刻の計算に戻す再帰の経路 | Self-Attention(Multi-Head Attention)と位置ごとの全結合層 |
| 1層で参照する範囲 | フィルタが重なる近くの範囲だけ。層を重ねて広げる | 現在の入力と、1つ前の時刻の隠れ状態 | 系列内のすべての位置(デコーダのSelf-Attentionでは、後ろの位置をマスクで隠す) |
| 向いているデータの例 | 画像、スペクトログラム、波形など、近くの値どうしが関係するデータ | センサーの時系列、音声、文章など、並び順に意味がある系列データ | 文章などの系列データ。画像をパッチに分けるVision Transformerで画像にも広がった |
| 順序・位置の扱い | フィルタの重みが位置ごとに違うので、近くの値の並び方を区別できる | 読む順番そのものが順序の情報になる | Self-Attentionだけでは順序を区別できないため、位置エンコーディングを加える |
| 学習時の並列計算 | 各位置の畳み込みを同時に計算できる | 前の時刻の結果を待つため、時間方向には並列化しにくい | 全位置をまとめて計算でき、並列化しやすい |
| 離れた位置どうしの関係 | 層を重ねて受容野を広げないと捉えられない | 間の時刻を順に経由して伝わり、勾配消失で学習しにくい | 1層で直接結びつく。その代わり、計算量が系列の長さの2乗に比例する |
| 代表的なモデル | LeNet、AlexNet、VGG、ResNet | エルマンネットワーク、LSTM、GRU | BERT、GPT、Vision Transformer |
| シラバス項目 | 技術分野 項目18 畳み込み層 | 技術分野 項目22 回帰結合層 | 技術分野 項目23 Attention |
| G検定での問われ方 | フィルタ・ストライド・パディングの役割、特徴マップの大きさの計算、向いているデータの判断 | 隠れ状態の受け渡し、BPTT、勾配消失とLSTM・GRUによる対処 | 位置エンコーディングが必要な理由、並列計算のしやすさ、Self-Attentionの計算量 |
最終確認日:2026年11月1日
それぞれの説明
CNN
CNNは、小さなフィルタを入力の上でずらしながら掛け合わせる畳み込み層を中心に組み立てたネットワークです。1回の畳み込みで見るのは、フィルタが重なる近くの範囲だけです。同じフィルタをすべての位置で使い回すので、画像のどこに写った模様でも同じように見つけられます。層を重ねるほど見る範囲が広がり、線や角から物体の部品へと、より複雑な特徴を捉えます。近くの値どうしが関係するデータなら、画像以外の波形やスペクトログラムにも使えます。
RNN
RNNは、各時刻の隠れ状態を次の時刻へ持ち越し、新しい入力と合わせて計算します。読む順番そのものが順序の情報になるため、時系列や文章のように並び順に意味があるデータを自然に扱えます。一方、前の時刻の計算が終わるまで次へ進めないので、1つの系列の中では時間方向に並列化しにくくなります。遠い過去の情報は間の時刻を順に経由して届くため、勾配消失で学習しにくいという弱点もあります。これを補うのがLSTMやGRUです。
Transformer
Transformerは、2017年の論文「Attention Is All You Need」で機械翻訳のために提案されました。RNNも畳み込みも使わず、Self-Attentionで系列内のすべての位置の組について関連度を計算します。離れた位置どうしも1層で直接結びつき、学習時には全位置をまとめて計算できます。ただし、Self-Attentionだけでは語順を区別できないので、位置エンコーディングを加えます。また、計算量が系列の長さの2乗に比例するため、長い系列では計算とメモリの負担が大きくなります。
選び方の考え方
データの種類だけで決めず、データのどんな性質を生かしたいかで考えます。局所的なパターンが重要ならCNN、データが1つずつ届いて逐次処理したいならRNN系、大量のデータで広い範囲の関係を学ばせたいならTransformerが候補になります。現在の自然言語処理ではTransformerが主流で、画像認識でもCNNに加えてVision Transformerが使われています。
見分けるコツ
- データのどの関係を捉えたいかで見分けます。近くの値の局所的なパターンならCNN、時刻の順に積み重なる文脈ならRNN、離れた位置も含めたすべての組の関係ならTransformerです。
- 前の時刻の結果を待って1時刻ずつ計算するのはRNNです。Transformerは学習時に全位置をまとめて計算します。Self-Attentionは語順を区別できないので、位置エンコーディングで順序の情報を加えます。
- 「画像ならCNN、文章ならRNN」は目安にすぎません。1次元の畳み込みは波形や文章にも使え、Vision Transformerは画像にも使います。選択肢は、データの種類ではなく仕組みの説明で判断します。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
手元にある系列データを1次元の畳み込み層で処理する場合も、RNNと同じく、前の位置の出力を計算し終えてからでないと次の位置の出力を計算できない。
答えを見る
答え × 誤り
畳み込みの各出力は、フィルタが重なる範囲の入力だけから計算され、ほかの位置の出力を使いません。そのため全位置を同時に計算できます。前の時刻の結果を待つ必要があるのは、隠れ状態を受け渡すRNNです。
-
Transformerの元の論文の比較では、系列の長さが表現の次元数より小さいとき、Self-Attention層は1層あたりの計算量がRNNの層より少ない。
答えを見る
答え ◯ 正しい
系列の長さをn、次元数をdとすると、1層あたりの計算量はSelf-Attentionがn²・d、RNNがn・d²に比例します。n < dならSelf-Attentionのほうが少なく、系列の長さが次元数を上回ると逆転します。
-
2017年の論文で提案されたTransformerは、エンコーダで畳み込み層を使って局所的な特徴を取り出してから、Self-Attentionに渡す構造である。
答えを見る
答え × 誤り
元のTransformerは、RNNも畳み込みも使わず、Attentionと位置ごとの全結合層を中心に組み立てられています。論文の題名「Attention Is All You Need」もこの方針を表しています。
関連問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目18 畳み込み層)
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目22 回帰結合層)
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目23 Attention)
- Ashish Vaswani et al., Attention Is All You Need (2017) (Abstract、3.3 Position-wise Feed-Forward Networks、4 Why Self-Attention(Table 1))
- Yann LeCun, Léon Bottou, Yoshua Bengio, Patrick Haffner, Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE 86(11), 2278–2324 (1998)
- Jeffrey L. Elman, Finding Structure in Time, Cognitive Science 14(2), 179–211 (1990)
- Alexey Dosovitskiy et al., An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (2020)
ほかの違い比較
- アジャイルとウォーターフォールの違い 進め方とAI開発での使い分け
- 赤池情報量規準(AIC)とベイズ情報量規準(BIC)の違い 罰則の重さ
- バギングとブースティングの違い 並列か逐次か、減らす誤差の違い
- バッチ正規化とレイヤー正規化の違い 平均と分散を計算する範囲の違い
- バッチ学習・ミニバッチ学習とオンライン学習の違い 更新回数とぶれ
- BERTとGPTの違い エンコーダとデコーダ、学習課題の違い
- CBOWとスキップグラムの違い 予測の向きと学習の速さ
- 分類問題と回帰問題の違い 出力の形で見分けるコツと評価指標
- 協調フィルタリングとコンテンツベースフィルタリングの違い 仕組み
- 共分散と相関係数の違い 式の関係と単位・値の範囲
- データ汚染とAdversarial Attackの違い 学習時か推論時かと対策
- 決定木とランダムフォレストの違い 解釈のしやすさと精度・安定性
- 深さ優先探索と幅優先探索の違い 調べる順番・最短解・メモリ
- 営業秘密と限定提供データの違い 3つの要件と刑事罰の有無
- Faster R-CNNとYOLOの違い 2段階型と1段階型、速度と精度
- GANと拡散モデル(Diffusion Model)の違い 学習と生成の仕組み
- GANとVAEの違い 識別器の有無と学習の仕組み
- GDPRと個人情報保護法の違い 法的根拠・本人の権利・制裁金
- 勾配降下法と誤差逆伝播法の違い 勾配を使う側と求める側
- グリッドサーチとランダムサーチの違い 試行回数の決まり方と効率
- ホールドアウト検証と交差検証の違い 分割回数・計算量・使い分け
- 画像分類(物体識別)と物体検出の違い 出力の形と使い分け
- 委託・第三者提供と共同利用の違い 同意の要否と受け手が使える範囲
- k-means法と階層的クラスタリングの違い クラスタ数を決める時期と計算量
- 個人情報・個人データと保有個人データの違い 範囲の入れ子とかかる義務
- 個人情報と個人識別符号の違い 包含関係と当たる例・当たらない例
- L1正則化とL2正則化の違い 罰則の形と重みが0になるか
- 最小二乗法と最尤法の違い 推定の基準と結果が一致する条件
- LIMEとSHAPの違い 局所近似とシャープレイ値の使い分け
- LSTMとGRUの違い ゲートの数と記憶セルの有無
- 機械学習とディープラーニングの違い 包含関係と特徴量の決め方
- 平均絶対値誤差(MAE)と平均二乗誤差(MSE)の違い 外れ値への強さ
- 正規化と正則化の違い 目的と代表的な手法を表で整理
- 主成分分析(PCA)と特異値分解(SVD)の違い 目的と計算の関係
- 主成分分析(PCA)とt-SNEの違い 線形か非線形か、保つ構造の違い
- 適合率と再現率の違い 分母の違いと重視する場面
- プルーニング・量子化と蒸留の違い 何を減らすかと元モデルの扱い
- Q学習とSARSAの違い 更新式の1か所と方策オン・オフ
- RNNとLSTMの違い 記憶セルと勾配消失の起きにくさ
- Self-AttentionとSource-Target Attentionの違い Q・K・Vの出どころ
- セマンティック・インスタンスとパノプティックの違い 背景と個体の扱い
- 新規性と進歩性の違い 比べ方とAI発明での論点
- シグモイド関数とソフトマックス関数の違い 出力の合計と使い分け
- ソフトローとハードローの違い 法的拘束力の有無と日本・EUの例
- 強いAIと弱いAIの違い 心をもつと考えるかの違い
- 教師あり学習・教師なし学習と強化学習の違い 学習の手がかりと代表例
- 特許権と著作権の違い 発生・保護対象・期間とAIでの使い分け
- 匿名加工情報と仮名加工情報の違い 加工の程度と第三者提供の可否
- 転移学習とファインチューニングの違い 重みを固定するか更新するか
- 請負契約と準委任契約の違い 完成義務とAI開発での使い分け
- Zero-shotとFew-shotの違い 与える例の数と重みを更新しない点