「卷積」其實沒那麼難以理解

2021-02-24 磐創AI

來源 | 知乎(https://zhuanlan.zhihu.com/p/41609577)

【導讀】狄拉克函數從何而來?卷積是怎麼回事?卷積定理又是什麼?如果你對卷積公式不甚了解,亦或是想對其有更深的認知,那麼本文便是一份優秀的科普材料。傅立葉變換拉普拉斯變換自(互)相關卷積是線性系統分析裡面最重要的四個數學工具,可以毫不誇張的說,自動控制、信號處理等課程幾乎所有內容都是這幾個公式組合排列的結果。四個公式中的三個在其他文章中都就已經介紹過了。今天我們就來討論一下最後一個:卷積公式。保羅·狄拉克(Paul Adrien Maurice Dirac,1902-1984),出生在瑞士,後移居英國,著名理論物理學家。通過幾個場景來認識一下(故事來源於網絡,版權歸原作者所有)。
鏡頭一:
1933年狄拉克獲諾貝爾物理獎(與薛丁格共享)。當時他私下對學術老前輩盧瑟福(也是諾獎得主)說,對於獲諾獎這個事他很苦惱,他不想成為新聞人物,更不想出名,這樣會打斷他平靜的生活,打算拒絕接受這個榮譽。盧瑟福對他說:「如果你這樣做,你會更出名。」於是狄拉克同意領獎。
鏡頭二:
狄拉克在美國威斯康辛大學作報告。期間,有一位聽眾說 :「您寫在黑板右上方的那個方程我看不懂。」狄拉克聽後一言不發,讓當時的場面相當尷尬。主持人試圖打破僵局,說狄拉克教授剛才那個問題您還沒回答呢。狄拉克喃喃地回應道:「剛才那個不是一個疑問句,那是一個陳述句啊。」
鏡頭三:
位於英國倫敦的威斯敏斯特教堂(Westminster Abbey),是英國國王登基和皇室舉行婚禮的地方。這裡長眠著許多偉大人物,如牛頓、達爾文、狄更斯、邱吉爾、彌爾頓。牛頓墓旁放置有一塊石碑,上面鐫刻著保羅• 狄拉克的名字以及他那優美的方程式。狄拉克最早是從事相對論動力學的研究,1925年海森堡訪問劍橋大學,狄拉克深受影響,把精力轉向量子力學的研究。1928年他把相對論引進了量子力學,建立了相對論形式的薛丁格方程,也就是著名的狄拉克方程。1930年狄拉克出版了他的量子力學著作著作《量子力學原理》,這是物理史上重要的裡程碑,至今仍是量子力學的經典教材。在他的教材裡面,他提出了一個怪異的函數,一般被叫做狄拉克 

clc; clear all; close all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=10000;                                     % sampling numbers
Tau0=1;                                      % define initial Tau
for i=1:100
    Tau=Tau0/i; 
    TimeRange=linspace(-10*Tau,10*Tau,N);        % display time range
    FreqRange=linspace(-200*pi/i,200*pi/i,N);    % display frequency range
    Half_Tau=Tau/2;                              % -0.5 Tao ==> 0.5 Tao
    RECT=1/Tau*double(abs(TimeRange)<Half_Tau);  % one rectangular pulse
    SINC=sinc(FreqRange*Tau*pi);                 % sinc pulse, Xtra
    
    subplot(2,1,1);
    plot(TimeRange,RECT,'LineWidth',1.5); grid on;
    xlim([-1 1]); ylim([-0.5 120]);
    xlabel('Time'); ylabel('Amplitude');
    title('Made by J Pan')
    
    subplot(2,1,2);
    plot(FreqRange,SINC,'LineWidth',1.5); grid on; 
    xlim([-200*pi/i 200*pi/i]);ylim([-0.5 1.5]); 
    xlabel('Frequency'); ylabel('Amplitude');
    title('Made by J Pan')
    drawnow;   
end

假設這個信號也有愛美之心,以瘦為榮,天天不吃飯,以至於最後瘦成了一道閃電,比如 δ函數包含了所有頻率的分量。這個有啥用呢?用處大了去了,這就是一個天然的最理想的試驗函數啊!只用一個函數就可以把系統的所有頻率分量的響應激發出來,怎麼樣,帶勁不帶勁?換句話說,在輸入為狄拉克δ函數時,系統的衝激響應包含了系統的所有信息,也就是說系統的理想衝擊響應就可以代表系統本身 ——我們用小錘敲一下系統,記錄下來響應,就能夠得到系統的模型了。終於回歸正題,卷積說的是什麼?為什麼會在線性系統這麼廣泛的使用?我查閱了大量資料,發現有一個例子說的特別好,引用特別廣泛,以至於都不知道原作者是誰了。接下來我們也用這個例子(版權歸原作者所有)為基礎來延伸和拓展一下。話說有一個七品縣令,喜歡用打板子來懲戒那些市井無賴,而且有個慣例:如果沒犯大罪,只打一板,釋放回家,以示愛民如子。
有一個無賴,想出人頭地卻沒啥指望,心想:既然揚不了善名,出惡名也成啊。怎麼出惡名?炒作唄!怎麼炒作?找名人呀!隔現在,註冊個微博帳號隨便找個流量明星就能開撕啊 ——那時候不行,還沒有微博一說,他自然想到了他的行政長官——縣令。
於是在光天化日之下,無賴站在縣衙門前撒了一泡尿,後果是可想而知,這是明目張胆的藐視公堂無視法律啊,自然被請進大堂挨了一板子——這無賴身體也是好,挨了板子後居然昂首挺胸回家了。躺了一天,嘿!身上啥事也沒有!無賴在這件事上的決心還很大,第二天如法炮製,全然不顧行政長管的仁慈和衙門的體面,第三天、第四天.每天去縣衙門領一個板子回來,還喜氣洋洋地,堅持一個月之久!這無賴的名氣已經和衙門口的臭氣一樣,傳遍八方了!縣令大人噤著鼻子,呆呆地盯著案子上的驚堂木,擰著眉頭思考一個問題:這三十個大板子怎麼不好使捏?.想當初,本老爺可是因為奧數加分才金榜題名的,今天要好好建個數學模型,好歹要解決這個問題,挽回一點面子:
——人(系統!)挨板子(衝擊!)以後,會有什麼表現(輸出!)?
——看疼到啥程度。像這無賴的體格,每天挨一個板子啥事都不會有,連哼一下都不會有,你也看到他那得意洋洋的嘴臉了;如果一次連揍他十個板子,他可能會皺皺眉頭,咬咬牙,硬挺著不哼;揍到二十個板子,他會疼得臉部扭曲,象豬似地哼哼;揍到三十個板子,他可能會象驢似地嚎叫,一把鼻涕一把淚地求你饒他一命;揍到四十個板子,他會大小便失禁,勉強哼出聲來;揍到五十個板子,他連哼一下都不可能——死啦!
——嗚呼呀!為啥那個無賴連挨了三十天大板卻不喊繞命,而一次連續打上三十個大板呀?
—— 呀呼嘿,打一次的時間間隔(Δτ=24小時)太長了,所以那個無賴承受的痛苦程度一天一利索,沒有疊加,始終是一個常數;如果縮短打板子的時間間隔(建議Δτ=0.5秒),那他的痛苦程度可就迅速疊加了;等到這無賴挨三十個大板(t=30)時,痛苦程度達到了他能喊叫的極限,會收到最好的懲戒效果,再多打就顯示不出您的仁慈了。
——還是不太明白,時間間隔小,為什麼痛苦程度會疊加呢?
——這與人(線性時不變系統)對板子(脈衝、輸入、激勵)的響應有關。什麼是響應?人挨一個板子後,疼痛的感覺會在一天(假設的,因人而異)內慢慢消失(衰減),而不可能突然消失。這樣一來,只要打板子的時間間隔很小,每一個板子引起的疼痛都來不及完全衰減,都會對最終的痛苦程度有不同的貢獻,總的來說:
t個大板子造成的痛苦程度=Σ(第τ個大板子引起的痛苦*衰減係數)先考慮挨兩板時是什麼情況:把挨板子時的疼痛響應用 這就是卷積公式,它本質上說系統(人)在連續激勵下(挨板子)所的得到的結果(疼)。翻譯的學術一點:卷積將是過去所有連續信號經過系統的響應之後得到的在觀察那一刻的加權疊加。而現實生活中,我們就是要解大量的這種問題,這也就是為啥卷積這麼常見這麼重要的原因。前面我說了狄拉克函數,說了卷積,為什麼把他們兩個放在一起?這可以通過卷積定理來說明。信號與系統或自動控制研究的內容是輸入輸出系統三者之間的關係。在第一部分,我們說狄拉克函數(也就是單位脈衝函數)的傅立葉變換橫貫在整個頻域上,因此可以作為一個理想的測試信號來確定系統的在各個頻率上的響應情況,也就是說可以用單位脈衝響應可以完整的表徵系統的響應特性。在第二部分的例子中,打板子可以看成是一種衝擊或脈衝信號,系統的響應可以用卷積來計算。這些都是在時域觀察的,如果我們切換到頻域,會是什麼樣?假設激勵信號函數卷積的傅立葉變換是函數傅立葉變換的乘積。具體分為時域卷積定理和頻域卷積定理,時域卷積定理即時域內的卷積對應頻域內的乘積;頻域卷積定理即頻域內的卷積對應時域內的乘積,兩者具有對偶關係。還記得我們以前說過的,時域和頻域有某種對稱性嘛?時域的乘法與頻域卷積或時域卷積與頻域乘法是具有對稱性的,有了這個工具,我們在處理問題的時候就可以隨意轉換,哪個域方便就在哪個域計算。✄---

看到這裡,說明你喜歡這篇文章,請點擊「在看」或順手「轉發」「點讚」。

歡迎微信搜索「panchuangxx」,添加小編磐小小仙微信,每日朋友圈更新一篇高質量推文(無廣告),為您提供更多精彩內容。

相關焦點

  • 總結 | 「卷積」其實沒那麼難以理解
    二、卷積是怎麼個回事?終於回歸正題,卷積說的是什麼?為什麼會在線性系統這麼廣泛的使用?我查閱了大量資料,發現有一個例子說的特別好,引用特別廣泛,以至於都不知道原作者是誰了。接下來我們也用這個例子(版權歸原作者所有)為基礎來延伸和拓展一下。話說有一個七品縣令,喜歡用打板子來懲戒那些市井無賴,而且有個慣例:如果沒犯大罪,只打一板,釋放回家,以示愛民如子。
  • 深度| 理解深度學習中的卷積
    但卷積為什麼如此強大?它的原理是什麼?在這篇博客中我將講解卷積及相關概念,幫助你徹底地理解它。網絡上已經有不少博客講解卷積和深度學習中的卷積,但我發現它們都一上來就加入了太多不必要的數學細節,艱深晦澀,不利於理解主旨。這篇博客雖然也有很多數學細節,但我會以可視化的方式一步步展示它們,確保每個人都可以理解。文章第一部分旨在幫助讀者理解卷積的概念和深度學習中的卷積網絡。
  • 深入理解卷積網絡的卷積
    此後,卷積神經網絡不斷向前發展,基於CNN的體系結構不斷贏得ImageNet, 2015年,基於卷積神經網絡的體系結構ResNet的誤差率超過人類水平的5.1%,誤差率為3.57%。卷積的誤稱在CNN中廣泛使用的卷積運算是用詞不當的。嚴格地說,所使用的操作是相關,而不是卷積。
  • 「相關」與「卷積」的理解和使用
    信號的卷積卷積是兩個時間序列之間一種激勵和響應得出結果的關係。 卷積是可交換,可結合和可分配的。相關積分和卷積積分值有限,都要求二個信號中至少有一個是能量有限信號。當二個信號都為功率信號時,積分結果是無限的,需引入時間平均。
  • 如何通俗易懂地解釋卷積?
    在知乎,已經很多的熱心網友對卷積舉了很多形象的例子進行了解釋,如捲地毯、丟骰子、打耳光、存錢等等。讀完覺得非常生動有趣,但過細想想,還是感覺有些地方還是沒解釋清楚,甚至可能還有瑕疵,或者還可以改進(這些後面我會做一些分析)。帶著問題想了兩個晚上,終於覺得有些問題想通了,所以就寫出來跟網友分享,共同學習提高。不對的地方歡迎評論拍磚。。。
  • PyTorch可視化理解卷積神經網絡
    為了從頭開始獲得清晰的視角,本文將通過對每一層進行可視化以深入理解卷積神經網絡。在輸出層,一般返回的是類別分數,比如說給定輸入是數字「3」的圖像,那麼在輸出層中,相應的神經元「3」與其它神經元相比具有更高的類別分數。這裡又會出現一個問題,模型需要包含多少個隱藏層,每層應該包含多少神經元?
  • 形象理解深度學習中八大類型卷積
    本文總結了深度學習中常用的八大類型的卷積,以非常形象的方式幫助你建立直覺理解,為你的深度學習提供有益的參考。分別是單通道卷積、多通道卷積、3D卷積、1 x 1卷積、轉置卷積、擴張卷積、可分離卷積、分組卷積。
  • 用FFT和IFFT實現卷積
    首先我們來理解什麼是卷積,卷積分為連續卷積和離散卷積,連續卷積是積分,離散卷積是求和。好了,前言說完了,下面可以進入核心內容——卷積如果你每天都到地下去打撞球,那麼老闆每天都要扇你一巴掌,不過當老闆打你一巴掌後,你5分鐘就消腫了,所以時間長了,你甚至就適應這種生活了……如果有一天,老闆忍無可忍,以0.5秒的間隔開始不間斷的扇你的過程,這樣問題就來了,第一次扇你鼓起來的包還沒消腫,第二個巴掌就來了,你臉上的包就可能鼓起來兩倍高,老闆不斷扇你,脈衝不斷作用在你臉上
  • 理解卷積神經網絡中的輸入與輸出形狀(Keras實現)
    即使我們從理論上理解了卷積神經網絡,在實際進行將數據擬合到網絡時,很多人仍然對其網絡的輸入和輸出形狀(shape)感到困惑。本文章將幫助你理解卷積神經網絡的輸入和輸出形狀。讓我們看看一個例子。CNN的輸入數據如下圖所示。
  • 如何從信號分析角度理解卷積神經網絡的複雜機制?
    為了分析 CNN 的非線性,作者提出了一個數學模型來理解 CNN 的行為。在模型中,CNN 被視為由基本操作單元組成的一個網絡,它們計算「球面修正相關(RECOS)」。因此,它被稱為 RECOS 模型。在 CNN 訓練期間,首先初始化核權重,然後通過梯度下降法(gradient descent)和反向傳播(back propagation)算法進行調整。
  • 乾貨貼|CNN中常用的四種卷積
    對於size為3的卷積核,如果step為1,那麼相鄰步感受野之間就會有重複區域;如果step為2,那麼相鄰感受野不會重複,也不會有覆蓋不到的地方;如果step為3,那麼相鄰步感受野之間會有一道大小為1顆像素的縫隙,從某種程度來說,這樣就遺漏了原圖的信息。
  • 10分鐘弄懂深度學習3:卷積可以這麼理解
    機器學習、信號處理、通信、或自動控制相關專業的學生,無一例外都會碰到一個概念叫,卷積(convolution)。當前最熱門的人工智慧中的卷積神經網絡,也都含有卷積這個詞。那麼,卷積到底是個什麼東西呢?有什麼用呢?卷積的定義卷積實際上是兩個信號的操作。
  • 圓周卷積與直接卷積
    我們都知道在模擬域對於連續信號,時域卷積等於頻域乘積,時域乘積等於頻域卷積,因此對於在時域求兩個信號的卷積,我們可以先對兩個信號做FFT後,然後做乘法,然後求IFFT得到信號在時域的卷積結果。但在數字域對於離散信號是沒有這個性質的,兩個序列的直接卷積不能通過兩個序列的FFT的乘積然後做IFFT得到時域的卷積結果,matlab仿真如下,直接卷積matab代碼,需要對兩個序列分別做7點FFT,然後求IFFT的結果才與時域卷積結果一致。
  • AI入門:卷積神經網絡
    假設我們要做圖像識別,把一張圖片丟到機器,機器能理解的就是每個像素點的值,如下圖:我們在搭建好神經網絡模型之後,需要做的就是用數據訓練,最終需要確定的是每一個神經元參數w和b,這樣我們就可以確定模型了。
  • CNN 中千奇百怪的卷積方式大匯總
    另外目前僅列舉了一些比較著名且實用的卷積操作,對於沒提到的,希望大家指出與補充 1. 原始版本 最早的卷積方式還沒有任何騷套路,那就也沒什麼好說的了。 見下圖,原始的 conv 操作可以看做一個 2D 版本的無隱層神經網絡。
  • 卷積網絡訓練太慢?Yann LeCun:已解決CIFAR-10,目標 ImageNet
    沒能早一點進行卷積網絡相關研究的原因相當簡單:缺乏軟體和數據。一到貝爾實驗室之後,我接觸到了大量數據集和運行飛快的電腦(在當時算是),因而可以試著構建完整的卷積網絡,而且令人驚喜的是其運行良好(儘管需要兩周的訓練)。您對卷積網絡近期在目標識別方面大熱的看法如何?是否曾預料過?
  • 從圖(Graph)到圖卷積(Graph Convolution):漫談圖神經網絡 (二)
    卷積代表的含義我們會在後文詳細敘述,這裡讀者可以將其理解為在局部範圍內的特徵抽取方法。  那麼,研究者如何解決這個問題呢?其實說來也很簡單,目前主流的研究從2條路來解決這件事:    這兩條實際上也是後續圖卷積神經網絡的設計原則,圖卷積的本質是想找到適用於圖的可學習卷積核。
  • 一文了解卷積神經網絡基礎,建議收藏
    LeNet網絡架構那麼到底什麼是神經網絡呢?應該說只要帶有卷積層的就可以被叫做卷積神經網絡。形式化為:那麼我們將神經元按列進行排列,列與列之間進行全連接,就得到了一個BP神經網絡。卷積層到底什麼是卷積層?之前的文章中講過了,有興趣的可以直接查看。漫畫:卷積神經網絡中的卷積核到底是什麼?漫畫:卷積神經網絡為什麼適合處理圖片數據?乾貨 | 如何入手卷積神經網絡在卷積層的講解中,想問大家一個問題,卷積核如果越界了應該如何處理?
  • 機器視角:長文揭秘圖像處理和卷積神經網絡架構
    雖然圖像變小了,我們仍能在很大程度上理解這是「4」。而且,要意識到的一個重點是,我們採用的是兩個連貫的水平像素,因此只會考慮水平的排列。這是我們從圖像中提取特徵的一種方式。我們可以看到左邊和中間部分,但右邊部分看起來不那麼清楚。主要是因為兩個問題:1. 圖片角落左邊和右邊是權重相乘一次得到的。2. 左邊仍舊保留,因為權重值高;右邊因為略低的權重,有些丟失。
  • 一文了解各種卷積結構原理及優劣
    反卷積(deconvolutions)這種叫法是不合適的,因為它不符合反卷積的概念。在深度學習中,反卷積確實存在,但是並不常用。實際上,反卷積是卷積操作的逆過程。你可以這麼理解這個過程,將某個圖像輸入到單個卷積層,取卷積層的輸出傳遞到一個黑盒子中,這個黑盒子輸出了原始圖像。那麼可以說,這個黑盒子完成了一個反卷積操作,也就是卷積操作的數學逆過程。