MCPで接続 →

計算を入力してください

任意の実数(正・負・ゼロ)

公式

広告

結果

ソフトサインの1次微分
0.4444444444
φ'(x)
φ(x) = x / (1 + |x|) 0.3333333333
φ'(x) = 1 / (1 + |x|)² 0.4444444444

ソフトサイン関数とは

ソフトサイン関数(Softsign Function)は、ニューラルネットワークで用いられる滑らかな活性化関数で、\(\varphi(x) = \frac{x}{1 + |x|}\) で定義されます。任意の実数の入力を開区間 \((-1, 1)\) に写像する点は双曲線正接(tanh)とよく似ていますが、飽和域へ近づく速度がより緩やかなのが特徴です。この穏やかな飽和特性により、学習時の勾配消失問題を軽減できる場合があります。本計算ツールでは、関数値 \(\varphi(x)\) に加えて、主な出力として1次微分 \(\varphi'(x)\) を求めます。

Two overlaid curves on x-y axes: an S-shaped curve flattening toward horizontal asymptotes and a bell-shaped curve peaking at the center
The Softsign function phi(x) = x/(1+|x|) (S-shaped) and its derivative phi'(x) = 1/(1+|x|)^2 (bell-shaped).

使い方

x に任意の実数(正・負・ゼロのいずれでも可)を入力すると、\(\varphi'(x)\)(ソフトサイン曲線の傾き)と \(\varphi(x)\)(活性化の出力値)が表示されます。単位はなく、\(x\) は無次元の純粋な実数です。初期値は \(x = 0.5\) に設定されています。

計算式の解説

\(\varphi(x) = \frac{x}{1 + |x|}\) の微分は次のようになります。

$$\varphi'(x) = \frac{1}{\left(1 + \left|x\right|\right)^{2}}$$

分母 \((1 + |x|)\) は常に 1 以上であるため、微分は常に正の値をとり、その範囲は \((0, 1]\) に収まります。最大値 1 をとるのは \(x = 0\) のときで、ここで関数の傾きが最も急になります。\(|x|\) が大きくなるにつれて \(\varphi'(x)\) は 0 に近づき、関数が飽和していく様子を表しています。

広告
Single bell-shaped curve peaking at value 1 above the origin, symmetric and decaying to zero on both sides
Graph of the derivative phi'(x) = 1/(1+|x|)^2, symmetric about x=0 with a maximum of 1 at the origin.

計算例

\(x = 0.5\) の場合:\(|x| = 0.5\) なので \(1 + |x| = 1.5\) となります。関数値は次のようになります。

$$\varphi(0.5) = \frac{0.5}{1.5} = 0.333333\ldots$$

微分は次のようになります。

$$\varphi'(0.5) = \frac{1}{1.5^{2}} = \frac{1}{2.25} = 0.444444\ldots$$

つまり \(x = 0.5\) におけるソフトサイン曲線は、出力が約 0.3333、傾きが約 0.4444 となります。

よくある質問

ソフトサイン関数はすべての点で微分可能ですか? はい、可能です。\(|x|\) は \(x = 0\) で折れ点を持ちますが、その点での \(\varphi\) の左微分と右微分はともに 1 で一致するため、\(\varphi\) は \(x = 0\) を含むすべての点で微分可能です。

微分が負になることはありますか? ありません。\(\varphi'(x) = \frac{1}{(1 + |x|)^{2}}\) は、正の数の2乗で 1 を割った形なので、常に正の値になります。

tanh との違いは何ですか? どちらも \((-1, 1)\) に飽和しますが、ソフトサインは tanh の指数関数的な裾ではなく、多項式(\(1/x^{2}\))的な裾を持ちます。そのため飽和がより緩やかで、ゼロから離れた領域でも比較的大きな勾配を保ちます。

最終更新: