高速フーリエ変換で畳み込みを高速化する 1. 離散フーリエ変換入門
2018.7.24
Topics
こんにちは。データサイエンスチームのtmtkです。
この記事では、離散フーリエ変換の紹介をします。
離散フーリエ変換とは
離散フーリエ変換は、要素数がの有限集合を定義域にもつ関数を、
の形の関数の和で書き表す手続きのことをいいます。別の言い方をすれば、線形空間上で基底変換をしていると考えることもできます。
離散フーリエ変換は、高速フーリエ変換というアルゴリズムで高速化できます。
離散フーリエ変換の応用として、多倍長整数演算や、畳み込み処理の高速化などがあるようです。
この記事では、離散フーリエ変換の定義とその意味について紹介します。続く記事では、高速フーリエ変換やその応用として畳み込み処理の高速化を紹介します。
離散フーリエ変換の定義
はじめに、自然数を固定します。
関数が周期をもつとします。すなわち、任意の整数に対して、が成り立っているとします。このとき、はから決まるので、は有限集合上の関数
や次元ベクトル空間の元
と同一視することができます。以後、次元ベクトル
のみについて考えますが、周期関数や有限集合上の関数とも考えられることに注意してください。
さて、次元ベクトルに対して、の離散フーリエ変換
を
で定義します。これが離散フーリエ変換の定義です。
離散フーリエ変換の意味
この離散フーリエ変換の定義はどのように出てきたものなのでしょうか。これから説明します。
周期関数
を考えることができます。これと同一視できる次元ベクトル
をにわたって集めると、これは上の正規直交基底になることがわかります。実際、内積を計算すると
となるので、正規直交基底になっていることが確認できました。
そこで、標準基底で表示されたベクトルを基底に変換して表示すると、は
と書けることから、のに関する係数は
となります。これはのフーリエ変換の第項です。これが離散フーリエ変換の由来です。
つまり、離散フーリエ変換は線形空間の標準基底から正規直交基底への基底変換です。
逆離散フーリエ変換
離散フーリエ変換の逆の操作で、逆離散フーリエ変換というものがあります。これは離散フーリエ変換の逆の基底変換です。具体的に書き表すと以下のようになります。
次元ベクトル空間の元
に対して、その逆離散フーリエ変換を
で定義します。離散フーリエ変換の場合と指数関数の引数の符号が変わっています。
実際に互いに逆変換になっていることは、以下のように直接の計算で確かめられます。まず、最初にについては
より、が任意のについて成り立ちます。同様にして、も示すことができます。したがって、離散フーリエ変換と逆離散フーリエ変換は互いに逆変換になっています。
まとめ
この記事では、離散フーリエ変換の定義を紹介しました。離散フーリエ変換はベクトル空間の基底変換と考えることができます。離散フーリエ変換の逆変換を逆離散フーリエ変換と呼びます。
参考文献
- Ian Goodfellow『深層学習』
- 離散フーリエ変換を用いた多倍長乗算の話
- 山下幸彦他『工学のためのフーリエ解析』
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitter
tmtk
データ分析と機械学習とソフトウェア開発をしています。 アルゴリズムとデータ構造が好きです。
Recommends
こちらもおすすめ
-
「21世紀の相関係数」を超える(2)
2018.4.6
-
機械学習を学ぶための準備 その3(行列について)
2015.12.6
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16