🥇

Softmax関数とエントロピー正則化

に公開

概要

この記事では,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

GitHubで編集を提案

Discussion