Fourier変換についてメモ
Fourier変換
Fourier変換って何?という話が出ていて、 結局話の流れには関係なかったけど、 そのうち使うかもしれないし、この機会に知識を書き下してみようと思った。
→結局、よく知らないことが分かったので、Fourier変換についてのメモと呼ぶには少し不十分っぽくなった。
写像
を集合とする。 の元それぞれに対して、の元を一つ指定する規則のことをからへの写像といい、
のように表す。 ただし、は写像の名前。 を定義域、始域、ドメイン、ソースなどと、を値域、終域、コドメイン、ターゲットなどと呼ぶ。
実数の集合をとする。からへの写像には
などがある (もちろん、もっとたくさん、いくらでもある。式で書けるほうが珍しい)。 写像は、この例のようにターゲットが数の集合である場合には特に、関数と呼ばれることが多い。 (べつに数でなくても関数と呼んで構わないが、混乱の恐れがあるのでそうしないほうが良いと思う)
音は時刻の関数である
音とは、波である。 各時刻における波の変位(空気の圧力)が正確にわかれば、元の音を再現できる。 つまり、音とは、各時刻に変位を対応させる規則のことである。 たとえば、開始から秒後の変位がであるような音は、「ラ」とか「A」と呼ばれる。 音とは、時刻の関数である。
音の重ね合わせ
音は波なので、重ね合わせが起こる。 関数として見れば、重ね合わせとは単純に元の関数たちを足し合わせるだけで、たとえば「ドミソ」の音は 関数
で表せる(ちゃんと調べていないのでちょっとずつ違うかも)。 「ラ」と1オクターブ低い「ラ」と1オクターブ高い「ラ」が重なった音は
で表せる。
音の判定
時刻の関数が(三角関数みたいなわかりやすい形に限らず)与えられたとき、それがどの音たちの重ね合わせかを調べる方法はあるか?
→ある。Fourier変換。
Fourier級数展開
Fourier変換について書こうと思ったが、結局Fourier級数展開について書くにとどまった。
予備知識
の関数の集合
に属する2つの元について、積の積分
は、の場合のみとなり、 の場合はとなる。
証明は、
等の恒等式を知っていればやさしい。
有限和で書ける場合のFourier係数の計算
関数は、定数項と三角関数の組み合わせで
と書けるものとする。 このとき、
となる。 このことは、各式の右辺を計算することで簡単に確かめられる。(上に書いた予備知識を使う)
Fourier級数
の形の級数をFourier級数という。 をFourier係数という。
重要な定理
で定義された関数は、あまり変なものでなければ*1、Fourier級数で表せる。*2 具体的には、
として、
と書ける。*3 このことから、周期関数はFourier級数で表せることが分かる。
Fourier級数展開
上の定理のように、関数をFourier級数で表すことをFourier級数展開という。 音の話に戻れば、Fourier級数展開とは、音を一定の高さの音の重ね合わせとして表示することにあたる。
たとえば、音をFourier級数展開して
となったとすると、は倍音の混じった「ラ」の音を表していると解釈できる。
Fourier変換
関数と「周波数」から、 における周波数の成分の「強さ」を、 積分を使って計算できることがわかった。 この「ある周波数成分の強さ」を計算する操作を一般化したもの*4がFourier変換である。 必要ならちゃんと調べて書くけど、とりあえずここまで。
回帰と分類についてメモ
回帰
回帰(かいき) regression りぐれっしょん
回帰の例
ある森のヒノキの直径から、高さを推定する。
数学的には
ヒノキの直径を, 高さをとして、
となるような関数を作ればよい。 もちろん厳密に等しくなることは期待できないので、誤差が小さくなるようなを目指す。
機械学習では
がたとえば
という形の場合は、このモデルはという2つのパラメータを持つことになる。 訓練データを使って、パラメータを正解に近づくように(誤差が小さくなるように)調整することを、学習と呼ぶ。
モデルの選択の仕方はいろいろ考えられる。
とか。 どのモデルを選択するかは、たぶんかなり難しい問題。
分類
クラス化(classification、くらしふぃけいしょん)とクラスタリング(clustering)がある。
classificationの例
数字が一つ書かれた画像が、何を表すものかを分類する。
数学的には
画像は、ベクトル(数値の並び)として扱うことができる。 たとえば10×10ピクセルの白黒の画像であれば、 すべての成分が0(黒)か1(白)であるようなサイズ100のベクトルと見ることができる。 このベクトルに対して、 がその画像の表す数になるような関数を作ればよい。
回帰との関連
画像Xの「3っぽさ」「3以外ではないっぽさ」に点数をつける関数がある場合、
- がある値以上であれば、画像は3を表すものと判断する
という方法が考えられる。 この方法で分類を試みる場合、を構成するプロセスは回帰である。
clusteringの例
ECサイトユーザの商品購買履歴から、利用の傾向を分類する (ことで、同じグループのユーザが買う傾向にある商品をおすすめとして表示する)。
classificationとclustering
classificationでは、分類の各クラスにラベルがついている。 (画像が「0」,「1」,「2」,...のどれに属するかを判定する、みたいな。)
clusteringでは、ラベルはつかない。 (このユーザとこのユーザは似ている、みたいな。どういうグループかは考えない。) (分類した後で「ミステリーばっかり買う人たち」「野菜ジュースをよく買う人たち」みたいな分析をしてもよいけど。)
機械学習の言葉では、教師あり学習による分類はclassification, 教師なし学習による分類はclusteringと言える。