こちらを読むと
- ロジスティック回帰のアルゴリズムを理解できます
前回の記事で、ロジスティック回帰はシグモイド関数を用いていること、モデル式が以下のように表せることまでを説明しました。
$$
p(C = t | {\bf x}) = y^t(1 – y)^{1-t}\\
t \in {0, 1}
$$
今回はこのモデル式を変形していき、確率的勾配降下法で重みとバイアスを更新していくアルゴリズムについて、解説します。
尤度関数を用いた最尤推定
重み\({\bf w}\)とバイアス\({\bf b}\)を求めるために、最尤推定という手法を用います。最尤推定とは、尤度関数と呼ばれる式を最大化するパラメータを求めることにより、学習を行う方法です。尤度とは、出力\(y\)が、そのモデル式から出力された確率のことです。
上のモデル式から、尤度関数と呼ばれる式を定義することができます。
N個のデータ\({\bf x}_n (n=1, 2, …, N)\)およびそれぞれに対応する正解の出力データ\(t_n\)が与えられたとき、ネットワークのパラメータである重み\({\bf w}\)およびバイアス\(b\)を最尤推定するための尤度関数を求めます。
尤度関数は、\( y_n := \sigma({\bf w}^T{\bf x}_n + b) \)を用いて、下式のように表すことができます。
$$
\begin{eqnarray*}
L({\bf w}, b) &=& \prod_{n=1}^N p(C=t_n | {\bf x_n}) \\
&=& \prod_{n=1}^N y_n^{t_n}(1 – y_n)^{1 – t_n}
\end{eqnarray*}
$$
この尤度関数を最大化(最尤推定)するようにパラメータを調整できれば、うまくネットワークの学習ができていることになります。
尤度関数の最大を求めるためには、’-‘をつけて最小化する、という問題に置き換えることができます。最小化するためには、微分をして勾配が0になる個所を求めればよいのですが、上式は積の形をしており、偏微分の計算が煩雑になりそうですね。
そこで計算を簡単にするため、上式の対数をとって、全体を和の形で表します。かつ、最小化する問題に置き換えるので、’-‘も付けます。
$$
\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*}
$$
上で導出された関数のことを、交差エントロピー誤差関数と呼びます。この関数を最小化することが、もともとの尤度関数を最適化することになります。
まとめ
- ロジスティック回帰のアルゴリズムが理解できました
次回は、交差エントロピー誤差関数を最小化する方法で、最適なパラメータを求めていきます。
Reference
詳解ディープラーニング
https://book.mynavi.jp/manatee/books/detail/id=72424
[…] 前回の記事で、ロジスティック回帰の交差エントロピー誤差関数を定義し、これを最小化することで、尤度関数を最大化、すなわち最適なパラメータが設定できることを説明しました。 […]