池内研究室 Computer Vision Laboratory Copyright: Daisuke Miyazaki http://www.cvl.iis.u-tokyo.ac.jp/ 池内研究室 Computer Vision Laboratory Numerical Recipes in C [日本語版] 初版 宮崎大輔 2004年5月13日(木) PBVセミナー 池内研究室 Computer Vision Laboratory 第12章 フーリエ変換 Fourier transform spectral methods 8th Physics Based Vision Seminar 2004/May/13 Fourier(フーリエ)変換法(Fourier transform methods), スペクトル法(spectral methods) • 関数h(t),時間t,時間領域(time domain) 振幅H(f),周波数f(-∞<f<∞),周波数領域(frequency domain) h(t)とH(f)は同じ関数の異なる表現 4 8th Physics Based Vision Seminar 2004/May/13 畳込みと相関 • 二つの関数の畳込みまたは合成積 (convolution)g*h • 二つの関数の相関(correlation) tは遅れ(lag), H(-f)=H*(f) • 自己相関(autocorrelation):関数とそれ自身との相 関 5 8th Physics Based Vision Seminar 2004/May/13 パワースペクトル密度 • 全パワー(total power): Parseval(パーセバル)の定理 (Parseval’s theorem) • 片側パワースペクトル密度 (one-sided power spectral density) • 両側パワースペクトル密度 (two-side power spectral density) 6 8th Physics Based Vision Seminar 2004/May/13 Nyquist(ナイキスト)の臨界周波数(Nyquist critical frequency), 標本化定理(sampling theorem), エイリアシング(aliasing) • 標本化周期Δ • Nyquistの臨界周波数 • 標本化定理 • エイリアシング – 周波数帯域(-fc,fc)の外側のど んな周波数成分も,この帯域 内に折り返される – もし間隔Δで標本化した連続 関数h(t)の周波数帯域がfcよ り小さい周波数だけなら,関 数h(t)は標本hnから完全に決 定される 7 8th Physics Based Vision Seminar 2004/May/13 離散Fourier変換(discrete Fourier transform)と離散 逆Fourier変換(discrete inverse Fourier transform) • 離散Fourier変換 離散的な値 だけで推定(-fc~fc) • 離散逆Fourier変換 • 標本値はN個,標本化間隔はΔ 8 8th Physics Based Vision Seminar 2004/May/13 高速Fourier変換(fast Fourier transform, FFT) • 離散Fourier変換はO(N2)? →No! FFTならO(Nlog2N) • Danielson and Lanczosの補題 Fk F even k W F k odd k W e 2i N Fkevenは偶数番目の成分 Fkoddは奇数番目の成分 長さNの離散Fourier変換は2個 の長さN/2の離散Fourier変換の 和で書き表せる • これを帰納的に使える→Nが2の 累乗の場合,どんどん,半分に分 割していける→長さが1のFourier 変換は単なる恒等変換で,入力 をそのまま出力にコピーするだけ • ビット反転(bit reversal) a a b e c c d g e b f f g h d h 1 2 3 4 5 6 7 8 a b c d e f g h 奇数 aceg 偶数 bdfh 奇数 ae 偶数 cg 奇数 bf 偶数 dh a c b d e g f h 9 8th Physics Based Vision Seminar 2004/May/13 実関数のFFT • FFTは複素数演算をしているが,虚部を0に設定す ることにより,N個の実数のデータに対しても,あたり まえに計算できる • 出力は複素数の可能性もあるが,出力の自由度はN のまま変わらない(複素数だったら,実部と虚部合わ せて自由度2Nになりそうなものである) • よって,複素数用のFFTルーチンを実数データに使う のは,実行時間と格納場所の効率が悪い • 効率的に計算する方法があるが詳細は省略 10 8th Physics Based Vision Seminar 2004/May/13 サイン変換(sine transform), コサイン変換(cosine transform) N 1 f j sin(jk N ) • サイン変換: Fk • 計算方法はFFTを拡張して j 1 N 1 求めることもできるが,2倍 • コサイン変換: Fk f j cos(jk N ) 効率が悪い→もっといい方 j 0 法があるが詳細は省略 • サイン変換:サインだけを使 う • コサイン変換:コサインだけ を使う • 通常のFFT:サイン・コサイ ン両方を使う 11 8th Physics Based Vision Seminar 2004/May/13 FFTによる畳込みと逆畳込み • • 2関数r(t),s(t)の畳込みr*sは数学的 にはs*rと等しい しかし,多くの応用場面では,以下の ような意味と性格を持たせる – sは信号(signal)またはデータの流れ (stream),時間について限りなく続く – rは応答関数(response function),山 形の関数で両側で0 – 畳込みの役割:s(t)をr(t)でにじませる • 畳込み • rを持続時間(duration)Mの有限イン パルス応答(finite impulse response, FIR)フィルタと言う 離散畳込み定理(discrete convolution theorem) • 周波数領域で,sjの離散Fourier変換 Snと,rkの離散Fourier変換Rnの積 12 8th Physics Based Vision Seminar 2004/May/13 FFTによる畳込みと逆畳込み • 畳込みをすると,両端が汚染される • 両端に0を詰める • m+とm-のうち大きい値の分だけ0を詰めればよい 13 8th Physics Based Vision Seminar 2004/May/13 FFTによる畳込みと逆畳込み • 逆畳込み(deconvolution):測定装置の分解能が完 璧でないためにデータににじみが生じたとき,にじみ を表す応答関数が既知なら,にじみを取り除くことが できる • 周波数領域で単なる割り算 • 入力データの雑音や応答関数rkの精度に非常に敏 感であるという欠点を持つ 14 8th Physics Based Vision Seminar 2004/May/13 FFTによる相関と自己相関 • 2個の標本化された関数gk,hkの離散相関は,これら が周期Nを持つとき 遅れ(lag)j • 関数gと,時間の遅れjがあったときの関数hが,よく 似ていると,そのjの値で相関は大きくなる • 離散相関定理(discrete correlation theorem) Gk,Hkはgk,hkの離散Fourier変換 *は複素共役を意味する • 離散自己相関(discrete autocorrelation):自分自身 との相関 15 8th Physics Based Vision Seminar 2004/May/13 最適フィルタ(optimal filter), Wienerフィルタ • 汚れていない(unccorrupted)信号u(t)を求めたいが,測定装置から出てくるのは汚 れた(corrupted)信号c(t).c(t)は,真の信号u(t)を応答関数r(t)でにじまされた信号 s(t)と,雑音n(t)の和 • 真の信号Uの推定値は以下のようになる • • φ(f)は最適フィルタ, c(t)⇔C(f), s(t)⇔S(f), n(t)⇔N(f), r(t)⇔R(f), u(t)⇔U(f) 応答関数r(t)は既知とする また,にじんだ信号Sと雑音Nを分離できない といけない – 単純な方法として,まず,データc(t)を長い時間 にわたって測定し,そのパワースペクトル密度 をプロットする – 低周波成分には,真のデータが多く載っていて, 高周波成分には雑音が多く含まれるだろう – グラフを見て,適当にSとNのパワーを計算して やればいい 16 8th Physics Based Vision Seminar 2004/May/13 FFTによるパワースペクトルの推定 • パワースペクトル(パワースペクトル密度, power spectral density, PSD), ペリオドグラム(ピリオドグラム, periodogram)推定量P wjは図にあるような窓関数, 周波数fkの強さがP(fk)となる • 入力データcjに窓関数wjを掛ける⇔周波数領域での畳込み 17 8th Physics Based Vision Seminar 2004/May/13 ディジタルフィルタ • 広域フィルタ(high-pass filter):低い周波数の雑音を除去 • 低域フィルタ(low-pass filter):高い周波数の雑音を除去 • 帯域フィルタ(band-pass filter):ある周波数帯だけの信号を取 り出す • ノッチフィルタ(notch filter):ある周波数帯だけ除去 – Fourier領域でフィルタを掛ける:簡単.データをFFTして,フィルタ関数 H(f)をかけ算して,逆FFTで時間領域に戻す – 時間領域でフィルタを掛ける:次スライドで説明 18 8th Physics Based Vision Seminar 2004/May/13 時間領域でのディジタルフィルタ • 一般の線形フィルタ • 例:特定の周波数w0のまわりの 狭い周波数帯だけを除去するノッ チフィルタ 入力:データ点の列xk 出力:データ点の列yn フィルタの応答を決める係数 ck,dj(固定) 新しい出力値を,現在およびM個 の過去の入力値,および自分自 身の過去のN個の出力値から作 る • 係数ck,djとフィルタ応答関数H(f) との関係 • H(f)からck,djを求める方法の詳細 は省略 19 8th Physics Based Vision Seminar 2004/May/13 線形予測 • – 時系列の次の値ynを今までのN個の値yn-j(j=1,…,N)から予測 (predict)する式 – xnは時間ステップnでの予測の残差(外れ, discrepancy),予測値(和 の部分)と真値ynとの差 – |xn|<<|yn|が成り立つのが良い – 線形予測(LP)係数(linear prediction (LP) coefficients)d1,…,dN • 時系列の未来を過去の記録から予測できる.未知の未来の 外れxiを仮に0として,この式をそのまま未来に向かって適用 し続ける.特に滑らかに振動する信号に対して正確に補外で きる. • LP係数を求める方法は省略 20 8th Physics Based Vision Seminar 2004/May/13 線形予測符号化 • LP係数を使ってデータを圧縮できる=線形予測符号 化(linear predictive coding, LPC) – – – – LP係数の個数N N個のLP係数 最初のN個のデータ点 それ以降のデータ点は外れ(残差)xiだけ記録する • この外れは小さい値が多いので,Huffman(ハフマン)符 号化(Huffman coding)などを使って圧縮できる 21 8th Physics Based Vision Seminar 2004/May/13 2次元以上のFFT • 複素関数h(k1,k2)が2次元の格子で与えられている とき,その2次元離散Fourier変換H(n1,n2)は,同じ 格子上で与えられる複素関数で,次式のような感じ になる • つまり,2次元FFTは,元の関数の添字ごとに1次元 ずつFFTしたもの • 3次元以上でも同じような感じ 22 8th Physics Based Vision Seminar 2004/May/13 フーリエ変換とラプラス変換とウェーブレット変換 • フーリエ変換 1 1 iyx f ( x) g ( y )e dy g ( y) 2 2 • ラプラス変換 1 yx f ( x) g ( y ) e dy 2 • ウェーブレット変換 1 t b (W f )(b, a) f (t ) dt a R a なお はウェーブレット の複素共役 f ( x)e iyxdx 23 池内研究室 Computer Vision Laboratory 第14章 データのモデル化 Modeling of data 8th Physics Based Vision Seminar 2004/May/13 最小二乗法とカイ2乗当てはめ • N個のデータ点(xi,yi)i=1,…,NをM 個のパラメータaj,j=1,…,Mを持つ モデルで当てはめる • あるいはσiを「重み」と見なしても いいだろう • χ2を各パラメータakで微分すると • 当てはめ値を求めるには とすれば良い • データ点(xi,yi)がそれぞれ標準偏 差σiを持つとする(測定誤差が正 規分布であると仮定) • 一般の場合の以下のカイ2乗を 最小にすることによってモデルパ ラメータの最尤推定値(maximum likelihood estimator)を得る • この,M個の未知数akについての M個の非線形方程式を解けば良 い • σが分からない場合でσを計算し たいときは,まず,σiに適当な定 数を代入(σi=σ)する.例えば σi=1とする.これでパラメータを求 めたあと,σを以下の式で計算す れば良い 25 8th Physics Based Vision Seminar 2004/May/13 データの直線への当てはめ =線形回帰(linear regression) • N個のデータ点(xi,yi)を直線 に当てはめる • 以下を最小化する • 最小値ではχ2のa,bについ ての微分はゼロ • 簡単にすると ただし • これを解くと 26 8th Physics Based Vision Seminar 2004/May/13 つづき • a,bそれぞれの分散 • aとbの共分散(covariance) N 2 2 Q Q , 2 2 1 t a 1 Q ( a, x ) e t dt ( a ) x ( z ) t z 1e t dt 0 • aの不確かさとbの不確かさとの 間の相関係数(-1~1) • rabが正ならaとbの誤差はほとん ど同符号,負ならほとんど異符号 • Qが0.1より大きいなら当てはまり の良さはかなり信頼できる • 0.001より大きいなら誤差は正規 分布ではない.あるいは,多少の 誤差を気にしない人にとっては十 分妥当な当てはまりである • 0.001より小さいなら,モデルか評 価方法かその両方が疑わしい 27 8th Physics Based Vision Seminar 2004/May/13 一般の線形最小2乗法 • M-1次の多項式 • に当てはめたい.関数はxのべき乗で なくとも,サインやコサインでも構わな い 一般形は, • • X1(x),…,XM(x)は基底関数(basis functions) 導出は省略するがAa=bをaについて 解けば解が得られる デザイン行列(design matrix)A(右上 の図)はN×Mの行列 • • • • • σiはi番目のデータの測定誤差 bは長さNのベクトル aはM個のパラメータa1,…,aM • • aについて特異値分解などで解く(σi は既知,もしくは1とおく) ATAの逆行列をCとおくと これは,Cの対角要素は,当てはめ たパラメータaの分散を意味する Cjkの非対角要素はajとakの共分散 28 8th Physics Based Vision Seminar 2004/May/13 非線形最小2乗法を解くためのLevenbergMarquardt法(レヴェンバーグ-マーカート法) • • 当てはめたいモデル χ2評価関数 • • • • • • M次のベクトルbのk番目βk M×M行列Aのkl成分αkl 曲率行列(curvature matrix)Aは Hesse行列を2で割った行列 ベクトルdを現在の解に加えて次 の解を得る anew=aold+d aはM個のパラメータ • • • • Ad=bをdについて解いて反復計 算→逆Hesse法 d=定数×bで反復計算→最急降 下法 Ad+λId=bをdについて解いて反 復計算→Levenberg-Marquardt法 Iは単位行列 λが大きいと最急降下法に似て て,小さいと逆Hesse法に似てる λは反復のたびにうまく変化させ る(徐々に減らしていく) 29 8th Physics Based Vision Seminar 2004/May/13 モンテカルロシミュレーションによる信頼限界 (confidence limits) • パラメータを推定する • 測定装置の測定誤差に できるだけ似せて乱数を 生成し,それをもとに模 擬データを作る • 模擬データからパラメー タを推定する • なんども繰り返し,模擬 パラメータ推定値を多数 もとめる • 右図はパラメータが2つ の場合(2次元確率分 布) 30 8th Physics Based Vision Seminar 2004/May/13 カイ2乗一定の境界による信頼限界 • • • • 求まったパラメータaではχ2は最小 aから離れればχ2は増加 差分Δχ2を使う 自由度νは信頼区間を調べたいパラメータの数 31 8th Physics Based Vision Seminar 2004/May/13 特異値分解による信頼限界 • 特異値分解によってχ2当てはめをしたとき • 特異値分解で得られる正規直交なベクトルは,Δχ2=1の楕円 体の主軸となる • このとき,軸の長さは特異値の逆数となる • 各軸をα倍するとΔχ2はα2倍になる 32 8th Physics Based Vision Seminar 2004/May/13 ロバストネス(頑健性, robustness) • M推定量(M-estimators):モデ ルの当てはめに関するロバスト な統計的推定量 • L推定量(L-estimators):代表値 や中心的傾向の推定に使う – メディアン – Tukey(テューキー)の3項平均 (trimean):1/4,1/2,1/4で加重平均 • R推定量(R-estimators):順位 検定に使う – Kolmogorov-Smirnov統計量 – Spearmanの順位相関係数 33 0 4.96 4.8 4.64 4.48 4.32 4.16 4 3.84 3.68 3.52 3.36 3.2 3.04 2.88 2.72 2.56 2.4 2.24 2.08 1.92 1.76 1.6 1.44 1.28 1.12 0.96 0.8 0.64 0.48 0.32 0.16 -5 1 0 -5 3.4 3.96 4.24 4.52 4.8 3.96 4.24 4.52 4.8 3.12 3.68 2.84 3.12 3.4 2.84 3.68 2.56 0.32 0.04 -0.2 -0.5 -0.8 -1.1 -1.4 -1.6 -1.9 -2.2 -2.5 -2.8 -3 -3.3 -3.6 -3.9 -4.2 -4.4 -4.7 2.56 0 2.28 0.1 2.28 0.2 2 0.3 1.72 0.4 1.44 0.5 2 0.6 1.72 0.7 1.44 4 1.16 0.8 1.16 0.9 0.88 Lorentz分布 0.88 1 0.6 6 0.6 0.32 0.04 -0.2 -0.5 -0.8 -1.1 -1.4 -1.6 -1.9 -2.2 -2.5 -2.8 -3 -3.3 2 重み -3.6 正規分布 両側指数分布 Lorentz分布 -3.9 3 -4.2 5 -4.4 4.8 4.52 4.24 3.96 3.68 3.4 3.12 2.84 2.56 2.28 2 1.72 1.44 1.16 0.88 0.6 0.32 0.04 -0.2 -0.5 -0.8 -1.1 -1.4 -1.6 -1.9 -2.2 -2.5 -2.8 -3 -3.3 -3.6 -3.9 -4.2 -4.4 -4.7 -5 • 正規分布 • 両側指数分布 • Cauchy(コーシー)分布(Cauchy distribution), Lorentz(ローレンツ)分布 (Lorentzian distribution) -4.7 8th Physics Based Vision Seminar 2004/May/13 局所的(local)M推定量によるパラメータ推定 1 正規分布 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 両側指数分布 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 誤差分布 34 8th Physics Based Vision Seminar 2004/May/13 絶対偏差最小化による直線の当てはめ • 初期値は普通に最小2乗法で解いたaとb • を解きたい • 以下を反復計算すれば良い 35 池内研究室 Computer Vision Laboratory 第15章 常微分方程式の数値解法 Integration of ordinary differential equations 8th Physics Based Vision Seminar 2004/May/13 常微分方程式の問題 • 2階の微分方程式 は新しい変数zを補助的に用いて連立の1階微分方 程式に書き直せる • 一般の常微分方程式の問題は,関数yi,i=1,2,…,N, N元連立1階微分方程式 関数fiは既知とする 37 8th Physics Based Vision Seminar 2004/May/13 Euler(オイラー)法(Euler's method) 38 8th Physics Based Vision Seminar 2004/May/13 中点法(2次Runge-Kutta法) 39 8th Physics Based Vision Seminar 2004/May/13 Runge-Kutta(ルンゲ・クッタ)法 (Runge-Kutta method) 40 8th Physics Based Vision Seminar 2004/May/13 Runge-Kuttaに対する適応刻み幅制御 (adaptive stepsize control) • ステップの2重化(step doubling)を十分な精度が得 られるまで繰り返す 41 8th Physics Based Vision Seminar 2004/May/13 修正中点法(modified midpoint method) • n個のステップによって点xから点x+Hへy(x)を計算し ていく 42 8th Physics Based Vision Seminar 2004/May/13 Bulirsch-Stoer(ブリルシュ・ストア)法 (Bulirsch-Soer method) • Richardson(リチャードソン)の極限遅延接近(Richardson's deferred approach to the limit):刻み幅hを減らしていったときの値を関数に当ては めてh=0での関数値を補外する • 有理関数補外(rational function extrapolation)を使う • 有理関数補外をhでなくh2で行う • xをx+Hに進める • 修正中点法を使う • 区間Hを分割する数n=2,4,6,8,12,16,24,32,48,64,96,…,[nj=2nj-2],… 43 8th Physics Based Vision Seminar 2004/May/13 予測子・修正子法(predictor-corrector method) Adams-Bashforth-Moulton(アダムス・バッシュフォー ス・モールトン)法 • 予測子ステップ(predictor step) • 修正子ステップ(corrector step) 44 8th Physics Based Vision Seminar 2004/May/13 硬い(stiff)連立方程式 • 安定に解くために陰的(implicit)な差分を使う • 後退(backward)Euler法 45
© Copyright 2024 ExpyDoc