Machine Learning

Stanford Univ, Coursera


自習: Sigmoid関数の一般形がSoftmax関数

classification において、2択の場合につかうのが sigmoid 関数、 複数の選択肢から1つを選ぶ場合に使うのがsoftmax関数である。 前者は binary_cross_entropy, 後者は categorical_cross_entropy などと呼ばれることがある。 sigmoid関数はsoftmax関数の特殊な形と考えることができる。

$\displaystyle \boldsymbol{z} = \begin{pmatrix}z_1 \\ \vdots \\ z_n \end{pmatrix}, \quad \boldsymbol{W} = \begin{pmatrix} w_{1,0} & w_{1,1} & \cdots & w_{1,n} \\ w_{2,0} & w_{2,1} & \cdots & w{_2,n} \\ \vdots & \vdots & \ddots & \vdots \\ w_{n,0} & w_{n,1} & \cdots & w_{n,n} \\ \end{pmatrix}, \quad \boldsymbol{x} = \begin{pmatrix}x_0 \\ \vdots \\ x_n \end{pmatrix} \quad $ とおいて $\boldsymbol{z} = \boldsymbol{W} \boldsymbol{x}$ とする。
各$z_k$ に対する確率は、 $P_k = \displaystyle \frac{e^{z_k}}{\sum_i e^{z_i}}$ で計算できる。 ($0 \leqq P_k \leqq 1, ~~ \sum_k P_k = 1$ を満たす)
ここで正解を $\boldsymbol{t} = \displaystyle \begin{pmatrix} t_1 \\ \vdots \\ t_n \end{pmatrix}, $ ただし「 $t_j$はどれか一つが1でそれ以外は全て0」として与えると、 コスト関数は $\quad Cost_j = - t_j \log P_j \quad$ で定義できる。「$j$が正解の場合、$j$ に対する確率 $P_j$ を1に近付けたい」という趣旨である。
$\displaystyle \boldsymbol{\theta} = \begin{pmatrix}\theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{pmatrix} ,\quad \boldsymbol{x} = \begin{pmatrix}1 \\ x_1 \\ \vdots \\ x_n \end{pmatrix} \quad $ とおいて
$z = \theta_0 + \theta_1 x_1 + \cdots + \theta_n x_n = \boldsymbol{\theta}^T \cdot \boldsymbol{x} $
$ h = g(z) = \displaystyle \frac{1}{1+e^{-z}} = \frac{1}{1+e^{-z}} \cdot \frac{e^z}{e^z} = \frac{e^z}{1+e^z} = \frac{e^z}{e^0 + e^z} \quad (= P_1 \quad \mbox{とおく}) $
$1-h = 1 - \displaystyle \frac{e^z}{q+e^z} = \frac{1}{1+e^z} = \frac{e^0}{e^0 + e^z} \quad (= P_0 \quad\mbox{とおく})$
$P_0 + P_1 = 1$
ここで $z_0 = 0$, $z_1 = z$ とおく。 上で $P_k = \displaystyle \frac{e^{z_k}}{\displaystyle e^{z_0} + e^{z_1}} = \displaystyle \frac{e^{z_k}}{\displaystyle \sum_{i=0}^1 e^{z_i}}$ と定義したが、 $0 \leqq P_k \leqq 1, \quad \displaystyle \sum_{k} P_k = 1$ なので $P_k$ は確率とみなすことができる。
$\sum_j t_j = 1$ を満たす $t_j$ を導入して、$\quad$ $y= 0$ のとき $\displaystyle \begin{pmatrix} t_0 \\ t_1\end{pmatrix} = \begin{pmatrix}1 \\ 0\end{pmatrix}$, $\quad$ $y= 1$ のとき $\displaystyle \begin{pmatrix} t_0 \\ t_1\end{pmatrix} = \begin{pmatrix}0 \\ 1\end{pmatrix}$ と定義すると,
コスト関数:
$\begin{eqnarray} Cost &=& -y \log h - (1-y) \log (1-h) \\ &=& - t_1 \log P_1 - t_0 \log P_0 \quad\quad (= \displaystyle \sum_{j=0}^1 t_j \log P_j = \sum_{j=0}^1 t_j \log \frac{e^{z_j}}{\sum_i e^{z_i}}) \\ &=& -t_0 \log \frac{e^{z_0}}{e^{z_0} + e^{z_1}} - t_1 \log \frac{e^{z_1}}{e^{z_0} + e^{z_1}} \\ &=& -t_0 (\log e^{z_0} - \log(e^{z_0} + e^{z_1})) -t_1 (\log e^{z_1} - \log(e^{z_0} + e^{z_1})) \\ &=& -t_0 z_0 - t_1 z_1 + (t_0 + t_1) \log(e^{z_0} + e^{z_1}) \\ &=& -t_0 z_0 - t_1 z_1 + \log(e^{z_0} + e^{z_1}) \quad \quad (\because t_0 + t_1 = 1) \\ \end{eqnarray}$
$\begin{eqnarray} \displaystyle \frac{\partial Cost}{\partial z_k} &=& -t_k + \frac{e^{z_k}}{e^{z_0} + e^{z_1}} \\ &=& -t_k + P_k \\ \end{eqnarray}$

Week3, "Simplified Cost Function and Gradient Descent" (3-5 のビデオ) の8:50 あたりで $ \theta_j = \theta_j - \alpha \displaystyle \sum_{i=1}^m (h_{\theta}(x^{(i)}) - y^{(i)}) x_j^{(i)} $ という数式が提示されているが、この $(h_{\theta}(x^{(i)}) - y^{(i)})$ の部分が $\displaystyle \frac{\partial Cost}{\partial z_k} $ に相当する。

$\because \quad y^{(i)}=1$の場合は $\displaystyle \frac{\partial Cost}{\partial z_k} = -t_1 + P_1 = - y^{(i)} + h^{(i)} ~$, $\quad$ $y^{(i)}=0$ の場合は $\displaystyle \frac{\partial Cost}{\partial z_k} = -t_0 + P_0 = -(1-y^{(i)}) + (1-h^{(i)}) = -y^{(i)} + h^{(i)} ~$.
また、$\displaystyle \frac{\partial a}{\partial z} = 1$, $\displaystyle \frac{\partial z}{\partial \theta_j} = x_j \quad$ なので $\displaystyle \frac{\partial Cost}{\partial \theta_j} = \frac{\partial z}{\partial \theta_j} \cdot \frac{\partial z_i}{\partial z} \cdot \frac{\partial Cost}{\partial z_j} = (-y^{(i)} + h^{(i)}) x_j$ となる。

単純に計算した方が説明が簡単か?

$\begin{eqnarray} h & = & \displaystyle \frac{1}{1+e^{-z}} \end{eqnarray}$
$\begin{eqnarray} Cost &=& -y \log h - (1-y) \log (1-h) \\ &=& -y \log \displaystyle \frac{1}{1+e^{-z}} - (1-y) \log (1 - \displaystyle \frac{1}{1+e^{-z}}) \\ &=& -y \log \displaystyle \frac{e^z}{1+e^z} - (1-y) \log \displaystyle \frac{1}{1+e^z} \\ &=& -y (\log e^z -\log (1+e^z)) - (1-y) (\log 1 - \log (1+e^z)) \\ &=& -y z + (y + (1 - y)) \log (1+e^z) \\ &=& -y z + \log(1+e^z) \end{eqnarray}$
$\begin{eqnarray} \displaystyle \frac{\partial Cost}{\partial z} &=& -y + \frac{e^z}{1+e^z} \\ &=& -y + h \end{eqnarray}$
$\begin{eqnarray} \displaystyle \frac{\partial Cost}{\partial \theta_j} &=& \frac{\partial Cost}{\partial z} \cdot \frac{\partial z}{\partial \theta_j} \\ &=& (-y + \frac{e^z}{1+e^z}) \cdot x_j \\ \end{eqnarray}$
Yoshihisa Nitta

http://nw.tsuda.ac.jp/