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/