什麼是 Softplus 一階導數計算器?
這個工具能在任意實數輸入值 \(x\) 上,計算 Softplus 激活函數的一階導數。Softplus 函數的定義為 \(\phi(x) = \ln(1 + e^x)\),是 ReLU(修正線性單元)函數的平滑、可微版本,在神經網路中應用相當廣泛。它的導數恰好就是邏輯斯諦 Sigmoid 函數,這一特性讓它在以梯度為基礎的訓練過程中格外好用。
使用方式
輸入你想計算導數的 \(x\) 值,再送出即可。計算器會回傳 \(\phi'(x)\),這個數值永遠嚴格落在 0 與 1 之間。正值會把結果推向 1,負值會把結果推向 0,而輸入恰好為 0 時,結果則為 0.5。
公式解析
對 Softplus 函數進行微分可得:
$$\frac{d}{dx}\ln\!\left(1 + e^{x}\right) = \frac{e^{x}}{1 + e^{x}} = \frac{1}{1 + e^{-x}}$$
這正是邏輯斯諦 Sigmoid 函數 \(\sigma(x)\)。為了維持運算上的數值穩定性,本計算器在 \(x \ge 0\) 時採用 \(\frac{1}{1 + e^{-x}}\),在 \(x < 0\) 時則改用等價的 \(\frac{e^{x}}{1 + e^{x}}\),藉此避免在輸入絕對值很大時,指數運算發生溢位。
實際範例
假設 \(x = 0.5\)。則 \(e^{-0.5} = 0.6065306597\),因此 \(1 + e^{-0.5} = 1.6065306597\)。所以 $$\phi'(0.5) = \frac{1}{1.6065306597} = 0.622459$$ 由於輸入值稍微偏正,導數結果便略高於 0.5。
常見問題
為什麼導數會是 Sigmoid 函數?因為對 \(\ln(1 + e^x)\) 套用連鎖律後,代數化簡的結果正好是 \(\frac{1}{1 + e^{-x}}\),也就是標準的邏輯斯諦 Sigmoid 函數。
\(\phi'(x)\) 的值域是多少?是開區間 \((0, 1)\)。當 \(x\) 趨近負無限大時,數值會趨近 0;當 \(x\) 趨近正無限大時,數值會趨近 1,但永遠不會真正達到這兩個邊界。
會有除以零的風險嗎?不會。因為對任何實數 \(x\) 而言,\(1 + e^{-x}\) 都恆大於零,所以分母絕不可能為零。