以兩個待除錯引數為例,我們可以在乙個二維平面內隨機取點,並將每個點都試一遍,找出某幾個表現出眾的點。再在它們所圍成的區域裡隨機取點,重複上述過程,直至找到滿意的取值。
若是多個引數,可以模擬,只不過是在乙個更高維度的空間中取點罷了。
之所以要隨機取點而不是等間距取點,是因為如果其中有乙個引數對結果影響不大,那麼隨機取點可以讓我們對另乙個引數嘗試更多的可能性。
仍以兩個引數為例。如果我們在乙個二維平面內等間距取25個點(5×
5 5×5
),並且其中有乙個引數
ϵ ϵ
對結果的影響微乎其微,那麼我們對另乙個引數的取值實際上只取了5個值。而如果是隨機取點的話,我們對另乙個引數則去了25個值,更有可能找到最優解。
當我們估計出某個超引數大致的範圍後,我們希望的是能夠在這個範圍內隨機均勻取值。例如我們想要決定某一層的神經元個數n[
l]n [l
],我們可能會在(50
,100
) (50,
100)
這個區間內去隨機均勻取值,這是沒有問題的。
但是如果我們想要調整超引數
β β
,我們很有可能會在
(0.0001,1
) (
0.0001,1
)的範圍內去隨機取值。這是再在區間內隨機取值就不行了。因為這時我們會在
(0.1,1
) (
0.1,1)
間分配90%90%
的點,而在
(0.0001,1
) (
0.0001,1
)內分配10%10%
的點。這樣顯然不行。
這種情況下我們可以對它取對數(
log10
β log10
β)。這樣就變成了在(−
4,0)
( −4
,0
)裡面隨機取值。同樣,如果
β β
是 (0.9
,0.9999
) (
0.9,
0.9999
)中取值,那麼我們可以對1−
β 1−β
取對數,然後再隨機取值。
此外我們還需注意的一點是,對於想
β β
這樣的超引數,它的靈敏度會隨著區間的變化而變化。當
β β
趨向於1時,其靈敏度會大幅上公升,所以我們對於這樣的區間要更加密集地取點。
batchnormb
atch
norm
這個地方一直沒弄明白,怎麼看z˜
(i) z~(
i)
都不等於z(i)z
(i
)啊。
⎧⎩⎨⎪
⎪⎪⎪⎪
⎪⎪⎪⎪
⎪⎪⎪⎪
⎪⎪⎪⎪
⎪⎪⎪⎪
⎪μ=1
m∑iz
(i)σ
2=1m
∑i(z
(i)−
μ)2z
(i)n
orm=
z(i)
−μσ2
⋅ϵ√z
˜(i)
=γ⋅z
(i)n
orm+
β
γ、
β是我們
的模型的
學習引數
(lea
rnab
lepa
rame
ters
)if:
{γ=σ
2+ϵ−
−−−−
√β=μ
then
:z˜(
i)=z
(i)(1)
(1){μ=
1m∑i
z(i)
σ2=1
m∑i(
z(i)
−μ)2
znor
m(i)
=z(i
)−μσ
2⋅ϵz
~(i)
=γ⋅z
norm
(i)+
β⏟γ、
β是我們
的模型的
學習引數
(lea
rnab
lepa
rame
ters
)if:
{γ=σ
2+ϵβ
=μth
en:z
~(i)
=z(i
)
深度學習 如何系統地除錯並選擇超引數
我們都知道,在深度學習乃至機器學習過程中,有很多超引數需要除錯。本文主要介紹深度學習超引數除錯方法。各引數重要性排序 由重要到不重要 排序根據吳恩達所述 學習率 隱藏層單元數 mini batch大小 隱層數 學習率衰減係數。根據博主除錯 的經驗,重要性排序如下 隱層數 隱藏層單元數 mini ba...
18 批標準化 超引數選擇原則
batch normalization 批標準化和普通的資料標準化類似,是將分散的資料統一的一種方法,也是優化神經網路的一種方法。批標準化,不僅在將資料輸入模型之前對資料做標準化,而且還在網路的每一次變換之後都做標準化。即使在訓練過程中均值和方差隨時間發生變化,它也可以適應性地將資料標準化。我們知道...
SVM 正則化,歸一化及引數的選擇
正則化 regularization 歸一化 也有稱為正規化 標準化,normalization 是對資料盡心預處理的方式,他們的目的都是為了讓資料更便於我們的計算或獲得更加泛化的結果,但並不改變問題的本質,下面對他們的作用分別做一下科普,如有不正確之處,求指正!需要注意的是,這些名詞在不同的領域含...