Courseraで機械学習を勉強する:ロジスティク回帰でどのようにパラメータを決定するのか

さて、ロジスティク回帰ではパラメータはΘである。Θはどのように求めるのだろう。

線形関数でコスト関数を定義した時は、誤差の二乗平均を使っていた。しかし、同じ計算方法をシグモイド関数に当てはめると、極小値が複数ある関数が出来上がってしまう。極小値が一つであれば、確実に最小のコストが求められ、そこで得られたパラメータは最適である。しかし、極小値が複数あるとそうはいかない。

そこで、logを使ったコスト関数を考える。もしy=1であるなら、コスト関数は

画像1

もしy=0であるなら、コスト関数は

画像2

とする。ここで、y=1のとき、h→0でコスト→∞になることに気を付ける。h(x)=0のとき、y=1になる、つまりΘの式が0以上になる場合、コストは無限大になる。そんなΘは全く適していないから、選ばないよう、コストが大きくなるのである。逆に、h(x)=1, y=1の場合、予測は的中し、そんな関数hを作り出すΘは選ばれるよう、コストが最小になるのである。

これを一つにしたのが、

画像3

そして、最善のΘは、

画像4

この関数、各データセットについてそれぞれ値を求め、足し合わせたもの、が最小になるΘである。このコスト関数を選ぶのは、統計学で効率的に見つけられるといわれているからである(最尤推定、さいゆうすいてい、と呼ばれる原理である)。

さて、ここから実際に計算をしていく。このコスト関数を最小化するためには、勾配降下法を使う。これは、あるパラメータから、そのパラメータで偏微分した値を引いていく。こうすれば、極小値から遠いときは大きく動き、極小値付近の傾きがほぼ0の時は少しずつパラメータが変動する。これを式で書くと

画像5

これを計算すると、

画像6

となる。ここで気を付けるのは、Θは多次元のパラメータで、ΘT=[Θ0, Θ1, ..., Θn]となっていて、上の式ですべてのパラメータを同時に更新していくのである。この式は一見、線形回帰で使う式と似ているが、そもそもhΘはロジスティック関数であるから、全く異なる。

この記事が気に入ったらサポートをしてみませんか?