地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

“既然選擇了遠方 便只顧風雨兼程”。


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


在上一篇《地震去噪新探索(二)——無監督卷積神經網絡調優實戰》裡,終於找到了一個網絡結構,能夠有效學習到地震信號的特徵,並且成功地降噪。網絡結構是這樣的:


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


簡單說2個卷積,2個反捲積的網絡結構,就實現了超越經典的自編碼結構效果。經典的自編碼網絡結構是這樣的:


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

難道就一個反捲積就打敗了複雜的採樣+卷積的組合嗎?先劇透一下,最後的結果證明,能完美處理地震信號的原因根本就和這兩種網絡結構沒有直接關係。

到底是什麼原因呢?下面開始探索之旅。

01 反捲積和上採樣+卷積之間的聯繫和區別

反捲積的原理主要是卷積的逆過程,就是對卷積結果的回填。

上採樣+卷積的運算過程,是把特徵圖通過上採樣的線性算法進行插值放大,再和一個卷積運算提取特徵。

簡單來說,二者的共同作用都是增大特徵圖。區別是反捲積在實際使用中,如果參數配置不當容易出現明顯的棋盤現象。

就上面的原理來看,沒有理由說反捲積就更適合地震信號處理,採樣就會導致處理地震信號無法收斂。為了驗證我的猜想,在那個失敗的網絡中我乾脆把所有下采樣(池化)和上採樣全部去掉,看看是否能收斂呢?

02 採樣算法不是導致無法收斂的原因

刪掉所有下采樣(池化)和上採樣結構後,網絡就變成了這樣:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


結果很明確——仍然是無法收斂的。就像這樣:


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


對於這個現象,我陷入了沉思,也向很多有經驗的老師請教。一位老師盯住這個處理Mnist效果良好的自編碼網絡,忽然提出了一個問題:Mnist訓練集的圖片很簡單,而地震數據如此複雜,是不是會造成訓練網絡的適應性不同?

03 真正原因是網絡結構學習特徵的原理不同

1.Mnist圖片和地震數據有多大的不同呢?

首先,Mnist的數據結構很簡單。一個加噪後的數據數據是這樣的:


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


在訓練時,這就是最小的訓練單元:一個28*28的圖塊。它的有效信號就是中間的這個零,也就是要學習的特徵,其它的部分都是無意義的信號。

而地震信號就不同了。一個地震信號很大,含噪聲的地震信號是這樣的:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

拆為28*28的含噪聲的小圖塊是什麼樣的呢?像這樣:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


這個信號裡面包含了地震同向軸圖形的一部分,複雜度遠超一個簡單的數字圖像。

然而,理解了這個問題,還不足以找到真正的癥結所在。

2.找到決定神經網絡學習能力的關鍵

有時候,現實會出現一些戲劇性。就像凱庫勒悟出苯分子環狀結構的經過——他做了一個夢。我在反覆對比反捲積網絡和採樣網絡差別時,忽然發現二者的LOSS函數不一樣。

成功的網絡LOSS是用的mean_absolute_error,而失敗網絡的LOSS用的是binary_crossentropy。

mean_absolute_error的主要功能是線性迴歸學習,binary_crossentropy的主要功能是邏輯迴歸學習。這裡面有一個信號告訴我們:學習地震這類複雜的特徵,用的不是邏輯迴歸學習。

那我把全卷積網絡的LOSS改為mean_absolute_error,效果如何呢?學習曲線是這樣的:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

上圖表示,已經成功收斂了。

那預測效果是什麼呢?是這樣的:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


很遺憾,沒有學習到地震的特徵。

這是為什麼呢?我順著迴歸學習的思路,又發現了一個問題,比如最後一個卷積層的代碼有差異:

成功網絡最後一層是:

decoded = Conv2D(1, (3, 3), activation='tanh', padding='same')(x8)

失敗網絡最後一層是:

decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

上面的差異就是激活函數不同,還是邏輯迴歸和線性迴歸的差別。果斷改為'tanh'激活函數。這次直接在Mnist自編碼程序上修改。

訓練曲線是這樣的:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

預測結果是這樣的:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵

效果非常好。

04 總結和展望

書山有路勤為徑,學海無涯苦作舟。

經過一段艱苦的探索,終於在神經網絡學習地震特徵這個問題上摸到了點門路。Mnist圖片非常簡單,所以用邏輯分類的思路來學習和降噪效果就很好。這個設計思路作者當然不會說,可能他覺得這個問題太簡單了。但是把上面的結構照搬到地震信號的學習,就水土不服了。

你以為這就結束了嗎?然而沒有,生活遠比電視劇離奇。

為了探索更好的效果,我把訓練週期從5調到了50,結果效果是這樣的,上圖是噪聲信號,下圖是預測的信號:

地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


地震去噪探索(三)——怎樣讓卷積神經網絡學習更多特徵


上圖的去噪效果較5個迭代變差了。訓練越多,效果還變差了。這個結果不是我們想要的。究其原因,網絡學習的特徵還不完全是有效信號。因為我的輸入信號和標籤數據都是噪聲數據,如果單純的從原圖學習,當然學習結果是與原圖越接近越好。但這樣就沒有起到去噪的效果。

所以下一步,要研究LOSS函數,怎樣從噪聲圖片中學習到更多有效信號。

各位老鐵,如果喜歡這篇文章請點贊。有興趣可以聯繫我交流。


分享到:


相關文章: