ロジスティックシグモイドとソフトプラス関数の関係

Goodfellow他著の書籍『Deep Learning』の中で、**ロジスティックシグモイドとソフトプラス関数の関係式**がいくつか示されていましたが、それの導出をやってみました。

日本語翻訳版は去年見たときは[オンライン公開されていました](https://www.deeplearningbook.me/)が、2018年1月現在は最終準備中とのことで、公開を停止しているそうです。また公開されることを期待しましょう。原著（英語）は上記のリンクから、オンライン公開ページに飛ぶこともできます。

タイトルやページ番号は去年9月時点での日本語翻訳版に準拠します。以下、これを本書とします。式番号はこちらで振り直しています。**第3章「確率と情報理論」の3.10「一般的な関数の有用な性質」（p.63～65）**の式が対象です。

##関数の定義
###ロジスティックシグモイド
$$\sigma(x) = \frac{1}{1+\exp(-x)} \tag{1}$$
###ソフトプラス関数
$$\zeta(x) = \log(1+\exp(x)) \tag{2}$$

##ロジスティックシグモイドとソフトプラス関数の関係
以下、「読者は暗記しておいてもいいだろう」(p.64)とされている性質の式

$$\sigma(x) = \frac{\exp(x)}{\exp(x)+\exp(0)} \tag{3}$$
$$\frac{d}{dx}\sigma(x)=\sigma(x)(1-\sigma(x)) \tag{4}$$
$$1-\sigma(x)=\sigma(-x) \tag{5}$$
$$\log\sigma(x) = -\zeta(-x) \tag{6}$$
$$\frac{d}{dx}\zeta(x) = \sigma(x) \tag{7} $$
$$\forall x \in (0,1), \sigma^{-1}(x)=\log\frac{x}{1-x} \tag{8} $$
$$\forall x \gt 0, \zeta^{-1}(x) = \log(\exp(x)-1) \tag{9} $$
$$\zeta(x) = \int_{-\infty}^{x} \sigma(y)dy \tag{10} $$
$$\zeta(x) - \zeta(-x) = x \tag{11} $$

$\sigma^{-1}(x)$は統計学でロジットと呼ばれます（本書より）。なるほどロジスティックとロジットってそういう関係だったのか。

(1)(2)の定義から、(3)～(11)を導出してみます（本書には導出がありません）。高校数学ぐらいの知識でできます。専門家ではないので間違っていたらごめんなさい。

##関係式の導出
###(3)式
(1)の分子分母に$\exp(x)$をかけます。

```math
\begin{align}
\sigma(x)&=\frac{\exp(x)}{\exp(x)+\exp(-x)\exp(x)}\\
&=\frac{\exp(x)}{\exp(x)+\exp(-x+x)}\\
&=\frac{\exp(x)}{\exp(x)+\exp(0)}
\end{align}
```

指数関数同士の掛け算は指数部分の足し算になります。

###(4)式
(3)を$x$で微分します。分数関数の微分公式

```math
\frac{d}{dx}\frac{f(x)}{g(x)} = \frac{1}{\{g(x)\}^2}\Bigl\{\bigl(\frac{d}{dx}f(x)\bigr)g(x) - f(x)\frac{d}{dx}g(x)\Bigr\}
```
より、（見やすくするため指数関数$\exp(x)$を$e^x$と書き換えることがあります）

```math
\begin{align}
\frac{d}{dx}\sigma(x) &= \frac{1}{(e^x+e^0)^2}\Bigl\{(\frac{d}{dx}e^x)(e^x+e^0)-e^x\frac{d}{dx}(e^x+e^0)\Bigr\}\\
&= \frac{1}{(e^x+e^0)^2}\bigl\{e^x(e^x+e^0)-(e^x)^2\bigr\}\\
&= \frac{e^x}{e^x+e^0}\frac{1}{e^x+e^0}(e^x+e^0-e^x)\\
&= \sigma(x)\frac{(e^x+e^0)-e^x}{e^x+e^0}\\
&= \sigma(x)\bigl(1-\sigma(x)\bigr)
\end{align}
```

###(5)式
(3)式から、

```math
\begin{align}
1-\sigma(x) &= 1-\frac{\exp(x)}{\exp(x)+\exp(0)}\\
&=\frac{\exp(0)}{\exp(x)+\exp(0)}\\
\end{align}
```

分子分母に$\exp(-x)$をかけ、

```math
\begin{align}
&=\frac{\exp(-x)}{\exp(x)\exp(-x)+\exp(-x)}\\
&=\frac{\exp(-x)}{\exp(-x)+\exp(0)} = \sigma(-x)
\end{align}
```

###(6)式
(1)式の対数をとり、

```math
\begin{align}
\log\sigma(x) &= \log\Bigl(\frac{1}{1+\exp(-x)}\Bigr)\\
&=-\log\bigl(1+\exp(-x)\bigr)\\
&=-\zeta(-x)
\end{align}
```

###(7)式
(2)式を微分し、

```math
\begin{align}
\frac{d}{dx}\zeta(x) &= \frac{d}{dx}\log(1+e^x)\\
&=\frac{1}{1+e^x}\frac{d}{dx}(1+e^x)\\
&=\frac{e^x}{1+e^x} = \sigma(x)
\end{align}
```

途中、合成関数の微分の公式を使っています。この公式はとてもよく使うので覚えておいて損はないです。

###(8)式
(1)式を$\sigma(x)=y$として$x$について解きます

```math
\begin{align}
y&=\frac{1}{1+e^{-x}}\\
y+ye^{-x}&=1\\
e^{-x}&=\frac{1-y}{y}\\
-x&=\log\bigl(\frac{1-y}{y}\bigr)\\
x&=\log\Bigl(\frac{1}{\frac{1-y}{y}}\Bigr)\\
&=\log\bigl(\frac{y}{1-y}\bigr)
\end{align}
```

元の関数の値域が、逆関数の定義域となるので、
$$\forall x \in (0,1), \sigma^{-1}(x)=\log\frac{x}{1-x}$$

###(9)式
(8)の場合と同様に、(2)式から、

```math
\begin{align}
y &= \log(1+e^x)\\
e^y &= 1+e^x\\
e^x &= e^y -1\\
x &= \log(e^y-1)
\end{align}
```

$$\therefore\forall x \gt 0, \zeta^{-1}(x) = \log\bigl(\exp(x)-1\bigr)$$

###(10)式
(7)式の両辺を$y$で置き換え積分します

```math
\begin{align}
\frac{d}{dy}\zeta(y) &= \sigma(y)\\
\int_{-\infty}^{x}\Bigl\{\frac{d}{dy}\zeta(y)\Bigr\}dy&=\int_{-\infty}^{x}\sigma(y)dy\\
\zeta(x)-\zeta(-\infty)&=\int_{-\infty}^{x}\sigma(y)dy\\
\zeta(x) &=\int_{-\infty}^{x}\sigma(y)dy \qquad(\because\zeta(-\infty)=0)
\end{align}
```

###(11)式
(2),(3),(6)式より、

```math
\begin{align}
\zeta(x)-\zeta(-x) &= \log(1+e^x) + \log\sigma(x)\\
&=\log(1+e^x) + \log\Bigl(\frac{e^x}{e^x+1}\Bigr)\\
&=\log(1+e^x) + \log(e^x) - \log(1+e^x)\\
&=\log(e^x)\\
&=x
\end{align}
```

以上です。自分はまだ勉強中なので、これらの式本当に使うのかなという感はありますが、一度自分で導出しても面白いかもしれません。