クロスエントロピー誤差


二値分類問題

入力ベクトルx\boldsymbol{x}に対して、出力yyが0か1の二値であるような分類問題を考える。定石は、重みベクトルw\boldsymbol{w}とバイアスbbを用いて、 出力yyが1である確率をロジスティック回帰によって次のようにモデル化することである。

q(y=1x)=σ(wTx+b)q(y=1|\boldsymbol{x}) = \sigma(\boldsymbol{w}^T\boldsymbol{x} + b)

ここでσ()\sigma(\cdot)はシグモイド関数である(ロジスティック回帰やシグモイド関数は単なる例であり、この頁の本質ではないのでこの後登場しない)。q()q(\cdot)は予測された確率分布で、q(y=1xi)q(y=1|\boldsymbol{x}_i)はデータxi\boldsymbol{x}_iが与えられたときyyが1となる確率、q(y=0xi)q(y=0|\boldsymbol{x}_i)yyが0となる確率を表す。なお、q(y=1xi)q(y=1|\boldsymbol{x}_i)q(y=0xi)q(y=0|\boldsymbol{x}_i)q()q(\cdot)という表現をしているが実際の関数の形は異なることに注意。yyが0となる確率は

q(y=0x)=1q(y=1x)q(y=0|\boldsymbol{x}) = 1 - q(y=1|\boldsymbol{x})

である。また、予測される出力y^i\hat{y}_iは次のようになる。

y^i={1(q(y=1xi)0.5)0(q(y=1xi)<0.5)\hat{y}_i = \begin{cases} 1 & (q(y=1|\boldsymbol{x}_i) \geq 0.5) \\ 0 & (q(y=1|\boldsymbol{x}_i) < 0.5) \end{cases}

これに対し、実際のデータに対する現実の確率分布ppは以下のようになる。

p(yxi)={yi(y=1)1yi(y=0)p(y|\boldsymbol{x}_i) = \begin{cases} y_i & (y=1) \\ 1 - y_i & (y=0) \end{cases}

これは以下のように書いても良い。

{p(y=1xi)=yip(y=0xi)=1yi\left\{ \begin{array}{l} p(y=1|\boldsymbol{x}_i) = y_i \\ p(y=0|\boldsymbol{x}_i) = 1-y_i \end{array} \right.

つまりyi=1y_i=1であればyy0,10,1である確率はそれぞれ0,10,1であり、yi=0y_i=0であればyy0,10,1である確率はそれぞれ1,01,0だということである。

データセットD={(xi,yi)}i=1N\mathcal{D} = \{(\boldsymbol{x}_i, y_i)\}_{i=1}^Nがあるとする。あるデータxi\boldsymbol{x}_iについてyiy_iが1である確率はq(y=1xi)q(y=1|\boldsymbol{x}_i)と予測され、yiy_iが0である確率はq(y=0xi)=1q(y=1xi)q(y=0|\boldsymbol{x}_i)=1 - q(y=1|\boldsymbol{x}_i)と予測される。 このとき、現実の値yiy_iが出力される確率は以下のようになる。

[q(y=1xi)]yi[1q(y=1xi)](1yi)\left [ q(y=1|\boldsymbol{x}_i) \right ]^{y_i} \left [1 - q(y=1|\boldsymbol{x}_i)\right ]^{(1-y_i)}

2つの掛け算になっているが、yiy_iが1であれば1yi1 - y_iが0、yiy_iが0であれば1yi1 - y_iが1になるため、yiy_iが1であればq(y=1xi)q(y=1|\boldsymbol{x}_i)yiy_iが0であれば1q(y=1xi)1 - q(y=1|\boldsymbol{x}_i)になるだけである。

これをデータセットD={(xi,yi)}i=1N\mathcal{D} = \{(\boldsymbol{x}_i, y_i)\}_{i=1}^Nに含まれる全てのデータについて考えると、予測分布q(x)q(\boldsymbol{x})が与えられたとき、その予測分布が出力の組み合わせ{yi}i=1N\{y_i\}_{i=1}^Nを実現する確率L(D)L(\mathcal{D})は次のようになる。

L(D)=i=1N[q(y=1xi)]yi[1q(y=1xi)](1yi)=i=1N[q(y=1xi)]p(y=1xi)[q(y=0xi)]p(y=0xi)=i=1N[q(y=yixi)]p(y=yixi)=i=1N[q(yixi)]p(yixi)\begin{align} L(\mathcal{D}) &= \prod_{i=1}^N \left [ q(y=1|\boldsymbol{x}_i) \right ]^{y_i} \left [1 - q(y=1|\boldsymbol{x}_i)\right ]^{(1-y_i)} \\ &= \prod_{i=1}^N \left [ q(y=1|\boldsymbol{x}_i) \right ]^{p(y=1|\boldsymbol{x}_i)} \left [q(y=0|\boldsymbol{x}_i)\right ]^{p(y=0|\boldsymbol{x}_i)} \\ &= \prod_{i=1}^N \left [ q(y=y_i|\boldsymbol{x}_i) \right ]^{p(y=y_i|\boldsymbol{x}_i)} \\ &= \prod_{i=1}^N \left [ q(y_i|\boldsymbol{x}_i) \right ]^{p(y_i|\boldsymbol{x}_i)} \end{align}

(3)式は(2)式の掛け算をy=yiy=y_iと書いて一つにまとめたものである(二項の掛け算は実質一つのみであり、こう書けば一つにまとまる)。また(4)式は単にy=y=を省略した表記である。L(D)L(\mathcal{D})は尤度であり、これを最大化するようなパラメータw,b\boldsymbol{w}, bを求めることで、パラメータを推定することができる。 尤度の対数を取ると次のようになる。

logL(D)=i=1N{yilogq(y=1xi)+(1yi)log[1q(y=1xi)]}=i=1Np(y=yixi)logq(y=yixi)=i=1Np(yixi)logq(yixi)\begin{align} \log L(\mathcal{D}) &= \sum_{i=1}^N \left\{ y_i \log q(y=1|\boldsymbol{x}_i) + (1-y_i) \log \left [1 - q(y=1|\boldsymbol{x}_i)\right ] \right\} \\ &= \sum_{i=1}^N p(y=y_i|\boldsymbol{x}_i) \log q(y=y_i|\boldsymbol{x}_i) \\ &= \sum_{i=1}^N p(y_i|\boldsymbol{x}_i) \log q(y_i|\boldsymbol{x}_i) \end{align}

これを最大化するw,b\boldsymbol{w}, bを求めることで、パラメータを推定することができる。

クロスエントロピー

ある確率分布ppqqが与えられたとき、その分布の間の距離を表す指標としてクロスエントロピーがある。クロスエントロピーは次のように定義される。

H(p,q)=xp(x)logq(x)=i=1Np(xi)logq(xi)\begin{aligned} H(p, q) &= - \sum_{x} p(x) \log q(x) \\ &= - \sum_{i=1}^N p(x_i) \log q(x_i) \end{aligned}

これは対数尤度の符号を反転させたものに他ならない。上記の対数尤度を最大化することは、クロスエントロピーを最小化することと同じである。 クロスエントロピーは分布ppqqが近いほど小さくなるので、実際の分布ppと予測分布qqが近くなるようにパラメータw,b\boldsymbol{w}, bを推定するという意味になる。

カルバック・ライブラー情報量

分布ppqqの間の距離を表す指標として、カルバック・ライブラー情報量がある。カルバック・ライブラー情報量は次のように定義される。

DKL(pq)=xp(x)logp(x)q(x)=xp(x)logp(x)xp(x)logq(x)=H(p)+H(p,q)\begin{aligned} D_\mathrm{KL}(p||q) &= \sum_{x} p(x) \log \frac{p(x)}{q(x)} \\ &= \sum_{x} p(x) \log p(x) - \sum_{x} p(x) \log q(x) \\ &= -H(p) + H(p, q) \end{aligned}

カルバック・ライブラー情報量は、分布ppqqが近いほど小さくなる。また、分布ppqqが同じであれば、カルバック・ライブラー情報量は最小値0をとる。二値分類問題では分布ppは実際の分布でqqは予測分布なので、予測においてはH(p)-H(p)は定数であり、クロスエントロピー誤差を最小化することはカルバック・ライブラー情報量を最小化することと同じである。