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

たたみこみにゅーらるねっとわーく

小さなフィルタ(カーネル)を入力の上でずらしながら積和を計算する畳み込み層を中心に、プーリング層などを重ねたニューラルネットワーク。同じフィルタを入力の全体で使い回すので、全結合層に比べてパラメータが少なく、画像の輪郭や模様のような局所的な特徴を、位置によらずに取り出せる。画像認識、物体検出、音声の処理などに使われる。

「畳み込みニューラルネットワーク(CNN)」は、2分野の2問の練習問題に出てきます(AIハードウェアとソフトウェアスタック, 機械学習の基礎など)。

この用語の分野: 機械学習の基礎

畳み込み層の計算

畳み込み層では、例えば3×3のフィルタを画像の左上から一定の間隔(ストライド)でずらしながら、重なった画素とフィルタの重みの積の和を計算して、特徴マップを作ります。出力の大きさは、入力の大きさN、フィルタの大きさF、パディングP、ストライドSを使って (N + 2P − F) ÷ S + 1 です。1つの層では複数のフィルタを使い、それぞれが縦の輪郭、横の輪郭、色の変化など別の特徴を取り出します。深い層ほど、目や車輪のような大きく複雑な特徴に反応するようになります。

パラメータが少ない理由

3チャネルの入力に3×3のフィルタを64個使う畳み込み層のパラメータは、3 × 3 × 3 × 64 + 64 = 1792個で、入力の画像の大きさによりません。同じ32×32×3の画像を64個の出力の全結合層につなぐと、32 × 32 × 3 × 64 + 64 = 196672個のパラメータが必要です。近くの画素だけを見ること(局所結合)と、同じフィルタを全体で使い回すこと(重み共有)によって、少ないパラメータで効率よく学習できます。

プーリングと全体の構成

プーリング層は、2×2などの領域ごとに最大値(最大値プーリング)や平均値をとってデータを小さくし、計算を減らすとともに、位置の小さなずれの影響を受けにくくします。典型的なCNNは、畳み込み層と活性化関数(ReLUなど)とプーリング層の組を何段か重ね、最後に全結合層とソフトマックス関数で分類します。層を飛び越えて信号を伝える残差接続を使うと、100層を超える深いネットワークでも学習できます。

畳み込みニューラルネットワーク(CNN)の練習問題に挑戦

畳み込みニューラルネットワークで、畳み込みの計算をim2colなどの方法で行列の積に変換して計算することがある理由として正しいものはどれか。

  1. A変換すると演算の回数が10分の1になるから
  2. B高度に最適化された行列の積のライブラリや、テンソルコアなどの行列の演算器を使えるから
  3. C変換するとメモリの使用量が必ず減るから
答えと解説を見る

正解:B. 高度に最適化された行列の積のライブラリや、テンソルコアなどの行列の演算器を使えるから

im2colは、畳み込みの各窓に入る入力の値を1列に並べた大きな行列を作り、フィルタを並べた行列との積で畳み込みを計算する方法です。窓が重なる分だけ入力が重複してメモリは増えますが、何十年も最適化されてきた行列の積のライブラリや、テンソルコアのような行列の演算器をそのまま使えるので、全体として速くなることが多いです。重複を作らずに同じことをする実装もあります。

よくある質問

畳み込み層の計算は、数学の畳み込みと同じですか?

多くのフレームワークでは、フィルタを反転させずに積和をとる、相互相関と呼ばれる計算を畳み込みと呼んでいます。フィルタの重みは学習で決まるので、反転するかどうかはモデルの性能に影響しません。

CNNは画像以外にも使えますか?

使えます。音声の波形や時系列のデータには1次元の畳み込み、動画や医用の立体画像には3次元の畳み込みが使われます。隣り合うデータの間に関係がある、格子状に並んだデータに向いています。

解説の中の「畳み込みニューラルネットワーク(CNN)」

「畳み込みニューラルネットワーク(CNN)」が出てくる問題(2問)

  1. 畳み込みニューラルネットワークで、畳み込みの計算をim2colなどの方法で行列の積に変換して計算することがある理由として正しいものはどれか。
  2. 大量のデータで学習済みのモデルを、別の課題に少ないデータで利用する転移学習の説明として、適切なものはどれか。

機械学習の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

半導体・電子回路・情報の計算ツール

関連する用語

畳み込み テンソルコア 転移学習 過学習 活性化関数 強化学習 教師あり学習 教師なし学習 k平均法 交差検証

用語集の一覧へ