こちらを読むと
- ロジスティック回帰の勾配法でパラメータを決定する手法を理解できます
前回の記事で、ロジスティック回帰の交差エントロピー誤差関数を定義し、これを最小化することで、尤度関数を最大化、すなわち最適なパラメータが設定できることを説明しました。
交差エントロピー誤差関数のおさらい
$$
\begin{eqnarray*}
E({\bf w}, b) &:=& -logL({\bf w}, b) \\
&=& – \sum_{n=1}^N \{t_n log y_n + (1 – t_n) log (1 – y_n)\}
\end{eqnarray*}
$$
~詳解ディープラーニングより抜粋~
上で導出された関数のことを、交差エントロピー誤差関数と呼びます。この関数を最小化することが、もともとの尤度関数を最適化することになります。
こちらの式の解釈ですが、 \(t_n \in \{0, 1\}\)であることを思い出してください。1つの\(n\)に対しては、
$$
\{t_n log y_n + (1 – t_n) log (1 – y_n)\}
$$
の値は\( t_n log y_n または (1 – t_n) log (1 – y_n) \)のどちらかになります。
\(t_n\)は0 or 1のため、この値は
\( log y_n または log (1 – y_n) \)のどちらかになります 。\( y_n \)はロジスティック回帰の出力で、確率で表されるため、0~1の範囲の値になります。
すなわち、 \( \{t_n log y_n + (1 – t_n) log (1 – y_n)\} \) の値が大きければ大きいほど、”正解”の確率が高まるわけです。よって、交差エントロピー誤差関数が最小化できれば、”正解”の確率を高められる、すなわち最適なパラメータが求められるのです。
今回は交差エントロピー誤差関数を使って、勾配法(勾配降下法)でパラメータを最適化していきます。
勾配法(勾配降下法)
交差エントロピー誤差関数におけるパラメータは\( {\bf w}, b \)なので、関数を最小化するパラメータを求めるには、「\( {\bf w}, b \)で微分して0になる値」を求める必要があります。しかし、解析的にこの値を求めることは困難です。
そこで、代わりに勾配法を用いてパラメータを決定する方法があります。勾配法は以下の式で表せます。
$$
{\bf w}^{(k+1)} = {\bf w}^{(k)} – \eta \frac{\partial E({\bf w},b)}{\partial {\bf w}} \\
b^{(k+1)} = b^{(k)} – \eta \frac{\partial E({\bf w},b)}{\partial b}
$$
~詳解ディープラーニングより抜粋~
ここで、\( \eta \)(イータ)は学習率と呼ばれるハイパーパラメータで、モデルのパラメータの収束しやすさを調整します。この値は0より大きな値で、一般的には0.1や0.01といった適当な小さな値が使われます。この値を大きくしてしまうと、関数の最小値のあたりを行ったり来たりして、最適解が定まらないという状態になります。
上式によりパラメータが更新されなくなった場合、それは勾配が0になったことを表すので、少なくとも反復学習で探索した範囲では最適な解が求められたことになります。
まとめ
- ロジスティック回帰の勾配法でパラメータを決定する手法を理解できました
次回は勾配法の式を変形していき、実装に落とし込める形にします。
Reference
詳解ディープラーニング
https://book.mynavi.jp/manatee/books/detail/id=72424
[…] 前回の記事で、ロジスティック回帰の交差エントロピー誤差関数について、勾配法で最小化してパラメータを求める手法を説明しました。今回は勾配法の式をさらに変形して、実装に落 […]