|
本文簡(jiǎn)要介紹了數(shù)學(xué)上的傅立葉變換及其在AI中的應(yīng)用。 介紹傅里葉變換是有史以來(lái)最深刻的數(shù)學(xué)見(jiàn)解之一,但不幸的是,其含義深深地埋在了一些荒謬的方程式中。 傅立葉變換是一種將某些東西分解為一堆正弦波的方法。 像往常一樣,這個(gè)名字來(lái)自一個(gè)很久以前住的人,叫做傅里葉。 用數(shù)學(xué)術(shù)語(yǔ)來(lái)說(shuō),傅立葉變換是一種將信號(hào)轉(zhuǎn)換為其組成成分和頻率的技術(shù)。 傅里葉變換不僅廣泛用于信號(hào)(無(wú)線電,聲音等)處理,而且還廣泛用于圖像分析(例如,傅里葉變換)。 邊緣檢測(cè),圖像過(guò)濾,圖像重建和圖像壓縮。 一個(gè)例子:透射電子顯微鏡圖像的傅立葉變換有助于檢查樣品的周期性。 周期性-表示模式。 數(shù)據(jù)的傅立葉變換可以擴(kuò)展有關(guān)分析樣品的可訪問(wèn)信息。 為了更好地理解它,請(qǐng)考慮信號(hào)x(t): 如果我們對(duì)另一個(gè)信號(hào)執(zhí)行相同操作,并選擇相同的時(shí)間點(diǎn),我們將測(cè)量其幅度。 考慮另一個(gè)信號(hào)y(t): 當(dāng)我們同時(shí)發(fā)射這兩個(gè)信號(hào)或?qū)⑺鼈兗釉谝黄饡r(shí)會(huì)發(fā)生什么? 當(dāng)我們同時(shí)發(fā)射這兩個(gè)信號(hào)時(shí),我們得到一個(gè)新信號(hào),它是這兩個(gè)信號(hào)的振幅之和。 之所以如此,是因?yàn)檫@兩個(gè)信號(hào)被加在一起。 將兩個(gè)信號(hào)求和:z(t)= x(t)y(t) 如果只給出一個(gè)信號(hào)(x(t)和y(t)之和),我們能否恢復(fù)原始信號(hào)x(t)和y(t)? 是。 這就是傅里葉變換的作用。 它吸收信號(hào)并將其分解為組成它的頻率。 在我們的示例中,傅立葉變換會(huì)將信號(hào)z(t)分解成其組成頻率,如信號(hào)x(t)和y(t)。 傅里葉變換的作用是將我們從時(shí)域移到頻域。 Source 如果有人在想,如果我們想從頻域回到時(shí)域怎么辦? 我們可以使用傅立葉逆變換(IFT)來(lái)實(shí)現(xiàn)。 您需要知道的數(shù)學(xué)。'時(shí)域中的任何連續(xù)信號(hào)都可以由無(wú)窮多個(gè)正弦波唯一唯一地表示。' 這是什么意思? 這意味著,如果我們有一個(gè)由某個(gè)函數(shù)x(t)生成的信號(hào),那么我們可以提出另一個(gè)函數(shù)f(t): 因此,無(wú)論信號(hào)有多強(qiáng),我們都可以找到f(t)之類的函數(shù),它是無(wú)窮多個(gè)正弦曲線之和,實(shí)際上可以完美地表示信號(hào)。 現(xiàn)在,現(xiàn)在出現(xiàn)的問(wèn)題是,如何在上式中找到系數(shù),因?yàn)檫@些值將決定輸出的形狀,從而決定信號(hào)的形狀。 因此,為了獲得這些系數(shù),我們使用傅立葉變換,并且傅立葉變換的結(jié)果是一組系數(shù)。 因此,我們使用X(w)來(lái)表示傅立葉系數(shù),它是頻率的函數(shù),是通過(guò)求解以下積分得到的: 傅立葉變換表示為不定積分: X(w):傅立葉變換x(t):傅立葉逆變換 Fourier Transform and Inverse Fourier transform 另外,當(dāng)我們實(shí)際求解上述積分時(shí),我們得到這些復(fù)數(shù),其中a和b對(duì)應(yīng)于我們要求的系數(shù)。 連續(xù)傅立葉變換將無(wú)限持續(xù)時(shí)間的時(shí)域信號(hào)轉(zhuǎn)換成由無(wú)限數(shù)量的正弦波組成的連續(xù)頻譜。 實(shí)際上,我們處理的是離散采樣的信號(hào),通常以固定間隔,有限的持續(xù)時(shí)間或周期性地進(jìn)行。 為此,經(jīng)典傅里葉變換算法可以表示為離散傅里葉變換(DFT),該函數(shù)將函數(shù)的等距樣本的有限序列轉(zhuǎn)換為離散時(shí)間的等距樣本的等長(zhǎng)序列 傅里葉變換: 因此,這本質(zhì)上是離散傅立葉變換。 我們可以進(jìn)行此計(jì)算,它將產(chǎn)生ib形式的復(fù)數(shù),其中有兩個(gè)傅里葉級(jí)數(shù)系數(shù)。 現(xiàn)在,我們知道了如何對(duì)信號(hào)進(jìn)行采樣以及如何應(yīng)用離散傅立葉變換。 我們想做的最后一件事是,我們想擺脫復(fù)數(shù)i,因?yàn)樵趍llib或systemML中不支持復(fù)數(shù),因?yàn)樗褂梅Q為Euler的公式來(lái)表示: 因此,如果將歐拉公式插入傅立葉變換方程并求解,它將產(chǎn)生實(shí)部和虛部。
如您所見(jiàn),X由ib或a-ib格式的復(fù)數(shù)組成。 因此,如果您求解上述方程,您將獲得傅立葉系數(shù)a和b。
現(xiàn)在,如果僅將a和b的值放在f(t)的方程式中,則可以根據(jù)信號(hào)的頻率定義信號(hào)。 通常,我們使用快速傅里葉變換(FFT)算法,該算法將DFT遞歸地劃分為較小的DFT,從而大大減少了所需的計(jì)算時(shí)間。 DFT的時(shí)間復(fù)雜度為2N2,而FFT的時(shí)間復(fù)雜度為2NlogN。 為什么表示信號(hào)時(shí)要使用余弦和正弦函數(shù)?雖然Sine和Cosine函數(shù)最初是基于直角三角形定義的,但從當(dāng)前情況來(lái)看,這并不是最好的方法。 您可能已經(jīng)被教會(huì)認(rèn)識(shí)到正弦函數(shù)是'斜邊對(duì)立的',但是現(xiàn)在該是一個(gè)稍微不同的觀點(diǎn)了。 考慮單位圓:
在笛卡爾平面上。 假設(shè)通過(guò)原點(diǎn)的直線與軸在逆時(shí)針?lè)较蛏闲纬山嵌圈?,則直線與圓的交點(diǎn)為(cos?θ,sin?θ)。
想一想。 這種觀點(diǎn)與較早的觀點(diǎn)相關(guān)嗎? 這兩個(gè)定義是相同的。 假設(shè)我們通過(guò)使θ線性增加來(lái)開始旋轉(zhuǎn)直線。 您會(huì)得到如下信息:
Credits 正弦和余弦函數(shù)在某些情況下可以說(shuō)是最重要的周期函數(shù): · SHM振蕩器中位移,速度和加速度如何隨時(shí)間變化的周期性函數(shù)是正弦函數(shù)。 · 每個(gè)粒子都有波動(dòng)的性質(zhì),反之亦然。 這是德布羅意的波粒對(duì)偶。 波始終是某種物理量的正弦函數(shù)(例如EM波的電場(chǎng)和聲波的壓力)。 聲音本身就是壓力擾動(dòng),它通過(guò)能夠壓縮和擴(kuò)展的材料介質(zhì)傳播。 隨聲波變化的一點(diǎn)是壓力,它隨時(shí)間呈正弦變化。 傅立葉變換的收斂如果一個(gè)點(diǎn)以恒定的速度繞圓運(yùn)行,則其在地面上方的高度將跟蹤正弦函數(shù)。 點(diǎn)移動(dòng)的速度對(duì)應(yīng)于頻率,圓的半徑對(duì)應(yīng)于振幅。
再增加1個(gè)圓圈,
再添加2個(gè)圈子,
再添加9個(gè)圈子:
幾乎是離散的波形。 由于傅立葉定理,我們可以生成具有適當(dāng)頻率和半徑的圓的任何信號(hào)。 例如,這是一個(gè)近似的方波。 我使用了來(lái)自#125編碼挑戰(zhàn)的Dan Shiffman的代碼來(lái)制作動(dòng)畫。 您可以從他的GitHub獲取javascript代碼,也可以嘗試一下。 人工智能中的傅立葉變換傅里葉變換是線性函數(shù),可引起非線性。 使用卷積。 2個(gè)信號(hào)乘積的傅立葉變換是2個(gè)信號(hào)的卷積。 令x(t)和y(t)是兩個(gè)具有卷積X(t)* Y(t)的函數(shù),則 F {x(t).y(t)} = X(t)* Y(t) 請(qǐng)記住,時(shí)域中的卷積是頻域中的乘法。 這就是傅立葉變換主要用于機(jī)器學(xué)習(xí),尤其是深度學(xué)習(xí)算法的方式。 我將以卷積神經(jīng)網(wǎng)絡(luò)(CNN)為例; CNN中90%的計(jì)算是卷積,并且有許多方法可以降低這種計(jì)算的強(qiáng)度,其中之一是快速傅立葉變換(FFT)。 代替卷積,輸入和濾波器矩陣通過(guò)FFT轉(zhuǎn)換到頻域,以進(jìn)行乘法。 然后,通過(guò)逆FFT(IFFT)將輸出轉(zhuǎn)換回時(shí)域。
FFT的另一用途是可用于降維或特征提取。 當(dāng)數(shù)據(jù)集中的每個(gè)樣本都是信號(hào)(時(shí)間序列或圖像等)時(shí),它可能包含數(shù)千個(gè)樣本。 但是它們實(shí)際上可能只對(duì)應(yīng)于傅立葉域中的幾個(gè)點(diǎn)(特別是如果存在一定的周期性)。 這大大簡(jiǎn)化了問(wèn)題。 有時(shí)使用傅立葉域可能會(huì)提供平移不變性。 也就是說(shuō),即使信號(hào)之間存在滯后,這種方差也不會(huì)影響它們?cè)诟盗⑷~域中的表示。 傅立葉變換的Python實(shí)現(xiàn)可以使用numpy和scipy python庫(kù)完成FFT的最簡(jiǎn)單實(shí)現(xiàn)。 %matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltimport scipy.fftpack# Number of samplepointsN = 600# sample spacingT = 1.0 / 800.0x = np.linspace(0.0, N*T, N)y = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)yf = scipy.fftpack.fft(y)xf = np.linspace(0.0, 1.0/(2.0*T), N/2)fig, ax = plt.subplots()ax.plot(xf, 2.0/N * np.abs(yf[:N//2]))plt.show()
FFT plot 結(jié)論FFT用于數(shù)字記錄,采樣,加法合成和音高校正軟件。 FFT的重要性源于以下事實(shí):它使在頻域中的工作與在時(shí)域或空間域中的工作在計(jì)算上同等可行。 FFT的一些重要應(yīng)用包括: · 快速大整數(shù)和多項(xiàng)式乘法 · Toeplitz,循環(huán)矩陣和其他結(jié)構(gòu)化矩陣的高效矩陣向量乘法 · 過(guò)濾算法 · 離散余弦或正弦變換的快速算法(例如用于JPEG和MPEG / MP3編碼和解碼的快速離散余弦變換)。 · 快速切比雪夫逼近。 · 求解差分方程。 · 同位素分布的計(jì)算。 好吧,這就是本文的全部?jī)?nèi)容,希望大家喜歡閱讀,如果本文對(duì)您有所幫助,我將感到非常高興。 隨時(shí)在評(píng)論部分分享您的評(píng)論/想法/反饋。 謝謝閱讀!??! (本文翻譯自Nagesh Singh Chauhan的文章《Fourier Transformation for a Data Scientist》,參考:https:///fourier-transformation-for-a-data-scientist-1f3731115097) |
|
|
來(lái)自: 天朗氣清uizw04 > 《數(shù)學(xué)》