机器学习笔记:激活函数
1 激活函數綜述
激活函數:對輸入信號進行線性/非線性變換
2?為什么激活函數要是非線性函數
????????如果不用激活函數,在這種情況下你每一層節點的輸入都是上層輸出的線性函數,很容易驗證,無論你神經網絡 有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當。那么網絡的逼近能力就相當有限。
????????正因為上面的原因,我們決定引入非線性函數作為激活函 數,這樣深層神經網絡表達能力就更加強大(不再是輸入的線性組合,而是幾乎可以逼近任 意函數)
3 激活函數舉例
3.1 softmax
一般最后一個輸出層可能用它來歸一化
經過softmax后每一個單元取值都是介于0和1之間的概率值?,且和為1——>這是變換后可被解釋成概率的基本前提。
選擇概率值最大的類別作為最終的分類結果(對于多分類問題來說)
3.2 tanh
和sigmoid類似 ,也是將(-∞,∞)壓縮到一個有限的空間中。
和sigmoid不一樣的地方是,sigmoid 壓縮至[0,1],tanh壓縮至(-1,1)
?3.3 sigmoid
將所有結果壓縮到[0~1]上——可以用來進行二元分類,σ(x)表示了一個類的概率
?3.4?ReLU(線性整流單元)
- 便于計算
- 可以解決梯度衰減和梯度爆炸問題(斜率是1)
?小于0的輸出值,經過激活函數之后,輸出為0,那么這些值我們可以去除:變成一個細長的線性網絡
????????但這并不是說明通過relu之后,我們得到了一個線性模型,因為隨著input的不同,模型是一直在變的(經過后,那些神經元有值是變化的。也就是說,relu連接的邊會發生變化)
3.4.1 relu的變體
?3.5 Maxout
?relu是特殊的maxout,相當于一個虛擬神經元的輸出肯定為0,然后進行比較,看保留哪個
?
?maxout對應的分段函數有幾段,取決于一次性比較幾個輸出
?3.5.1 maxout的訓練
每一次給定不同的input,連接的邊都是不一樣的,訓練的方式也自然不同。(每一次只更新目前連著的這些參數)
但因為不同的input對應不同的連接方式,所以每個weight實際上都會被train到(CNN中的max pooling的訓練方式同理)
總結
以上是生活随笔為你收集整理的机器学习笔记:激活函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线性代数目录
- 下一篇: 机器学习笔记:反向传播