為什麼我們在神經網絡中使用 ReLU 以及如何使用它?
為什麼我們在神經網絡中使用整流線性單元 (ReLU)?這如何改善神經網絡?
為什麼我們說 ReLU 是一個激活函數?神經網絡不是softmax激活函數嗎?我猜我們同時使用 ReLU 和 softmax,如下所示:
具有 softmax 輸出的神經元 1 —-> ReLU 在神經元 1 的輸出上,它是
神經元 2 的輸入 —> 具有 softmax 輸出的神經元 2 –> …
所以神經元2的輸入基本上是ReLU(softmax(x1))。這個對嗎?
ReLU 函數是 $ f(x)=\max(0, x). $ 通常這是按元素應用到其他一些函數的輸出,例如矩陣向量乘積。在 MLP 使用中,整流器單元取代了除讀出層之外的所有其他激活函數。但我想如果你願意的話,你可以混合搭配它們。
ReLU 改進神經網絡的一種方法是加快訓練速度。梯度計算非常簡單(0 或 1 取決於 $ x $ )。此外,ReLU 的計算步驟很簡單:任何負元素都設置為 0.0——沒有指數,沒有乘法或除法運算。
邏輯和雙曲正切網絡的梯度小於 ReLU 的正部分。這意味著隨著訓練的進行,積極的部分會更新得更快。然而,這是有代價的。左側的 0 梯度有其自身的問題,稱為“死神經元”,其中梯度更新將輸入值設置為 ReLU,使得輸出始終為零;修改後的 ReLU 單元,例如 ELU(或 Leaky ReLU,或 PReLU 等)可以改善這一點。
$ \frac{d}{dx}\text{ReLU}(x)=1\forall x > 0 $ . 相比之下,一個 sigmoid 單元的梯度最多為 $ 0.25 $ ; 另一方面, $ \tanh $ 在接近 0 的區域中的輸入表現更好,因為 $ 0.25 < \frac{d}{dx}\tanh(x) \le 1 \forall x \in [-1.31, 1.31] $ (大約)。