大部分啟用函式相當於起到類似於簡單開關的作用,比如sigmoid relu,和階躍函式都有點兒關係,當然了,也有的看上去不怎麼像開關。
所以總體來說還是引入各種非線性,增加模型的表達能力,可以做到線性模型做不到的事。
請參考聊一聊深度學習的activation function
為啥輸出不是zero-centered的時候,會發生下面的情況?
在求梯度的時候,如果x都是正數(有很多任務的輸入特徵是這樣的),再比如啟用函式的輸入也是經過了sigmoid的輸出,那也都是正數,那麼在這個函式這對引數的各個維度(wi)求導,導數會都是正的。會導致每一維特徵對應weight都朝著乙個方向改變,都增加或者都減少(鏈式的,可能傳過來乙個正的或者負的導數),就只能往第一象限或者第三象限走。
上面舉的兩個例子,直觀上是不太可能出現的,因為很多時候需要平衡幾個特徵的重要性,應該是有的權重上公升,有的下降,比如二維的時候,第乙個權重多點,第二個權重少點,這麼個調整方式才會比較正常。比如那條藍色的線,橫軸權重是正的,縱軸是負的,假如從原點開始,應該是第乙個權重不斷上公升,第二個不斷下降,最後到達最優點。
而不是所有特徵對應的weight都衝著乙個方向,都減少或者增加,所以綜合算下來,很可能會出現有的梯度實際退化成了0,更新的時候只有乙個在實際的更新。在那個圖里,相當於限制了每次只能沿著某個座標軸走,走出來了zigzag形狀,也能走到目標點,就是慢。
IFNULL的作用是什麼?
下面乙個簡單的sql和結果說明,如果ifnull a,b a接收的值為null,則返回b,否則返回a select ifnull null,0 select ifnull score,0 from student where id 4 按照ifnull函式的作用,應該返回0才對,可是結果並不是這樣。...
babel的作用是什麼?
babel是將es6及以上版本的 轉換為es5的工具。它用 babel.config.js 或 babelrc 檔案作為配置檔案,其中最為重要的配置引數是presets和plugins。plugins babel外掛程式可以將輸入原始碼進行轉換,輸出編譯後的 presets 一組babel外掛程式,...
RequestMapping的作用是什麼?
用於對映url到控制器類或乙個特定的處理程式方法.該註解只能用於方法或型別上 target retention retentionpolicy.runtime documented public 指定對映的名稱 string name default 指定請求的路徑對映,別名為path aliasf...