ソフトプラス関数の1次微分計算とは
この計算ツールは、任意の実数 \(x\) におけるソフトプラス(Softplus)活性化関数の1次微分(導関数)を求めます。ソフトプラス関数は \(\varphi(x) = \ln(1 + e^x)\) で定義され、ニューラルネットワークで広く用いられる ReLU(正規化線形ユニット)関数を滑らかに近似した、微分可能な関数です。その導関数はちょうどロジスティックシグモイド関数と一致するため、勾配法による学習で特に扱いやすいという特徴があります。
使い方
導関数を評価したい \(x\) の値を入力して計算を実行してください。計算結果として \(\varphi'(x)\) が返されますが、この値は常に 0 より大きく 1 より小さい範囲に収まります。\(x\) が正の値ほど結果は 1 に近づき、負の値ほど 0 に近づきます。\(x\) がちょうど 0 のとき、結果は 0.5 になります。
計算式の解説
ソフトプラス関数を微分すると、次のようになります。
$$\frac{d}{dx}\ln\!\left(1 + e^{x}\right) = \frac{e^{x}}{1 + e^{x}} = \frac{1}{1 + e^{-x}}$$これがロジスティックシグモイド関数 \(\sigma(x)\) です。本計算ツールでは数値計算の安定性を保つため、\(x \geq 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\) となります。したがって $$\varphi'(0.5) = \frac{1}{1.6065306597} = 0.622459$$ です。入力がわずかに正であるため、導関数の値は 0.5 をやや上回ります。
よくある質問
なぜ導関数がシグモイド関数になるのですか? \(\ln(1 + e^x)\) に連鎖律を適用すると、式変形により \(\frac{1}{1 + e^{-x}}\)、すなわち標準的なロジスティックシグモイドに帰着するためです。
\(\varphi'(x)\) の値域はどうなりますか? 開区間 \((0, 1)\) です。\(x\) が負の無限大に向かうと値は 0 に、正の無限大に向かうと 1 に近づきますが、いずれの境界値にも決して到達しません。
ゼロ除算の心配はありませんか? ありません。\(1 + e^{-x}\) はすべての実数 \(x\) に対して常に 0 より大きいため、分母が 0 になることはありません。