ベクトル化した2次元データに対する離散フーリエ変換行列
機械学習では画像のような2次元のデータをベクトル化して1次元のデータとして扱うことが多い.このようにベクトル化した2次元データに対する離散フーリエ変換 (DFT) 行列を定義できれば便利である.
長さ のベクトル に対する1次元の DFT は, を の DFT 行列として次の様に表せる.
同様に 行 列の2次元データ に対する2次元の DFT は次の様に表せる.
さて,2次元のデータ(行列)をベクトル化する操作を と表すと,次の関係が成り立つ.
ここで はクロネッカー積である.2番目の式とあわせて考えると,次の関係を得る*1.
というわけで,ベクトル化した2次元データに対する DFT 行列は で定義できることが分かる.ちなみに を ,DFT 行列の要素を std::complex< double >
とすると,この DFT 行列は 4 GB のメモリを必要とする.
*1:DFT 行列の性質 に注意.