y=ln(1+ex) ソフトプラス関数 y=ln(1+ex) のグラフ
y=ln(1+ex) は「ソフトプラス」と呼ばれる関数です。ex>0 より 1+ex>1 なので対数は必ず正になり、定義域はすべての実数、値域は y>0 です。中身 1+ex が単調に増え、ln も単調増加なので、全体として単調に増加します。
x→−∞ では ex→0 となり ln(1+0)=0 に近づくので、左側では y=0(x 軸)が漸近線です。x→+∞ では 1+ex≈ex となり y≈ln(ex)=x となるため、右側では直線 y=x が漸近線になります。つまり左では平らに 0 へ、右では傾き 1 の直線に漸近する、なめらかに折れ曲がった形です。
導関数は次のようになり、これはちょうどロジスティック関数(シグモイド関数)です。
y′=1+exex=1+e−x1 値は 0 から 1 の間をとり、x→−∞ で 0、x→+∞ で 1 に近づきます。二次導関数は正なので、グラフは常に下に凸です。
具体的な値は次のとおりで、大きい x ではほぼ x に一致します。
- x=0 で y=ln2≈0.693
- x=1 で y=ln(1+e)≈1.313
- x=−1 で y=ln(1+e−1)≈0.313
- x=5 で y≈5.007
機械学習でよく使う ReLU max(0,x) は原点で折れ曲がって微分できませんが、ソフトプラスはそれをなめらかにつないだ近似で、原点付近では丸みを帯び、遠方では ReLU とほとんど重なります。ニューラルネットワークの活性化関数として、あるいは分散や個体数など「必ず正になる量」をパラメータ化する際に使われます。導関数がシグモイドであること、すなわちシグモイドの原始関数(積分)がソフトプラスであるという美しい関係も、勾配計算を簡単にしてくれます。
なお ln(1+ex) をそのまま計算すると、x が大きいときに ex があふれてしまうため、実装では max(0,x)+ln(1+e−∣x∣) と書き換えて数値的に安定させる工夫がよく用いられます。