0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

傅里葉變換如何用于深度學(xué)習(xí)領(lǐng)域

新機(jī)器視覺 ? 來源:新機(jī)器視覺 ? 2023-06-14 10:01 ? 次閱讀

機(jī)器學(xué)習(xí)深度學(xué)習(xí)中的模型都是遵循數(shù)學(xué)函數(shù)的方式創(chuàng)建的。從數(shù)據(jù)分析到預(yù)測建模,一般情況下都會有數(shù)學(xué)原理的支撐,比如:歐幾里得距離用于檢測聚類中的聚類。

傅里葉變換是一種眾所周知的將函數(shù)從一個域轉(zhuǎn)換到另一個域的數(shù)學(xué)方法,它也可以應(yīng)用于深度學(xué)習(xí)。

本文將討論傅里葉變換,以及如何將其用于深度學(xué)習(xí)領(lǐng)域。

什么是傅里葉變換?

在數(shù)學(xué)中,變換技術(shù)用于將函數(shù)映射到與其原始函數(shù)空間不同的函數(shù)空間。傅里葉變換時也是一種變換技術(shù),它可以將函數(shù)從時域空間轉(zhuǎn)換到頻域空間。例如以音頻波為例,傅里葉變換可以根據(jù)其音符的音量和頻率來表示它。

我們可以說,任何函數(shù)的傅里葉變換所執(zhí)行的變換都是頻率的函數(shù)。其中結(jié)果函數(shù)的大小是原始函數(shù)所包含的頻率的表示。

我們舉一個信號的例子,它的時域函數(shù)如下所示:

c7442144-0a44-11ee-962d-dac502259ad0.png

在同一時間范圍內(nèi)獲取另一個信號的一部分:

c74c3f14-0a44-11ee-962d-dac502259ad0.png

將這兩個信號的稱為和,其中 n 是時域。因此,如果我們添加這些信號,信號的結(jié)構(gòu)將如下所示:

c75aaad6-0a44-11ee-962d-dac502259ad0.png

可以看到,函數(shù)的信號相加是將兩個信號進(jìn)行了加的操作,如果我們試圖從這個相加信號 C 中提取信號 A 或 B,我們會遇到一個問題,因?yàn)?這些信號只是功率相加,和時間沒有關(guān)系。也就是說相加的操作是同一時間上的功率的相加。

c76590ea-0a44-11ee-962d-dac502259ad0.png

可以在上圖中看到,頻域可以很容易地突出信號之間的差異。如果希望將這些信號轉(zhuǎn)換回時域,我們可以使用傅里葉逆變換。

傅立葉變數(shù)學(xué)原理

正弦序列可用于表示時域中的信號,這是傅立葉變換的基礎(chǔ)。所以如果函數(shù)是一個連續(xù)信號,函數(shù)f可以用來表示為:

可以看到該函數(shù)是由無限正弦曲線相加組成的,我們可以將其視為函數(shù)信號的表示,并且該函數(shù)具有定義輸出信號結(jié)構(gòu)所需的兩個系數(shù)。

求解傅里葉變換積分(本質(zhì)上是頻率的函數(shù))會產(chǎn)生這些系數(shù)。傅里葉變換的結(jié)果可以被認(rèn)為是一組系數(shù)。它可以用數(shù)學(xué)表示如下:

而這個函數(shù)的倒數(shù)可以看作是我們用來將頻域函數(shù)轉(zhuǎn)換為時域函數(shù)的時間函數(shù),也就是傅里葉逆變換。

求解上面的這些積分可以得到a和b的值,這里討論的是信號是連續(xù)信號的情況。但是在現(xiàn)實(shí)生活中,大多數(shù)問題都是從離散采樣的信號中產(chǎn)生的,為了找出這種信號變換的系數(shù),我們需要執(zhí)行離散傅里葉變換 (DFT)。

使用DFT我們可以得到一個相同長度等間隔的樣本序列,這個函數(shù)是由一組等間隔的樣本序列組成的。上面給出的函數(shù)的系數(shù)可以由下面的函數(shù)得到。

和的值將是:

在函數(shù)中使用項(xiàng)和,就可以找到頻域中的信號。

使用 Python 進(jìn)行傅里葉變換

Python 的 scipy 模塊提供了數(shù)學(xué)中所需的所有轉(zhuǎn)換技術(shù),所以可以直接使用它

import numpy as np 
import matplotlib.pyplot as plt 
from scipy.fft import fft, fftfreq

制作正弦波

#  sample points 
N = 1200 
 
# sample spacing 
T = 1.0 / 1600.0 
 
x = np.linspace(0.0, N*T, N, endpoint=False) 
sum = np.sin(50.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x) 
 
plt.plot(sum) 
plt.title('Sine wave') 
plt.xlabel('Time') 
plt.ylabel('Amplitude') 
plt.grid(True, which='both') 
plt.show()
c76f5e9a-0a44-11ee-962d-dac502259ad0.png

上面的輸出中,可以看到使用 NumPy 生成的正弦波,現(xiàn)在可以使用 scipy 庫的 FFT 模塊對其進(jìn)行轉(zhuǎn)換。

sumf = fft(sum) 
xf = fftfreq(N, T)[:N//2] 
plt.ylabel('frequency') 
plt.xlabel('sample') 
plt.title("FFT of sum of two sines") 
plt.plot(xf, 2.0/N * np.abs(sumf[0:N//2])) 
plt.show()
c779b16a-0a44-11ee-962d-dac502259ad0.png

現(xiàn)在可以清楚地看到各種波的頻率是多少,作為時域的函數(shù)形成的時這些并不明顯,只有在頻域表示時才能清楚的看到這些區(qū)別。

通過上面的介紹已經(jīng)了解了傅立葉變換的基本內(nèi)容,但它現(xiàn)在與神經(jīng)網(wǎng)絡(luò)有什么關(guān)系呢?傅里葉變換是一種逼近其他頻域函數(shù)的工具,而神經(jīng)網(wǎng)絡(luò)也可以逼近任意函數(shù)。我們將在本文的下一部分中介紹神經(jīng)網(wǎng)絡(luò)和傅里葉變換之間的關(guān)系。

神經(jīng)網(wǎng)絡(luò)和傅里葉變換之間有什么關(guān)系?

可以將傅里葉變換視為一種有助于逼近其他函數(shù)的函數(shù),并且我們還知道神經(jīng)網(wǎng)絡(luò)可以被認(rèn)為是一種函數(shù)逼近技術(shù)或通用函數(shù)逼近技術(shù)。

c78302e2-0a44-11ee-962d-dac502259ad0.jpg

上圖描繪了一個采用傅里葉變換方法的神經(jīng)網(wǎng)絡(luò)。一個相對基本的神經(jīng)網(wǎng)絡(luò)的目標(biāo)是希望在特定時間逼近一個未知函數(shù)及其值。大多數(shù)神經(jīng)網(wǎng)絡(luò)的任務(wù)是學(xué)習(xí)整個函數(shù)或算法或數(shù)據(jù)中指定的值點(diǎn)處的函數(shù),傅里葉網(wǎng)絡(luò)也是一樣通過迭代技術(shù)找到逼近函數(shù)的參數(shù)

卷積神經(jīng)網(wǎng)絡(luò)中的傅立葉變換

卷積神經(jīng)網(wǎng)絡(luò)中卷積層是主要基礎(chǔ)組曾,在網(wǎng)絡(luò)中,任何卷積層的主要工作是將濾波器(卷積核)應(yīng)用于輸入數(shù)據(jù)或特征圖,對前一層的輸出進(jìn)行卷積。該層的任務(wù)是學(xué)習(xí)過濾器的權(quán)重。在一個復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)中看到,層數(shù)很多,每層的過濾器也很多,這使得計算成本非常高。

使用傅里葉變換可以將層計算轉(zhuǎn)換為頻域中的元素乘積,網(wǎng)絡(luò)的任務(wù)將是相同的,但是可以通過使用傅里葉變換來節(jié)省計算器的能量。

綜上所述,我們可以說卷積層或卷積層的過程與傅里葉變換有關(guān)。大多數(shù)時域中的卷積層可以被認(rèn)為是頻域中的乘法。我們可以很容易地通過多項(xiàng)式乘法來理解卷積。

假設(shè)我們必須對任意值的和進(jìn)行函數(shù)處理,如下所示:

而這些函數(shù)的多項(xiàng)式乘法可以寫成函數(shù)h

綜上所述,我們可以說卷積層過程可以定義為上述給定函數(shù)的乘積。函數(shù)的向量形式可以寫成:

向量形式的向量乘法為:

其中:

乘法中的符號“.”表示乘法,是卷積的。

和分別是傅里葉變換和傅里葉逆變換。

“”和“”分別是時域和頻域。

綜上所述,我們可以看到如果函數(shù)與時域相關(guān),卷積層最終意味著傅里葉變換及其在乘法中的逆。

如何在深度學(xué)習(xí)中使用傅立葉變換?

在上一節(jié)中,我們已經(jīng)看到時域中的卷積過程可以簡單地認(rèn)為是頻域中的乘法。這證明它可以用于各種深度學(xué)習(xí)算法,即使它可以用于各種靜態(tài)預(yù)測建模算法。

我們來看一個類似的卷積神經(jīng)網(wǎng)絡(luò)示例,這樣我們就不會偏離本文的主題。

卷積數(shù)學(xué)操作是在時域中執(zhí)行乘法,而傅里葉變換背后的數(shù)學(xué)是在頻域中進(jìn)行乘法。

c78c2e12-0a44-11ee-962d-dac502259ad0.jpg

為了在任何卷積神經(jīng)網(wǎng)絡(luò)中應(yīng)用傅里葉變換,我們可以對輸入和濾波器進(jìn)行一些更改。

如果 CNN 中的輸入矩陣和濾波器矩陣可以轉(zhuǎn)換為頻域進(jìn)行乘法運(yùn)算,并且頻域乘法的結(jié)果矩陣可以轉(zhuǎn)換為時域矩陣,則不會對算法的準(zhǔn)確性造成任何影響。矩陣從時域到頻域的轉(zhuǎn)換可以通過傅里葉變換或快速傅里葉變換來完成,而從頻域到時域的轉(zhuǎn)換可以通過傅里葉逆變換或快速傅里葉逆變換來完成。

下圖展示了我們?nèi)绾问褂每焖俑道锶~變換代替卷積。

c795de3a-0a44-11ee-962d-dac502259ad0.png

正如我們所討論的,在任何復(fù)雜的網(wǎng)絡(luò)中濾波器和層的數(shù)量都是非常高的,由于這些數(shù)量的增加,使用卷積的計算過程變得非常緩慢。而利用傅里葉變換可以減少這種計算的復(fù)雜性,使模型運(yùn)行速度更快。

如果你對這篇文章的思路有興趣可以自行嘗試,并歡迎討論。

責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 傅里葉變換
    +關(guān)注

    關(guān)注

    6

    文章

    429

    瀏覽量

    42540
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5463

    瀏覽量

    120889

原文標(biāo)題:神經(jīng)網(wǎng)絡(luò)與傅立葉變換到底有沒有關(guān)系?

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    何用LABVIEW做一個關(guān)于離散傅里葉變換

    各位如何用LABVIEW做一個關(guān)于離散傅里葉變換???。?!
    發(fā)表于 04-08 21:59

    學(xué)習(xí)傅里葉變換意義和方法

    學(xué)習(xí)傅里葉變換需要面對大量的數(shù)學(xué)公式,數(shù)學(xué)功底較差的同學(xué)聽到傅里葉變換就頭疼。事實(shí)上,許多數(shù)學(xué)功底好的數(shù)字信號處理專業(yè)的同學(xué)也不一定理解傅里葉變換的真實(shí)含義,不能做到學(xué)以致用!事實(shí)上,
    發(fā)表于 06-28 07:31

    傅里葉變換是什么?如何求傅里葉變換?

    傅里葉變換是什么?三傅里葉變換的意義是什么?如何求傅里葉變換
    發(fā)表于 05-08 09:23

    DSP變換運(yùn)算-傅里葉變換

    第24章 DSP變換運(yùn)算-傅里葉變換本章節(jié)開始進(jìn)入此教程最重要的知識點(diǎn)之一傅里葉變換。關(guān)于傅里葉變換,本章主要是把傅里葉相關(guān)的基礎(chǔ)知識進(jìn)行必要的介紹,沒有這些基礎(chǔ)知識的話,后面
    發(fā)表于 08-03 06:14

    深入淺出的學(xué)習(xí)傅里葉變換

    見過的介紹傅里葉變換的很好的文章,通俗易懂,轉(zhuǎn)發(fā)的,學(xué)習(xí)。
    發(fā)表于 04-29 14:12 ?10次下載

    小波變換傅里葉變換好在哪里_小波變換傅里葉變換詳解

    小波變換傅里葉變換有什么區(qū)別嗎?小波變換傅里葉變換哪個好?我們通過小波變換傅里葉變換的詳細(xì)
    發(fā)表于 01-13 11:02 ?1.6w次閱讀
    小波<b class='flag-5'>變換</b>比<b class='flag-5'>傅里葉變換</b>好在哪里_小波<b class='flag-5'>變換</b>與<b class='flag-5'>傅里葉變換</b>詳解

    深入淺出的學(xué)習(xí)傅里葉變換

    學(xué)習(xí)傅里葉變換需要面對大量的數(shù)學(xué)公式,數(shù)學(xué)功底較差的同學(xué)聽到傅里葉變換就頭疼
    的頭像 發(fā)表于 07-07 14:15 ?620次閱讀
    深入淺出的<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>傅里葉變換</b>

    傅里葉變換基本性質(zhì) 傅里葉變換本質(zhì) 傅里葉變換的應(yīng)用

    傅里葉變換基本性質(zhì) 傅里葉變換本質(zhì) 傅里葉變換的應(yīng)用 傅里葉變換是現(xiàn)代數(shù)學(xué)、物理學(xué)、工程學(xué)等領(lǐng)域中非常重要的一種數(shù)學(xué)工具和基本理論。在信號處
    的頭像 發(fā)表于 09-07 16:18 ?6445次閱讀

    傅里葉變換的本質(zhì)及物理意義 常用傅里葉變換性質(zhì)

    傅里葉變換的本質(zhì)及物理意義 常用傅里葉變換性質(zhì) 傅里葉變換是一種重要的數(shù)學(xué)工具,通過將一個復(fù)雜的函數(shù)表示為一系列簡單的正弦余弦函數(shù)之和,可以在許多領(lǐng)域應(yīng)用,包括信號處理、圖像處理、物理
    的頭像 發(fā)表于 09-07 16:30 ?3926次閱讀

    傅里葉變換公式總結(jié)

    和洞察力。這種變換在信號處理、圖像處理、量子力學(xué)等領(lǐng)域有廣泛的應(yīng)用?,F(xiàn)在我們來詳細(xì)了解傅里葉變換的公式。 一、連續(xù)信號的傅里葉變換公式 傅里葉變換
    的頭像 發(fā)表于 09-07 16:47 ?7232次閱讀

    傅里葉變換和反變換公式

    傅里葉變換和反變換公式? 傅里葉變換和反變換在信號處理領(lǐng)域中被廣泛應(yīng)用。傅里葉變換是將一個時域信
    的頭像 發(fā)表于 09-07 16:53 ?1.5w次閱讀

    傅里葉變換和離散傅里葉變換的關(guān)系

    Fourier Transform,簡稱DFT)則是適用于離散信號的傅里葉變換方法。 傅里葉變換的基本原理是將一個連續(xù)的信號,分解成一系列簡單的正弦波或者余弦波。而這些正弦波和余弦波,都有一個共同的周期,因此可以通過求取它們的
    的頭像 發(fā)表于 09-07 17:04 ?2454次閱讀

    傅里葉變換的定義 傅里葉變換的意義

    傅里葉變換的定義 傅里葉變換的意義? 傅里葉變換,表示能將滿足一定條件的某個函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合。 在不同的研究領(lǐng)域,
    的頭像 發(fā)表于 11-30 15:32 ?1893次閱讀

    什么是傅里葉變換和逆變換?為什么要用傅里葉變換?

    傅里葉變換和逆變換是一對數(shù)學(xué)變換,用于分析信號和數(shù)據(jù)的頻域特征。傅里葉變換將一個信號或函數(shù)從時間域轉(zhuǎn)換到頻域,而逆
    的頭像 發(fā)表于 01-11 17:19 ?3486次閱讀

    傅里葉變換基本原理及在機(jī)器學(xué)習(xí)應(yīng)用

    連續(xù)傅里葉變換(CFT)和離散傅里葉變換(DFT)是兩個常見的變體。CFT用于連續(xù)信號,而DFT應(yīng)用于離散信號,使其與數(shù)字?jǐn)?shù)據(jù)和機(jī)器學(xué)習(xí)任務(wù)
    發(fā)表于 03-20 11:15 ?804次閱讀
    <b class='flag-5'>傅里葉變換</b>基本原理及在機(jī)器<b class='flag-5'>學(xué)習(xí)</b>應(yīng)用