導航:首頁 > 無線網路 > 神經網路一維信號去噪

神經網路一維信號去噪

發布時間:2023-04-04 00:23:06

Ⅰ 利用小波如何去噪

1、 降噪步驟:
(1) 一維信號的小波分解。選擇一個小波並確定分解的層次,然後進行分解運算。
(2) 小波分鎮鋒解高頻系數的閾值量化。對各個分解尺度下得高頻系數選擇閾值進行軟閾值量化處理。
(3) 一維小波重構核旅碼。根據小波分解的最底層低頻系數和各高頻系數進行一維小波重構。
matlab裡面有關於去噪改哪的函數,你可以找一下~~
這說的只是基本原理,希望有所幫助

Ⅱ 局部干擾的消除

(一)多點線性圓滑

當放射性數據的幅度變化較大時,用圓滑公式處理能較好地減弱背景場的干擾,使背景值的起伏更清晰,異常更突出。這種圓滑可進行一維處理,也可進行二維處理。

1.一維多點線性圓滑

一維圓滑法是從觀測序列中分離出趨勢部分的一種方法。圓滑結果y(n)用下式計算:

放射性勘探方法

式中,

,N為滑動區間長度,也就是用於求圓滑值的測點數。N為奇數時圓滑值y(n)就是2k+1個測點的平均值,若N為偶數時y(n)置於區間(-k,k)兩點之間。

應指出,用(6-72)式計算時,測線兩端將各損失k個觀測值,N越長,損失越多。對第n點的計算式為

放射性勘探方法

很明顯,圓滑後減小了原始數據序列的波動,使得原來的高值變小,低值變大,使曲線變得圓滑了。

這種圓滑過程也是一種簡單濾波。還可進行5點、7點、9點、13點、17點公式圓滑,如圖6-21是通過多點圓滑後的曲線。從圖中可看出,圓滑前、後的曲線很相似,而且圓滑後的曲線突出了長周期波、壓低了短周期的波(即高頻波),因此也稱為「低通濾波」。

圖6-21 經5點、9點、13點、17點圓滑後的仿亮曲線

五點謝帕德公式:

放射性勘探方法

七點公式:

放射性勘探方法

一般來說,圓滑點數越多,方次(階數)越高時,圓滑效果越好,而且最小二乘意義上的謝帕德公式中權系數的總和等於1。也就是說,圓滑後的結果其低頻成分很少畸變。

2.二維滑動窗口法

當數據變化比較大時,其中隱含的信息不能被直觀地看出來,用二維滑動窗口法處理後,可以壓低干擾,突出數據的趨勢性變化,揭示數據中隱含的信息,反映不同地質體(包括礦體)引起的場暈特徵。該方法的基本步驟:①按比例尺准確繪制原始數據分布圖;②選擇滑動「窗口」,並求所需要的統計量值。

「窗口」大小取決於數據點分布情況和統計分析目的。若數據點稀疏,「窗口」可大些,密集時可選得小些,以便反映某些細化。若以反映趨勢性變化為主時,應選得大些,反之則小些。「窗口」的形狀以正方形為宜,有時為了突出某方向的變化,壓低另一方向的「干擾」,也可以選擇長方形窗口。「窗口」滑動方向首先按步長沿垂直或斜交測量基線方向滑動,例如由西向東滑動,滑到圖邊,「窗口」向北(或向南)移動一個步長再由此向東滑動,直到圖上所有數據統計處理完畢為止。每次滑動後,按落入「窗口」內的數據計算所需要的統計量備此寬,這些統計量可以是平均值、均方差、變異系數、各階矩、偏度系數、峰度系數等;並把它們分別置於「窗口」的中央,得到相應的統計量數據,據此繪制等值圖。滑動步長可選1、1/2或1/3個「窗口」邊長。

(二)熵平均法

其基本原理是:在剖面上的n個觀測點中,若出現少數幾個觀測值特高的測點時,為了壓掉這些特高異常而不致使所分離的異常(或區域背景)畸變太大,則利用熵平均法的效果要比滑動平均法好。

熵平均法應用了等概率事件具有最大的熵這一基本原理。其計算方法如下:

設在某一剖面上有幾個點(下稱窗內n個點),則計算這些點的「熵」平均AH的公式如下:

放射性勘探方法

式中:A0為Ai中某一點的值;hi為差值Ai-A0的權系數。

計算權系數hi的公式為

放射性勘探方法

式中:

放射性勘探方法

K值使用此系數是為了使hi成為與對數為底無關的相對值。演算法流程:

1)取剖面內n個點,其值相應為A1,A2,…,An

2)從值為A1,A2,…,An的各測點中,選取能使H

=極大的測點;稱Ai=A0

從資訊理論的原理知道,等概事件具有最大的熵,故要使上式極大,必須使與剖面上其餘n-1個點的A值的間隔相比扒擾,是最為「等距」的。這樣,落在「窗」內變化劇烈的點之值愈大,其對「熵」平均的影響就愈小。

3)計算(6-76)式,即為窗內n個觀測點的熵平均值,並作為窗中心點的值。

4)將窗沿測線依次移動一個點,重復上述計算步驟,完成整條剖面。

從圖6-22可以看出,熵平均法對於數據中異常尖峰的壓制比滑動平均法壓得更低,對於數據中異常較寬峰的壓制則很少,而對於背景值的擬合,熵平均法比滑動平均法更接近於真實曲線。因此,對於曲線局部干擾的修正來說,熵平均法比滑動平均法效果要好。

圖6-22 某一剖面鉀元素經熵平均法和滑動平均法處理對比曲線

窗口寬度為3

(三)小波濾波

1.小波去噪的基本思想

一個雜訊的一維信號的模型可以表示為如下的形式:

放射性勘探方法

其中:f(n)為真實信號;e(n)為雜訊;s(n)為含雜訊的信號。

在這里以一個最簡單的雜訊模型加以說明。即認為e(n)為高斯白雜訊N(0,1),雜訊級為1,實際工程中,有用信號通常表現為低頻信號或是一些比較平穩的信號,而雜訊信號則通常表現為高頻信號。所以去噪過程可以按如下方法進行處理:首先對信號s(n)進行小波分解,如進行二層分解,則雜訊部分通常包含在d1(n)、d2(n)中,因而可以以門限等形式對小波系數進行處理,然後對信號進行重構即可達到去噪的目的。對信號s(n)去噪的目的就是要抑制信號中的雜訊部分,從而在s中恢復出真實的信號f(n)。

我們處理的能譜數據是一維離散數據,它包含了正常的區域異常和局部干擾帶來的局部異常,而後者就相當於探測信號中的瞬態部分,即時間或空間范圍里存在的小范圍極高或極低部分,屬於高頻成分。高頻與低頻成分的共存使得小波濾波方法可以應用到γ能譜數據處理中,消除統計漲落和局部干擾帶來的局部異常而且在保持γ能譜的形狀方面避免了以往最小二乘平滑時造成的γ能譜形狀畸變的情況。

對於一維信號的小波去噪步驟:

(1)一維信號的小波分解。選擇一個小波並確定分解層次N,然後對信號s進行N層小波分解。

(2)對小波分解後的系數進行處理。可以對高頻系數進行閥值量化,對第一道第N層的每一層的高頻系數,選擇一個閥值進行量化處理。

(3)一維小波的重構。根據小波分解的第N層的低頻和經過量化處理後的第一到第K層的高頻系數,進行一維小波重構。

在這三個步驟之中,第二步是重點。從某種程度上講,如何選取閥值和如何進行閥值的量化,它直接關繫到信號的去噪的質量。

目前,小波去噪的基本方法有:①利用小波變換模極大去噪;②基於各尺度下小波系數相關性去噪;③採用非線性小波變換閥值去噪。

2.小波閥值去噪法的實現

(1)濾波函數

濾波函數有很多,恰當的選擇或構造小波函數至關重要。如果我們能正確的選取小波函數,那麼進行小波變換時,對於區域異常在時間-尺度域中將集中於某個閉子空間,而局部干擾和統計漲落等因與小波函數差別較大,它們在時間-尺度域中,能量就比較分散。利用這種差別,就可以完成對局部干擾等因素的壓制。

γ能譜數據使用較多是Sym小波函數和db6小波函數。Sym小波函數在連續性、支集長度、濾波器長度等方面,它類似於db小波函數,而且沒有解析表達式,但其具有更好的對稱性,更適合圖像處理,減小小波重構時造成的相移。

(2)濾波閾值的選擇

小波濾波中,最核心的部分就是對系數作用閾值,因此閾值的選取至關重要。閾值的選取直接影響降噪的質量,所以人們提出了各種理論的和經驗的模型。但是,每種模型都有自己的作用范圍,不能完全解決所有問題。因此,變換中,各層系數降噪所需要的閾值一般是根據原信號的信號雜訊比(這里是隨機干擾)來取的。而這個量一般用雜訊強度σ來表示。提取σ的方法很多,一般用原信號的小波分解各層系數的標准差來衡量。Matlab中提供了wnoisest來實現這個功能。

STDC=wnoisest(C,L,S)

其中:STDC為標准差;[C,L]為原始信號wavedec命令處理後結果;S為小波層數。

在得到雜訊強度後,我們就可以根據雜訊強度σ來確定各層的閾值,對雜訊強度為σ的信號,常用下面幾個閾值模型:

a.預設閾值模型

閾值求取:

放射性勘探方法

式中:n為信號長度;thr為閾值。

b.Birge-Massart策略確定的閾值

閾值求取:

制訂分解層數j,對j+1以及更高層的所有系數保留。

對第i層(1≤i≤j),保留絕對值最大的ni個系數,ni由下式確定:

ni=M(j+2-i)α

式中:M和α為經驗系數,預設情況下取M=L(1),也就是第一層分節後系數的長度,一般情況下,M滿足L(1)≤M≤2L(1),α的取值因用途不同而不同。

c.小波包變換中的penalty閾值

令t*為使得函數

放射性勘探方法

取得最小值的t,其中ck為小波包分解系數排序後第k大的系數。n為系數的總數,那麼閾值thr=|ct*|,其中σ為信號雜訊強度,α為大於1的經驗系數。

閾值的選擇具有對信號的自適應性,實際應用中,可以根據不同信號的形式,不同的雜訊強度,在不同的分解層次,根據不同的規則或經驗知識選取。

(3)濾波過程

(a)對離散數據進行小波分解。選定一種小波對信號進行一定層數的分解。可選3次、5次、7次等。

(b)選取合適的閾值。對分解得到的各層系數選擇一個合適的閾值,對近似系數和細節系數進行分別處理。

(c)小波重建。將處理後近似系數與細節系數按分解時的分解次數進行重構,得到濾波後數據。

3.實例

在良渚古城牆的探測中,採用小波濾波的方法對地面γ能譜數據進行了處理,使能譜測量的局部干擾雜訊得到較好的壓制。如圖6-23是選取外城牆處γ能譜測量的鉀含量原始測量與小波濾波後的對比,可以看出經過濾波後,局部干擾壓制,異常邊界清晰了。對城牆位置的確定發揮了重要的作用。

Ⅲ Keras快速構建神經網路模型

用Keras搭建神經網路的步驟:

深度學習框架Keras——像搭積木般構建神經網路,主要分為7個部分,每個部分只需要幾個keras API函數就能實現,用戶即可像搭積木般一層層構建神經網路模型。

1. 創建模型 Create model

2. 添加層級 Add Layer

3. 模型編譯 Compile

4. 數據填充 Fit

5. 模型評估 Evaluate

6. 模型預測 Predict

7. 模型保存 Save model

下面章節會對每一部分具體來介紹。。。


Keras 中主要有三類模型:Sequential model, Functional model, Subclass model

在開始創建模型之前,首先需要引入tensorflow和keras模塊,然後再創建一個Sequential model

Sequential API定義如下:

layers參數可以為空, 然後通過add method向模型中添加layer,相對應的通過pop method移除模型中layer。


創建Function API模型,可以調用Keras.Model來指定多輸入多數出。

Keras.Model定義:



Layers是神經網路基本構建塊。一個Layer包含了tensor-in/tensor-out的計算方法和一些狀態,並保存在TensorFlow變數中(即layers的權重weights)。
Layers主要分為6個類別,基礎層,核心層,卷基層,池化層,循環層,融合層。

對派生類的實現可以用以下方法:
** init (): 定義layer的屬性,創建layer的靜態變數。
** build(self, input_shape): 創建依賴於輸入的變數,可以調用add_weight()。
** call(self, *args, **kwargs): 在確保已調用build()之後,在 call 中調用。
** get_config(self): 返回包含用於初始化此層的配置的字典類型。

創建SimpleDense派生類,在build()函數里添加trainable weights。實現y=input*w +b

結果輸出:


創建ComputeSum派生類,在 init 函數里添加 non-trainable weights。實現輸入矩陣沿軸0元素相加後,x=x+self.total

結果輸出:


核心層是最常用的層,涉及到數據的轉換和處理的時候都會用到這些層。

Dense層就是所謂的全連接神經網路層,簡稱全連接層。全連接層中的每個神經元與其前一層的所有神經元進行全連接。

Dense 實現以下操作: output = activation(dot(input, kernel) + bias) 其中 activation 是按逐個元素計算的激活函數,kernel 是由網路層創建的權值矩陣,以及 bias 是其創建的偏置向量 (只在 use_bias 為 True 時才有用)。


將激活函數應用於輸出。輸入信號進入神經元後進行的運算處理。

sigmoid、tanh、ReLU、softplus的對比曲線如下圖所示:

激活函數可以通過設置單獨的激活層Activation實現,也可以在構造層對象時通過傳遞 activation 參數實現:


Dropout在訓練中每次更新時,將輸入單元的按比率隨機設置為0,這有助於防止過擬合。未設置為0的輸入將按1 /(1-rate)放大,以使所有輸入的總和不變。

請注意,僅當訓練設置為True時才應用Dropout層,以便在推理過程中不會丟棄任何值。 使用model.fit時,訓練將自動適當地設置為True。


將輸入展平。不影響批量大小。注意:如果輸入的形狀是(batch,)沒有特徵軸,則展平會增加通道尺寸,而輸出的形狀是(batch, 1)。


將輸入重新調整為特定的尺寸


將任意表達式封裝為Layer對象。在Lambda層,以便在構造模型時可以使用任意TensorFlow函數。 Lambda層最適合簡單操作或快速實驗。 Lambda層是通過序列化Python位元組碼來保存的。


使用覆蓋值覆蓋序列,以跳過時間步。

對於輸入張量的每一個時間步(張量的第一個維度),如果所有時間步中輸入張量的值與mask_value相等,則將在所有下游層中屏蔽(跳過)該時間步。如果任何下游層不支持覆蓋但仍然收到此類輸入覆蓋信息,會引發異常。

舉例說明:


Embedding 是一個將離散變數轉為連續向量表示的一個方式。該層只能用作模型中的第一層。

Embedding 有以下3個主要目的: 在 embedding 空間中查找最近鄰,這可以很好的用於根據用戶的興趣來進行推薦。 作為監督性學習任務的輸入。 用於可視化不同離散變數之間的關系.

舉例說明:

輸出結果:


由維基網路的介紹我們可以得知,卷積是一種定義在兩個函數(𝑓跟𝑔)上的數學操作,旨在產生一個新的函數。那麼𝑓和𝑔的卷積就可以寫成𝑓∗𝑔,數學定義如下:

對應到不同方面,卷積可以有不同的解釋:𝑔 既可以看作我們在深度學習里常說的核(Kernel),也可以對應到信號處理中的濾波器(Filter)。而 𝑓 可以是我們所說的機器學習中的特徵(Feature),也可以是信號處理中的信號(Signal)。f和g的卷積 (𝑓∗𝑔)就可以看作是對𝑓的加權求和。

一維時域卷積操作:

二維圖像卷積操作:

卷積運算的目的是提取輸入的不同特徵,第一層卷積層可能只能提取一些低級的特徵如邊緣、線條和角等層級,更多層的網路能從低級特徵中迭代提取更復雜的特徵。

一維卷積層(即時域卷積),用以在一維輸入信號上進行鄰域濾波。

舉例說明:

結果輸出:


2D 卷積層 (例如對圖像的空間卷積)。

舉例說明:

結果輸出:


3D卷積層(例如體積上的空間卷積)

舉例說明:

結果輸出:


深度可分離1D卷積。該層執行分別作用在通道上的深度卷積,然後是混合通道的逐點卷積。 如果use_bias為True並提供了一個偏差初始值設定項,則它將偏差向量添加到輸出中。 然後,它可選地應用激活函數以產生最終輸出。


深度可分離的2D卷積。可分離的卷積包括首先執行深度空間卷積(它分別作用於每個輸入通道),然後是點向卷積,它將混合所得的輸出通道。 depth_multiplier參數控制在深度步驟中每個輸入通道生成多少個輸出通道。

直觀上,可分離的卷積可以理解為將卷積內核分解為兩個較小內核的一種方式,或者是Inception塊的一種極端版本。


轉置卷積層 (有時被成為反卷積)。對轉置卷積的需求一般來自希望使用 與正常卷積相反方向的變換,將具有卷積輸出尺寸的東西 轉換為具有卷積輸入尺寸的東西, 同時保持與所述卷積相容的連通性模式。



池化層是模仿人的視覺系統對數據進行降維,用更高層次的特徵表示圖像。實施池化的目的:降低信息冗餘;提升模型的尺度不變性、旋轉不變性。 防止過擬合。

通常有最大池化層,平均池化層。

池化層有三種形態:1D 用於一維數據,2D 一般用於二維圖像數據,3D 帶時間序列數據的圖像數據



循環神經網路(Recurrent Neural Network, 簡稱 RNN),循環神經網路的提出便是基於記憶模型的想法,期望網路能夠記住前面出現的特徵,並依據特徵推斷後面的結果,而且整體的網路結構不斷循環,因此得名為循環神經網路。

長短期記憶網路(Long-Short Term Memory, LSTM )論文首次發表於1997年。由於獨特的設計結構,LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件。

舉例說明:

結果輸出:


GRU 門控循環單元- Cho et al. 2014.

在LSTM中引入了三個門函數:輸入門、遺忘門和輸出門來控制輸入值、記憶值和輸出值。而在GRU模型中只有兩個門:分別是更新門和重置門。與LSTM相比,GRU內部少了一個」門控「,參數比LSTM少,但是卻也能夠達到與LSTM相當的功能。考慮到硬體的計算能力和時間成本,因而很多時候我們也就會選擇更加」實用「的GRU。

舉例說明:

結果輸出:


循環神經網路層基類。

關於指定 RNN 初始狀態的說明
您可以通過使用關鍵字參數 initial_state 調用它們來符號化地指定 RNN 層的初始狀態。 initial_state 的值應該是表示 RNN 層初始狀態的張量或張量列表。
可以通過調用帶有關鍵字參數 states 的 reset_states 方法來數字化地指定 RNN 層的初始狀態。 states 的值應該是一個代表 RNN 層初始狀態的 Numpy 數組或者 Numpy 數組列表。

關於給 RNN 傳遞外部常量的說明
可以使用 RNN. call (以及 RNN.call)的 constants 關鍵字參數將「外部」常量傳遞給單元。 這要求 cell.call 方法接受相同的關鍵字參數 constants。 這些常數可用於調節附加靜態輸入(不隨時間變化)上的單元轉換,也可用於注意力機制。

舉例說明:



在訓練模型之前,我們需要配置學習過程,這是通過compile方法完成的。

他接收三個參數:優化器 opt

Ⅳ 求 一維信號 的傅里葉變換 去噪程序 matlab 寫的

什麼樣的信號,頻率范圍是多少?是要用FFT濾波,還是用其他的方式?灶畢補充一下,如果是用FFT濾波的話:
對於給定的序列x(n),和采樣頻率fs等信息,先求其FFT頻譜
y=abs(fft(x));
plot((1:length(x))*fs/length(x),y);title('信號的頻譜');xlabel('頻率');
然後你大概確定一下,你需要濾除的頻帶,上面的圖形中可以看出雜訊的頻帶。
比如說,你想要濾除從f1~f2的雜訊,最簡單隱春芹的方法就是在頻域將這一段置零,
y(200:300)=0; %這里我假設的是200到300這一段就是頻率f1~f2的。這森棚就是頻率域濾波了,然後再反變換回去就行了
x=ifft(y); % 信號濾波後重建
具體的如果設置參數,就要看你的信號的特徵了。

Ⅳ 關於卷積神經網路對一維信號的特徵提取問題

你好,對信號的特徵提取在數學上看其實就是做一個濾波的運算,實際上都是通過卷積來實現的。下面是一個matlab的實現:

function r= my_conv(a, b)
m=length(a);
n=length(b);
r=zeros(1, m+n-1);
for k = 1:m
c = a(k)*b;
d = r(1, k:k+n-1);
d = d+c;
r(1, k:k+n-1) = d;
end

Ⅵ 一維信號分類需要用復雜的深度學習神經網路嗎

一維信號分類需要用復雜的深度學習神經網路。
一維信號分類需要用復雜的深度學習神經網路來進行分類,同時深度學習演算法(包括CNN)也肯定可以直接處理一維信號。舉個例子,深度殘差收縮網路,就是用於處理一維振動信號的一種深度學習方法,可以作為參考。深度殘差收縮網路其實是深度殘差網路(ResNet)的新型改進,將軟閾值化作為非線性層引入ResNet的網路結構之中,其目的是提高深度學習方法在含雜訊數據或復雜數據上的特徵學習效果。
直接把多通道的一維信號合並成二維圖像,然後直接按圖像卷積的方法去做~~當然,如果像ECG這種只有單通道一維信號,也可以直接一維卷積,效果一般~~可以看看語音處理的相關Net,其中比較推薦的是用 dilated conv 來做

Ⅶ 卷積神經網路

關於花書中卷積網路的筆記記錄於 https://www.jianshu.com/p/5a3c90ea0807 。

卷積神經網路(Convolutional Neural Network,CNN或ConvNet)是一種具有 局部連接、權重共享 等特性的深層前饋神經網路。卷積神經網路是受生物學上感受野的機制而提出。 感受野(Receptive Field) 主要是指聽覺、視覺等神經系統中一些神經元的特性,即 神經元只接受其所支配的刺激區域內的信號

卷積神經網路最早是主要用來處理圖像信息。如果用全連接前饋網路來處理圖像時,會存在以下兩個問題:

目前的卷積神經網路一般是由卷積層、匯聚層和全連接層交叉堆疊而成的前饋神經網路,使用反向傳播演算法進行訓練。 卷積神經網路有三個結構上的特性:局部連接,權重共享以及匯聚 。這些特性使卷積神經網路具有一定程度上的平移、縮放和旋轉不變性。

卷積(Convolution)是分析數學中一種重要的運算。在信號處理或圖像處理中,經常使用一維或二維卷積。

一維卷積經常用在信號處理中,用於計算信號的延遲累積。假設一個信號發生器每個時刻t 產生一個信號 ,其信息的衰減率為 ,即在 個時間步長後,信息為原來的 倍。假設 ,那麼在時刻t收到的信號 為當前時刻產生的信息和以前時刻延遲信息的疊加:

我們把 稱為 濾波器(Filter)或卷積核(Convolution Kernel) 。假設濾波器長度為 ,它和一個信號序列 的卷積為:

信號序列 和濾波器 的卷積定義為:

一般情況下濾波器的長度 遠小於信號序列長度 ,下圖給出一個一維卷積示例,濾波器為 :

二維卷積經常用在圖像處理中。因為圖像為一個兩維結構,所以需要將一維卷積進行擴展。給定一個圖像 和濾波器 ,其卷積為:

下圖給出一個二維卷積示例:

注意這里的卷積運算並不是在圖像中框定卷積核大小的方框並將各像素值與卷積核各個元素相乘並加和,而是先把卷積核旋轉180度,再做上述運算。

在圖像處理中,卷積經常作為特徵提取的有效方法。一幅圖像在經過卷積操作後得到結果稱為 特徵映射(Feature Map)

最上面的濾波器是常用的高斯濾波器,可以用來對圖像進行 平滑去噪 ;中間和最下面的過濾器可以用來 提取邊緣特徵

在機器學習和圖像處理領域,卷積的主要功能是在一個圖像(或某種特徵)上滑動一個卷積核(即濾波器),通過卷積操作得到一組新的特徵。在計算卷積的過程中,需要進行卷積核翻轉(即上文提到的旋轉180度)。 在具體實現上,一般會以互相關操作來代替卷積,從而會減少一些不必要的操作或開銷。

互相關(Cross-Correlation)是一個衡量兩個序列相關性的函數,通常是用滑動窗口的點積計算來實現 。給定一個圖像 和卷積核 ,它們的互相關為:

互相關和卷積的區別僅在於卷積核是否進行翻轉。因此互相關也可以稱為不翻轉卷積 。當卷積核是可學習的參數時,卷積和互相關是等價的。因此,為了實現上(或描述上)的方便起見,我們用互相關來代替卷積。事實上,很多深度學習工具中卷積操作其實都是互相關操作。

在卷積的標準定義基礎上,還可以引入濾波器的 滑動步長 零填充 來增加卷積多樣性,更靈活地進行特徵抽取。

濾波器的步長(Stride)是指濾波器在滑動時的時間間隔。

零填充(Zero Padding)是在輸入向量兩端進行補零。

假設卷積層的輸入神經元個數為 ,卷積大小為 ,步長為 ,神經元兩端各填補 個零,那麼該卷積層的神經元數量為 。

一般常用的卷積有以下三類:

因為卷積網路的訓練也是基於反向傳播演算法,因此我們重點關注卷積的導數性質:

假設 。

, , 。函數 為一個標量函數。

則由 有:

可以看出, 關於 的偏導數為 和 的卷積

同理得到:

當 或 時, ,即相當於對 進行 的零填充。從而 關於 的偏導數為 和 的寬卷積

用互相關的「卷積」表示,即為(注意 寬卷積運算具有交換性性質 ):

在全連接前饋神經網路中,如果第 層有 個神經元,第 層有 個神經元,連接邊有 個,也就是權重矩陣有 個參數。當 和 都很大時,權重矩陣的參數非常多,訓練的效率會非常低。

如果採用卷積來代替全連接,第 層的凈輸入 為第 層活性值 和濾波器 的卷積,即:

根據卷積的定義,卷積層有兩個很重要的性質:

由於局部連接和權重共享,卷積層的參數只有一個m維的權重 和1維的偏置 ,共 個參數。參數個數和神經元的數量無關。此外,第 層的神經元個數不是任意選擇的,而是滿足 。

卷積層的作用是提取一個局部區域的特徵,不同的卷積核相當於不同的特徵提取器。

特徵映射(Feature Map)為一幅圖像(或其它特徵映射)在經過卷積提取到的特徵,每個特徵映射可以作為一類抽取的圖像特徵。 為了提高卷積網路的表示能力,可以在每一層使用多個不同的特徵映射,以更好地表示圖像的特徵。

在輸入層,特徵映射就是圖像本身。如果是灰度圖像,就是有一個特徵映射,深度 ;如果是彩色圖像,分別有RGB三個顏色通道的特徵映射,深度 。

不失一般性,假設一個卷積層的結構如下:

為了計算輸出特徵映射 ,用卷積核 分別對輸入特徵映射 進行卷積,然後將卷積結果相加,並加上一個標量偏置 得到卷積層的凈輸入 再經過非線性激活函數後得到輸出特徵映射 。

在輸入為 ,輸出為 的卷積層中,每個輸出特徵映射都需要 個濾波器以及一個偏置。假設每個濾波器的大小為 ,那麼共需要 個參數。

匯聚層(Pooling Layer)也叫子采樣層(Subsampling Layer),其作用是進行特徵選擇,降低特徵數量,並從而減少參數數量。

常用的匯聚函數有兩種:

其中 為區域 內每個神經元的激活值。

可以看出,匯聚層不但可以有效地減少神經元的數量,還可以使得網路對一些小的局部形態改變保持不變性,並擁有更大的感受野。

典型的匯聚層是將每個特徵映射劃分為 大小的不重疊區域,然後使用最大匯聚的方式進行下采樣。匯聚層也可以看做是一個特殊的卷積層,卷積核大小為 ,步長為 ,卷積核為 函數或 函數。過大的采樣區域會急劇減少神經元的數量,會造成過多的信息損失。

一個典型的卷積網路是由卷積層、匯聚層、全連接層交叉堆疊而成。

目前常用卷積網路結構如圖所示,一個卷積塊為連續 個卷積層和 個匯聚層( 通常設置為 , 為 或 )。一個卷積網路中可以堆疊 個連續的卷積塊,然後在後面接著 個全連接層( 的取值區間比較大,比如 或者更大; 一般為 )。

目前,整個網路結構 趨向於使用更小的卷積核(比如 和 )以及更深的結構(比如層數大於50) 。此外,由於卷積的操作性越來越靈活(比如不同的步長),匯聚層的作用變得也越來越小,因此目前比較流行的卷積網路中, 匯聚層的比例也逐漸降低,趨向於全卷積網路

在全連接前饋神經網路中,梯度主要通過每一層的誤差項 進行反向傳播,並進一步計算每層參數的梯度。在卷積神經網路中,主要有兩種不同功能的神經層:卷積層和匯聚層。而參數為卷積核以及偏置,因此 只需要計算卷積層中參數的梯度。

不失一般性,第 層為卷積層,第 層的輸入特徵映射為 ,通過卷積計算得到第 層的特徵映射凈輸入 ,第 層的第 個特徵映射凈輸入

由 得:

同理可得,損失函數關於第 層的第 個偏置 的偏導數為:

在卷積網路中,每層參數的梯度依賴其所在層的誤差項 。

卷積層和匯聚層中,誤差項的計算有所不同,因此我們分別計算其誤差項。

第 層的第 個特徵映射的誤差項 的具體推導過程如下:

其中 為第 層使用的激活函數導數, 為上采樣函數(upsampling),與匯聚層中使用的下采樣操作剛好相反。如果下采樣是最大匯聚(max pooling),誤差項 中每個值會直接傳遞到上一層對應區域中的最大值所對應的神經元,該區域中其它神經元的誤差項的都設為0。如果下采樣是平均匯聚(meanpooling),誤差項 中每個值會被平均分配到上一層對應區域中的所有神經元上。

第 層的第 個特徵映射的誤差項 的具體推導過程如下:

其中 為寬卷積。

LeNet-5雖然提出的時間比較早,但是是一個非常成功的神經網路模型。基於LeNet-5 的手寫數字識別系統在90年代被美國很多銀行使用,用來識別支票上面的手寫數字。LeNet-5 的網路結構如圖:

不計輸入層,LeNet-5共有7層,每一層的結構為:

AlexNet是第一個現代深度卷積網路模型,其首次使用了很多現代深度卷積網路的一些技術方法,比如採用了ReLU作為非線性激活函數,使用Dropout防止過擬合,使用數據增強來提高模型准確率等。AlexNet 贏得了2012 年ImageNet 圖像分類競賽的冠軍。

AlexNet的結構如圖,包括5個卷積層、3個全連接層和1個softmax層。因為網路規模超出了當時的單個GPU的內存限制,AlexNet 將網路拆為兩半,分別放在兩個GPU上,GPU間只在某些層(比如第3層)進行通訊。

AlexNet的具體結構如下:

在卷積網路中,如何設置卷積層的卷積核大小是一個十分關鍵的問題。 在Inception網路中,一個卷積層包含多個不同大小的卷積操作,稱為Inception模塊。Inception網路是由有多個inception模塊和少量的匯聚層堆疊而成

v1版本的Inception模塊,採用了4組平行的特徵抽取方式,分別為1×1、3× 3、5×5的卷積和3×3的最大匯聚。同時,為了提高計算效率,減少參數數量,Inception模塊在進行3×3、5×5的卷積之前、3×3的最大匯聚之後,進行一次1×1的卷積來減少特徵映射的深度。如果輸入特徵映射之間存在冗餘信息, 1×1的卷積相當於先進行一次特徵抽取

Ⅷ 地震去噪新探索(二)——無監督卷積神經網路調優實戰

「心中有歌,到處都是舞台」。

自從投入了自編碼的深度學習研究後,一路走來就是磕磕碰碰。

上一篇將地震信號用在了自編碼卷積神經網路降噪(見《地震去噪新探索——無監督卷積神經網路實戰》),結果那叫一個慘。如下面的圖示,上邊是雜訊圖,下邊是去噪圖:

從去噪效果來看,僅能獲取到一些支離破碎的有效信號,這是一張完全拿不出手的效果圖。

卷積神經網路不是更能學習到特徵細節,性能更好嗎?為啥我做出來的效果如此之慘?

前期的參數設置包括:使用10000個28*28的訓練小塊,訓練epoch:5,學習率:0.001,優化器:tf.train.AdamOptimizer(learn).minimize(cost),LOSS函數:tf.nn.sigmoid_cross_entropy_with_logits(labels=targets_, logits=logits_),cost = tf.rece_mean(loss)

網路結構圖為:

訓練損失曲線:

1.歸一化的優化

慘不忍睹的LOSS訓練結果引起了我的注意。將收斂失敗這個問題拿到網上去尋找答案,有大神說這是歸一化沒做好。

那就先進行2項優化:

一是控制訓練樣本的取值范圍到(-1,1),使用方法是原值除以最大值的方法,就像這樣:

noisy_imgs=noisy_imgs/abs(noisy_imgs).max()

二是在訓練網路的每個卷積後增加BN,就像這樣:

conv1 = tf.layers.conv2d(inputs_, 64, (3,3), padding='same', activation=tf.nn.relu)

conv1 = tf.layers.batch_normalization(conv1, training=True)

再進行訓練,效果不明顯,還是沒有收斂。

另外,很多歸一化的方法是將取值范圍集中在(0,1),使用這樣的演算法:

imgs= (imgs-imgs.min())/(imgs.max()-imgs.min())#歸一化到[0,1]

結果證明對於地震數據完全沒法訓練,曲線是這樣的:

2.學習函數的調整

「一計不成,再生一計」。

我想到了對優化器和LOSS函數進行改動。

在神經網路學習中,損失函數的作用是度量神經網路的輸出的預測值,計算與實際值之間的差距,可以說是實現學習的關鍵函數。常見的損失函數包括:最小二乘損失函數、交叉熵損失函數、回歸中使用的smooth L1損失函數等。

而優化函數的原理是:把損失值從神經網路的最外層傳遞到最前面,實現反向傳播學習,這是神經網路實現持續學習達到收斂的關鍵。如最基礎的梯度下降演算法包括:隨機梯度下降演算法,批量梯度下降演算法,帶動量的梯度下降演算法,Adagrad,Adadelta,Adam等。

那我就先從優化器函數入手吧。

既然學習率為0.001無法收斂,那試試0.0001呢。結果還真收斂了,如下圖:

那預測效果如何呢?結果是一塌糊塗,連基本特徵都學習不到,如下圖:

這是怎麼回事呢?我的理解是學習率太高,就會讓神經網路學習到更細粒度的特徵,而失去了我們想要的特徵。就相當於研究一個人的特徵,我們通常是從五官、體型等方面來看,但如果從細胞的角度的去學習,那就無法還原人的外貌特徵了。

另外,設置為0.0005也好不了多少。

那改動LOSS函數能不能起作用呢?

比如改為softmax_cross_entropy_with_logits,像這樣:

loss = tf.nn.softmax_cross_entropy_with_logits(labels=targets_, logits=logits_)

結果是無法學習,如下圖:

3.其它的嘗試

兩板斧過去,還沒有看到變好的跡象。我沒有放棄,我開始思考為啥原程序訓練Mnist效果都如此好,換到地震數據訓練就不行了呢?

我想到了訓練樣本數據是不是有問題。我又進行了以下嘗試:

一是調整訓練樣本數據的尺寸:有128*128,40*40,32*32,28*28等。

二是對樣本數據進行截斷:地震數據不是異常值多,偏離度大嗎。我就篩選數據集中的90%區間,區間外面的進行截斷,再進行歸一化。這樣數據分布就均勻多了。

三是擴充采樣數據來源,從不同的數據源采樣。是不是數據更豐富,訓練效果就會改觀呢?

……

你可以想像做這些實驗有多麼瑣碎和繁雜,然而現實卻是如此的無情。最後結局都是一個——失敗,根本拿不出一個像樣的效果,連一個較為清晰的結果都沒有。

「山窮水復疑無路,柳暗花明又一村」。

在持續N天被現實按在地上摩擦後,我痛定思痛:到底解決的方向在哪裡

在現有這個無可救葯的神經網路中,提高學習率可以收斂,但是無法學習到有效特徵。降低學習率可以學習到有效特徵但是無法收斂,也就是說無法持續優化的學習。整個成了一個悖論。

面對這張醜陋的預測結果圖,我意識到可能是網路結構本身出了問題。很有可能是網路對圖片數據學習有效,對地震數據學習就是不行。

在翻閱了其它研究者的論文後,我逐步聚焦到了一個結構——解碼。我的程序在這部分是使用卷積核上采樣的結構。像這樣:

conv4 = tf.image.resize_nearest_neighbor(conv3, (8,8))

conv4 = tf.layers.conv2d(conv4, 32, (3,3), padding='same', activation=tf.nn.relu)

而其它地震論文結構卻包含了一個我沒有的結構——反卷積。

如果我也使用反卷積,甚至就只有卷積和反卷積這種最簡單的自編碼結構,效果如何呢?像這樣的結構:

x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img)

x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)

x = Conv2DTranspose(32, (3,3), padding='same', activation='relu', kernel_initializer='glorot_normal')(x)#反卷積

x = Conv2DTranspose(32, (3,3), padding='same', activation='relu', kernel_initializer='glorot_normal')(x)

decoded = Conv2DTranspose(1, (1,1), padding='same', activation='tanh', kernel_initializer='glorot_normal')(x)

結果是令人驚艷的。下圖是收斂的效果,很快就能夠收斂:

訓練的效果更好。以下分別是原圖,雜訊圖和去噪效果圖:

可以看到,上面雜訊幾乎淹沒了有效信號。然後通過訓練,僅僅5個迭代,就較好的分離出了有效信號。

「既然選擇了遠方 便只顧風雨兼程」。

看來反卷積是是解決地震學習的一把鑰匙。下一步我將研究反卷積能適應地震處理的原因,然後繼續進行優化和創新,並使用其它演算法做對比實驗,爭取做出更好的效果。

如果喜歡請點「贊」,如果小夥伴對程序感興趣,可以聯系我獲取。

Ⅸ MATLAB 求用小波去噪處理一維信號代碼

第一個螞遲拆問題,這個我只用過一維的信號,用來小波分解,這個給不了你什麼建議,但是小波的選擇不同的問題需要選取不同的小旦掘波,不是一概而論的。
第二個問題,分解後重構不是必須的,至少在一維信號處理中不是必須的悶棗。
分解後會有很多尺度的小波系數,加權的意思和一般的加權是一樣,就是給不同的小波系數予以不同的權值,比如在尺度2這個小波系數佔有了絕大多數信號的頻率段,那麼我們可以給他一個大的權值。

Ⅹ 信號處理的神經網路方法

信號處理的神經網路方法如下:

1、原數據可能數據量很大,維數很,計算機處理起來時間復雜度很高,預處理可以降低數據維度寫作貓。數據的很多特性非常影響神經網路等分類模型的效果。

2、比如數據值得分布不在一個尺度上,當地氣溫值與當地月工資顯然不在一個數量級上,這時,需要數據規范化,把這兩個特徵的數據都規范到0到1,這樣使得它們對賣弊模型的影響具有同樣的尺度。

我們挑選BP、RBF、SOFM、LVQ、Hopfield這5種已成功應用於解決實際信號處理問題的網路結構進行詳細介紹,並對如何利用它們解決信號處理問題進行分析。另外還介紹了量子比特神經網路這種新興網路結構。

閱讀全文

與神經網路一維信號去噪相關的資料

熱點內容
網路自考專科費用大概多少 瀏覽:366
網路許可權在哪裡設置蘋果 瀏覽:245
如何中國移動網路設置路由器控制孩子上網 瀏覽:577
網路電話搭建平台多少錢 瀏覽:64
網路適配器wifi不能正常運行 瀏覽:236
怎樣將網路連接電腦上 瀏覽:488
中國電信網路電視機頂盒如何調 瀏覽:255
網上國網用移動網路登錄不上了 瀏覽:389
樂享wifi真的不需要網路密碼嗎 瀏覽:654
網路小說質量和數量哪個重要 瀏覽:721
華為手機出現網路信號不好 瀏覽:862
游戲網路推廣有哪些平台 瀏覽:233
紅米切換移動網路 瀏覽:724
網路設備cr是什麼意思 瀏覽:646
網路推廣用什麼交友軟體 瀏覽:407
蘋果12快捷網路切換 瀏覽:590
頭條網路連接設置 瀏覽:932
三星電視沒網路設置 瀏覽:269
打造中國網路營銷 瀏覽:961
用別人的無線網路會被盜嗎 瀏覽:433

友情鏈接