畳み込みとは

たたみこみ

2つの系列の一方を時間反転してずらしながら、もう一方と掛け合わせて足し合わせる演算。離散時間では y[n] = Σx[k]h[n − k] で、LTIシステムの出力は、入力とインパルス応答の畳み込みになる。長さ L と M の系列の畳み込みの長さは L + M − 1 である。時間の側の畳み込みは周波数の側では掛け算になるので、長い畳み込みはFFTを使うと速く計算できる。畳み込みニューラルネットワークの「畳み込み」は、多くの実装でフィルタを反転しない相互相関として計算されるが、重みは学習で決まるので、どちらで定義しても学習の結果は同じように働く。コンパイラの「定数畳み込み」は別の意味の語である。

「畳み込み」は、3分野の6問の練習問題に出てきます(AIハードウェアとソフトウェアスタック, 機械学習の基礎, デジタル信号処理の基礎など)。

この用語の分野: デジタル信号処理の基礎

畳み込みの練習問題に挑戦

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

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

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

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

28×28の1チャネルの画像に、5×5のフィルタで畳み込み(ストライド1、パディングなし)を行い、続けて2×2の最大値プーリング(ストライド2)を行う。出力の縦と横の大きさはどれか。

  1. A12×12
  2. B14×14
  3. C24×24
答えと解説を見る

正解:A. 12×12

畳み込みの出力の大きさは、入力の大きさをN、フィルタの大きさをF、パディングをP、ストライドをSとして (N + 2P − F) ÷ S + 1 で求めます。(28 + 0 − 5) ÷ 1 + 1 = 24 なので、畳み込みのあとは24×24です。2×2の最大値プーリングをストライド2で行うと、2×2の領域ごとに最大値を1つだけ残すので、縦と横が半分の12×12になります。プーリングには学習するパラメータがなく、データを小さくして計算を減らし、位置の小さなずれの影響を受けにくくする働きがあります。

解説の中の「畳み込み」

「畳み込み」が出てくる問題(6問)

  1. 畳み込みニューラルネットワークで、畳み込みの計算をim2colなどの方法で行列の積に変換して計算することがある理由として正しいものはどれか。
  2. 28×28の1チャネルの画像に、5×5のフィルタで畳み込み(ストライド1、パディングなし)を行い、続けて2×2の最大値プーリング(ストライド2)を行う。出力の縦と横の大きさはどれか。
  3. x[n] = {1, 2, 3}(n = 0, 1, 2)を、インパルス応答 h[n] = {1, −1}(n = 0, 1)のLTIシステムに入力した。出力 y[0]〜y[3] として正しいものはどれか。
  4. AIアクセラレータのデータフローの方式の1つ「ウェイトステーショナリ(重み固定)」の説明として正しいものはどれか。
  5. AIのソフトウェアスタックを、利用者に近い上の層からハードウェアに近い下の層へ並べたものとして正しいものはどれか。
  6. 入力が64個、出力が32個の全結合層(各出力にバイアスが1つずつある)の、学習するパラメータの数はどれか。

デジタル信号処理の基礎の参考書を探す PR

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

関連する用語

畳み込みニューラルネットワーク(CNN) テンソルコア インパルス応答 AIコンパイラ 計算グラフ GPU NPU(ニューラルプロセッシングユニット) IIRフィルタ 移動平均フィルタ FIRフィルタ

用語集の一覧へ