一、離散卷積的求法
假設兩組資料
a(原始資料):[a b c d], b(平滑視窗)[1/2 1/3]
則a卷積b等於
(1) a*1/2 = a/2 b/2 c/2 d/2 (空) 不移位
(2) a*1/3 = (空) a/3 b/3 c/3 d/3 向右移一位
(3) (1) + (2) = a/2 b/2+a/3 c/2+b/3 d/2+c/3 d/3
二、卷積平滑資料
基於一的離散卷積求解過程,則卷積可以利用與平滑資料。
1、假設t的取值範圍為-4~4平均分成100份,y = sin(t) + randn(100), randn(100)為100個標準正太分布中的隨機取值(randn(100)為乙個向量),則利用卷積來平滑資料的結果,其中平滑視窗為[1/10…..1/10] (10個1/10組成的向量):
如圖所示,原始資料為黑點,平滑資料為紅色+號,在邊緣部分資料變化趨勢不準確,這是由於這裡面使用的 python語句為:
convolution(y,window,'same')
'''結果為資料集中間長度為max(y,window)的結果,因此會有邊緣效應'''
解釋:由於平滑視窗為[1/10 1/10 1/10…..1/10],則基於一種離散卷積求解過程可得,其平滑結果為取本點與前面9個點之和的平均值。也就相當與每個點的增幅都被縮小了,因此可以用來平滑資料。居於此可得,當平滑視窗向量值越少時,資料越不平滑(每個點的增幅值被考慮的權重增大),如下例所示,平滑視窗為[1/2 1/2]:
解釋:平滑資料為該點於前面一點的平均值,即每兩點取乙個平均值。
因此當平滑視窗越長時,資料越平滑,因為選取了更多的點取平均值,因此每一點的增幅權重將被降低,如圖所示,平滑視窗為[1/50…1/50]
解釋:如圖所示平滑視窗為[1/50…1/50],此情況與原始資料形狀偏離較大,因為資料越幅度越大的地方,增幅越小,再被平均了之後權重就變得更小。
為了更好的理解卷積平滑過程,令y = 2*t + randn(100),t的取值範圍與正弦函式相同。如圖所示
解釋:平滑視窗為[1/10…/10]。
這裡需要注意,無論平滑視窗中每乙個元素取多小,結果都不會變成一條水平直線,因為一條直線每一點的增幅都是不變的,例如假設原始資料形狀類似一條直線,且每一點增幅為0.1,則
(1)前一點原始:a(n);
卷積平滑之後(a(1)+a(2)+…+a(n))/n;
(2)本點a(n+1)
卷積平滑之後(a(2)+a(3)+…+a(n+1))/n
(3)兩點之差(增幅):
原始:a(n+1)-a(n) = 0.1;
平滑:(a(n+1)-a(1))/n = n*0.1/n = 0.1;
所以卷積平滑資料只是平均每一點的增幅,當每一點的增幅都一樣時,無論平滑視窗元素的值多小,都不會得到一條水平的直線(不考慮邊緣效應),如圖所示:
解釋:平滑視窗為[1/50 1/50…1/50],且對應點與平滑視窗[1/10…1/10]的相同。這也解釋了為什麼正弦離散點平滑資料會與原始正弦離散點的影象有所不同,因為正弦函式每一點的增幅不同,其導數為cos(t),0點的增幅最大,pi/2點的增幅點最小,因此如果平滑視窗元素值過小時,越靠近極值點,由於其增幅很小,所以其平滑結果越偏離原始離散點。
三、結論
卷積平滑資料方法平滑的是每一點的增幅,且本點的平滑結果為前n點的平均值。適用於原始資料震動幅度不太大於理想資料的情形。
workerman平滑重啟原理
平滑重啟不同於普通的重啟,平滑重啟可以做到在不影響使用者的情況下重啟服務,以便重新載入php程式,完成業務 更新。平滑重啟一般應用於業務更新或者版本發布過程中,能夠避免因為 發布重啟服務導致的暫時性服務不可用的影響。注意 只有子程序執行過程中載入的檔案支援reload,主程序載入的檔案不支援relo...
標籤平滑的原理
在tensorflow2.x版本中呼叫該函式,請看 基於 keras 和 tensorflow 的標籤平滑實現.假設選用softmax交叉熵訓練乙個三分類模型,某樣本經過網路最後一層的輸出為向量x 1.0,5.0,4.0 對x進行softmax轉換輸出為 假設該樣本y 0,1,0 那損失loss 按...
反卷積原理
一 介紹 反卷積,可以理解為卷積操作的逆運算。這裡千萬不要當成反卷積操作可以復原卷積操作的輸入值,反卷積並沒有那個功能,它僅僅是將卷積變換過程中的步驟反向變換一次而已,通過將卷積核轉置,與卷積後的結果再做一遍卷積,所以它還有個名字叫轉置卷積。雖然它不能還原出原來卷積的樣子,但是在作用上具有類似的效果...