現有的深度學習框架能夠做到這個嗎?或者這個想法本身可行嗎?


relu算不算你心中的if else呢?


能說得再細點嗎,舉個例子


貌似RELU可以


relu,dropout

tensorflow里有條件控制函數tf.cond


反向傳播的時候,當前層的梯度是由後一層傳遞過來的梯度,和當前層對輸入的偏導共同決定的。如果當前層的實現中有條件分支,那麼根據輸入在對應分支中計算偏導即可


theano提供了這個功能吧。
首先,你為什麼要在神經網路里設計if else這樣的單元?如果一定要加入,可以嘗試把它改寫成max 或者min的組合。另外,雖然反向傳播要求所有的計算可微,實際情況下其實可以取捨,前面有的回答里提到的relu就是這樣。詳細點說,在x=0處,relu函數不存在導數,但是反向傳播的時候,如果正巧碰上x=0我們可以取左導數或者右導數,帶進去算一下,微分其實相差不會很大,一個是0一個很接近0。如果你的if語句里的條件是可以解出來的,那麼這個神經元本質上應該也是個分段函數,在不可導的點上單獨處理就行了。


推薦閱讀:
相关文章