因為如果不用非線性激勵函式,每一層都是上一層的線性函式,無論神經網路多少層,輸出都是輸入的線性組合,與只有乙個隱藏層效果一樣。相當於多層感知機了。所以引入非線性激勵函式,深層網路就變得有意義了,可以逼近任意函式。
1)sigmoid:將輸出實值壓縮到0-1之間。 缺點:(輸入非常大或非常小的時候)容易梯度消失;sigmoid函式是非0均值的,下一層的神經元將從上一層神經元得到的非0 均值的訊號作為輸入,再結合w計算梯度,始終都是正的。(可根據batch調節)
2)tanh:是0均值的。
3)relu(修正線性單元):好處:收斂快,求梯度簡單。具有稀疏特性。
(相比於sigmoid:sigmoid反向傳播求誤差梯度時,求導計算量很大,而relu求導簡單;對於深層網路,sigmoid反向傳播時,在sigmoid接近飽和區時,變換太緩慢,導數趨0,從而無法完成深層網路的訓練;relu會使一部分神經元的輸出為0,造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合問題。)
缺點:訓練的時候很脆弱,乙個非常大的梯度流過乙個relu神經元後,不會對其他資料有啟用現象了,設定較小的學習率,這種情況會不那麼頻繁。
參考【這裡】
0-1損失; 感知損失
hinge損失; log損失、交叉熵
平方損失; 指數損失; 絕對值損失
【延伸閱讀1】
【延伸閱讀2】
(1) vanilla update: x+
=−le
arni
ngra
te∗d
x x+=
−lea
rnin
grat
e∗dx
(2) momentum update動量更新: v=
μ∗v−
lear
ning
rate
∗dx v=μ
∗v−l
earn
ingr
ate∗
dx
# integrate velocity x+
=vx +=
v# integrate position
(3) nesterov momentum: xa
head
=x+μ
∗vx ah
ead=
x+μ∗
vv=μ
∗v−l
earn
ingr
ate∗
dxah
ead v=μ
∗v−l
earn
ingr
ate∗
dxah
ea
dx+=
v x+=
v(4) adagrad:
(自適應的方法,梯度大的方向學習率越來越小,由快到慢) ca
che+
=dx∗
∗2c ac
he+=
dx∗∗
2x+=
−lea
rnin
grat
e∗dx
/(np
.sqr
t(ca
che)
+eps
) x+=
−lea
rnin
grat
e∗dx
/(np
.sqr
t(ca
che)
+eps
)(5) adam: m=
β1∗m
+(1−
β1)d
x m=β
1∗m+
(1−β
1)dx
v=β2∗v+
(1−β
2)(d
x∗∗2
) v=β
2∗v+
(1−β
2)(d
x∗∗2
)x+=
−lea
rnin
grat
e∗m/
(np.
sqrt
(v)+
eps)
x +=
−lea
rnin
grat
e∗m/
(np.
sqrt
(v)+
eps)
機器學習 神經網路
神經網路中最基本的成分是 神經元 模型,在生物神經網路中,每個神經元與其他神經元相連,當他 興奮 時,就會向相連的神經元傳送化學物質,從而改變這些神經元類的電位 如果某神經元的電位超過乙個 閾值 那麼他就會被啟用。將上述描述當成乙個數學模型 m p神經元模型,神經元接收來自n個神經元傳遞過來的輸入訊...
機器學習 神經網路
序列模型屬於通用模型的一種,因為很常見,所以這裡單獨列出來進行介紹,這種模型各層之間是依次順序的線性關係,在第k層合第k 1層之間可以加上各種元素來構造神經網路這些元素可以通過乙個列表來制定,然後作為引數傳遞給序列模型來生成相應的模型。01 keras model sequential.py fro...
機器學習 神經網路
人工神經網路被用於處理大量輸入以及非線性問題。與回歸方法不同,回歸方法只能處理未知數組成的多項式構成的線性問題,即只能處理簡單的關於未知數多項式的非線性問題。而神經網路利用多層網路這一優勢,能夠處理複雜的非線性問題。theta 的維數為s times s j 1 如上圖所示,分類問題分為兩種 對於這...