ロジスティック回帰#

モデル#

目的変数y{0,1}の二値分類において、y=1である確率をpy=0である確率を1pとする。 ロジスティック回帰はそのオッズ比の対数を線形モデルで説明するモデル

log(p1p)=βx

である。

両辺の指数をとると

p=exp(βx)1+exp(βx)

となる。

導出
p1p=exp(βx)p=exp(βx)(1p)=exp(βx)pexp(βx)

両辺をpで割ると

1=exp(βx)1pexp(βx)1+exp(βx)=exp(βx)1pp=exp(βx)1+exp(βx)

このpはロジスティック・シグモイド関数

σ(z)=exp(z)1+exp(z)=11+exp(z)

と呼ばれる、(,)の入力を(0,1)に変換する関数である。

導出

TODO $exp(z)1+exp(z)$

誤差関数#

ロジスティック回帰は、統計学的な言い方だと最尤推定法でパラメータを推定する。

機械学習的な言い方をすると交差エントロピー誤差を最小化するようにパラメータを推定する。

ベルヌーイ分布#

ロジスティック回帰はP(y=1)=p,P(y=0)=1pのベルヌーイ分布に従う。

P(y)={pif y=11pif y=0

この確率質量関数は一括で書くと

P(Y=y)=py(1p)1y

と書くことができる。

尤度関数#

尤度関数L(θ)とは一般に確率(密度/質量)関数f(x|θ)の積

L(θ)=i=1nf(xi|θ)

である(独立に得られたサンプルを仮定するので単純な積が同時確率を意味する)。

そのため、ベルヌーイ分布の尤度関数は

L(p)=i=1npyi(1p)1yi

となる。

ロジスティック回帰で使う場合、p[0,1]はロジスティック回帰の予測値pi=σ(βxi)y{0,1}は実測値である。

L(β)=i=1npiyi(1pi)1yi

交差エントロピー誤差#

尤度関数の対数を取って符号を負に反転させたものを交差エントロピー誤差(cross entropy loss)という。log lossやlogistic lossとも呼ばれる

L(β)=lnL(β)=i=1n{yilnpi+(1yi)ln(1pi)}

勾配#

交差エントロピーの勾配は

L(β)=L(β)β=i=1n(piyi)xi
導出

総和を取るまえの1レコード単位のものを使う。

(β)=ylnσ(βx)+(1y)ln(1σ(βx))

σ(βx)に関する微分

dlnσ(βx)dβ=dlnσ(βx)dσ(βx)dσ(βx)d(βx)d(βx)dβ=1σ(βx)σ(βx)(1σ(βx))x=1σ(βx)xdln(1σ(βx))dβ=dln(1σ(βx))dσ(βx)dσ(βx)d(βx)d(βx)dβ=11σ(βx)σ(βx)(1σ(βx))x=σ(βx)x

より、

d(β)dβ=y(1σ(βx))x(1y)σ(βx)x=(yyσ(βx)σ(βx)+yσ(βx))x=(yσ(βx))x

(参考)使った微分

dlogxdx=1xdσ(x)dx=σ(x)(1σ(x))dσ(βx)dx=dσ(βx)d(βx)×d(βx)dx=σ(βx)(1σ(βx))×x

y{1,1}にする場合#

上記の例ではy{0,1}としていた。y{1,1}とする場合は少し書き方が変わる

y=1の確率とy=1の確率がそれぞれ

p(y=1|x)=exp(βx)1+exp(βx)=11+exp(βx)p(y=1|x)=1p(y=1|x)=1+exp(βx)1+exp(βx)exp(βx)1+exp(βx)=11+exp(βx)

で表されるとする。y{1,1}のとき、これらを1つにまとめて、yの確率を

p(y|x)=11+exp(yβx)

と書くことができる。

尤度は

i=1n11+exp(yiβxi)

負の対数尤度は

i=1nlog(1+exp(yiβxi))

と書くことができる。機械学習の分野だとこちらの表現のほうが目にするかも。

線形分離可能性#

機械学習として(目的変数の予測が目的)のロジスティック回帰では、線形分離可能な問題であることが嬉しい

統計学としては最尤推定量が存在しない(解が一意に定まらない)という扱いになる様子