[原創]數字信號處理中的卷積網絡深度學習猜想(1) - 信號主週期估計算法

轉載請註明出處,Writer:Zhonlihao鍾碩 @ 20190713

***注意!本文只是猜想,請勿過於認真要作者給出與深度學習的必要聯繫***

https://blog.csdn.net/xeonmm1

引言

       這是一篇計算機學與信號處理跨界借鑑的文章,涉及電信算法領域,以下內容儘可能不貼圖講解,相關人士老司機可以繼續閱讀,適逢深度學習的大熱,我花了點基本的時間瞭解深度學習的基本算法構建和深度學習中一些關鍵的要素。暫時來看,實信號處理還沒有相關的深度學習算法,因爲信號的組織形式與圖像是不相關,但是根據圖像能夠做深度學習這一突破的前提,證明信號處理裏面也可能有機會進行相關算法操作。

       首先簡單的講解下圖像深度學習,其基本的形式就是一個方形濾波器覈對整幅圖像進行卷積運算,並提取一些信息到後端的MLP全連接神經網絡進行特徵識別,整個過程是end to end的,不需要人爲去自己提取特徵,非常的方便,但是代價也是顯而易見的就是運算量基本就是各種循環消耗,需要增加計算量,所以現在我們可以來歸納一下整個深度學習算法的特點:

1.進行反覆循環的卷積運算:這個操作能夠遍歷所有的數據位置,綜合提取特徵;

2.非線性核及其飽和輸出:卷積核和激活函數的計算能夠使線性輸出變爲非線性輸出,具備遇到特徵就激活的能力,本質上是把足夠量的特徵用飽和狀態1和0激活到下一層再進行更復雜的分析操作;

3.多層全連接神經網絡:提供豐富的多維空間學習特徵;

       那麼深度學習的基本算法能力我們就看到了,現在反過來看看3個基本的信號處理方法對比圖像處理算法有什麼異同點:

1.快速傅里葉變換:通過不同的頻率的正弦波對原有信號進行相乘形成頻譜,本質上是MAC(乘加)運算,而且頻點間距中的一些頻率不能正確被表示,當取點較少時,精度也會降低;

2.功率譜(自相關):算法實現是自相關函數的傅里葉變換,我平常用自相關譜都能提取最大峯值頻率,但是其算法實現也是MAC爲主,自相關法能夠根據離散的數據點尺度進行分析,在低頻率下例如100Hz採樣率時,其分析能力比FFT要強,在音頻區FFT的處理能力比自相關法好;

3.小波操作:多尺度下的時域卷積操作,有點意思,使用小波基相乘,本質也是MAC乘加運算;

      那麼,一眼看下來,信號處理界的一些古典算法基本都是MAC的線性操作,除了小波比較先進引入了多尺度卷積概念外,3種算法算來算去都是線性算法,也基本預知了他們在這個時代的侷限,就是不具備深入分析一些特徵的能力,或者說,不太高效。

 

信號處理中的卷積網絡非線性計算猜想

      本文根據深度學習中的一些關鍵點對離散信號處理的算法進行了改進,以醫療信號中的呼吸信號爲例,估計其主要週期。下圖爲一片帶有副波毛刺點的呼吸信號,已經較爲強力的預處理濾波,需要計算其主要週期;

 

全尺度卷積

     這個概念應該不會陌生,利用加大的運算量來對不同週期尺度下的特徵進行提取,以獲得兼顧時域和頻域兩者的客觀綜合的分析,方法如下圖所示:

在不同的週期上,形成分析窗口,在時域上進行移動對信號進行分析,窗口之間是重疊的,這樣下來這個運算量就是2個循環級別,這種方法能夠更加全面地提取信號裏面的成分分佈;

 

非線性處理核

無論FFT,自相關法,小波法,都沒有引入非線性的處理核,所以本文設計出一種方法在卷積窗內進行非線性處理,如下圖所示

在尺度爲d的卷積窗口內,我們不直接地計算出一些什麼跟d相關的乘加操作,而是選取卷積窗內最大的兩個極大值點,或者兩個最小的極小值點,進行求時域上的位置的差獲得相關週期信息,並在period的統計上+1,這樣雖然窗的長度是d,但是得出的算術操作週期periodd沒有必然聯繫,構成一個非線性卷積核的處理;

      那麼,考慮特殊情況#1,尺度d剛好包含兩個小副波,那會如何?

     按照上文所述選擇兩個最大的極大值點的情況下,2個小於主週期的副波點必然不能被同時取,這樣就在尺度d內,就只能取一個主週期極大值點和一個較大的副波點,這樣得出period也會時非主週期的period計數增加,所以引入負反饋打分功能,如果兩個極大值是同一水平線上(主週期特徵),則分數score = mag_a1/mag_a2,a1爲幅度較小的那個特徵點,如果是副波,那麼其幅度較低,在period上的得分也不會太高,使得對主週期識別造成干擾。

     上述兩點,1-使用尺度內的最大兩個極大值點進行週期計算,使得統計週期與窗口d長度無關;2-幅度差別較低的兩個點獲得高分,幅度差別較大的兩個點獲得低分,用於區別倍頻點干擾;

    考慮特殊情況#2,尺度2d包含3個主週期峯點,那會如何?

     如上圖所示,如果3個主週期峯點中最大的兩個在最左最右,那麼這種情況會對比主週期更大的2倍週期構成貢獻;

      如果最大的兩個點落在相近的兩個主週期極大值上,那麼此刻2d窗口下又會繼續對主週期計數構成貢獻;

       分析下來我們可知,如果情況好的時候0.5f週期是會產生計數的,但如果不好的時候,又會貢獻回主週期長度中,通過序列分析我們簡單思考一下可知,在連續取3個點的情況下,不可能每一次都是左右兩邊兩個點最大:

        通過陳述,這個算法識別主週期的思路是這樣的:

1.對於倍頻點,採用幅度打分的方法對其進行衰減,那麼倍頻區的計數量雖然比主週期區多,但是其得分較低;

2.對於半頻點,採用非線性核的方法,裏面的某些尺度會迴歸到主週期結算,雖然其得分可能較高,但其統計數量會遠遠低於主週期區;

 

實驗觀察算法結果

這是一片帶有倍頻干擾的呼吸信號,我們可以看到其主週期大概在period = 47個採樣點左右

下圖是其尺度的幅度得分圖,已歸一化

可以看到倍頻區低分較低,而半頻區與主週期區得分差不多

下圖爲卷積中週期的計數圖

可以看到,主週期的計數量較大,而半頻區的計數量非常小,

通過上述兩個圖表可以以以下的策略提取主週期:先排除一部分較低計數量的週期,再從中挑選得分較高的週期,如上兩圖可得主要週期爲40-50數據點長度左右;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章