概要
この記事では,softmax関数は,\max関数のエントロピー正則化であることを解説する.
ノーテーション
- 数列\{ x_{n} \}_{n=1}^{N}\subset \mathbb{R}とする.
-
x = \begin{pmatrix} x_1 \\ \vdots \\ x_N\end{pmatrix} \in \mathbb{R}^Nとする.
- 確率単体\Delta^{N-1} : = \{\theta \in \mathbb{R}_{\geq 0 }^N | \sum_{n=1}^N \theta_n =1 \}とする.
-
\lambda > 0とする.
- エントロピーをH(\theta ) = -\sum_{n=1}^N \theta_n \log \theta_nとする.
- Softmax関数をS (x) := \frac{1}{\sum_{n=1}^N \exp( x_n ) }\begin{pmatrix} \exp( x_1) \\ \vdots \\ \exp( x_N ) \end{pmatrix} \in \mathbb{R}^Nとする.
注釈 1.
最大値の原理から
\max_n x_n = \max_{\theta \in \Delta^{N-1}} \theta^\top x .
Softmax関数は,\max関数のエントロピー正則化
定理 2.
関数
L(\theta) := \theta^\top x + \lambda H(\theta)
の\theta \in \Delta^{N-1}上の最大値を達成する値はS \left( \frac{x}{\lambda} \right)である.
注釈 3.
\lambda \to 0とすると,
L\left( S \left( \frac{x}{\lambda} \right) \right) \to \max_n x_n
証明
\mu \in \mathbb{R}として,
\ell (\theta , \mu ) := \theta^\top x + \lambda H(\theta) + \mu \left( \sum_{n=1}^N \theta_n -1 \right)
とする.
Lagrangeの未定乗数法から,
L (\theta)の\theta \in \Delta^{N-1}に関する最大値は,
\frac{ \partial \ell}{\partial \theta_n}
=
\frac{ \partial \ell}{\partial \mu} = 0
と同値である.
条件\frac{ \partial \ell}{\partial \theta_n}=0について考察する.
\begin{align*}
\frac{ \partial \ell}{\partial \theta_n} = x_n - \lambda (\log \theta_n + 1) + \mu
\end{align*}
である.条件\frac{ \partial \ell}{\partial \theta_n}=0は,
\begin{align}
& \lambda \log \theta_n = x_n - \lambda + \mu
\nonumber \\
& \Leftrightarrow \log \theta_n = \frac{x_n +\mu}{\lambda} - 1
\nonumber \\
& \Leftrightarrow \theta_n = \exp \left( \frac{x_n +\mu}{\lambda} - 1 \right) = \exp \left( \frac{\mu}{\lambda} \right) \exp \left( \frac{x_n}{\lambda} \right) e^{-1}
.
\tag{1}
\end{align}
両辺n=1, \ldots ,Nに関して足し合わせると,
\begin{align}
& \sum_{n=1}^N \theta_n = \sum_{n=1}^N \exp \left( \frac{\mu}{\lambda} \right) \exp \left( \frac{x_n}{\lambda} \right) e^{-1}
.
\tag{2}
\end{align}
一方,条件\frac{ \partial \ell}{\partial \mu} = 0は
\begin{align}
\sum_{n=1}^N \theta_n =1
\tag{3}
\end{align}
である.
(2)と(3)より,
\begin{align}
& \sum_{n=1}^N \exp \left( \frac{\mu}{\lambda} \right) \exp \left( \frac{x_n}{\lambda} \right) e^{-1} =1
\nonumber \\
& \Leftrightarrow
\exp \left( \frac{\mu}{\lambda} \right) \left( \sum_{n=1}^N \exp \left( \frac{x_n}{\lambda} \right) e^{-1} \right) =1
\nonumber \\
& \Leftrightarrow
\exp \left( \frac{\mu}{\lambda} \right) = \left( \sum_{n=1}^N \exp \left( \frac{x_n}{\lambda} \right) e^{-1} \right)^{-1}
.
\tag{4}
\end{align}
(1)と(4)より,
\begin{align}
& \lambda \log \theta_n = x_n - \lambda + \mu
\nonumber \\
& \Leftrightarrow \log \theta_n = \frac{x_n +\mu}{\lambda} - 1
\nonumber \\
\theta_n & = \exp \left( \frac{\mu}{\lambda} \right) \exp \left( \frac{x_n}{\lambda} \right) e^{-1}
\nonumber \\
& = \left( \sum_{n=1}^N \exp \left( \frac{x_n}{\lambda} \right) e^{-1} \right)^{-1} \exp \left( \frac{x_n}{\lambda} \right) e^{-1}
\nonumber \\
& = \left( \sum_{n=1}^N \exp \left( \frac{x_n}{\lambda} \right) \right)^{-1} \exp \left( \frac{x_n}{\lambda} \right)
= S \left( \frac{x}{\lambda} \right)
.
\nonumber
\end{align}
以上より定理2が従う.\square
参考文献
https://qiita.com/matsutakk/items/c8b14812a6c7aec2eb31
Discussion