BLOG

深層学習7、ニ値分類

深層学習7、ニ値分類

2.4.3 ニ値分類

ニ値分類は、入力xを内容に応じて2種類に区別する問題である。例えば、人の顔の写真が与えられ、ある方法で特徴ベクトルxを取り出すとき、xを元にその人の性別を判断する場合。

→ 入力xからdの値を推定することになる。

この問題を定式化する方法はいくつかあるが、xを指定したとき、d=1となる事後確率p(d=1|x)をモデル化する方法を考える。えられたxに対し、事後確率の値が0.5を超えらばd=1,下回ればd=0と判断することにする。この事後確率p(d=1(x))をモデル化するのにニューラルネットを使う。出力層にユニット1つを持ち、その活性化関数はロジスティック関数、

$$y=\frac{1}{1+e^{-u}}$$

とする。このネットワーク全体の入力層関数y(x;w)を事後確率のモデル

$$p\left(d=1\mid x\right)\approx \ y\left(x;\ w\right)$$

とする。ネットワークのパラメータwを変えることで、様々な事後確率をネットワークの自由度の範囲で表現することができる。

パラメータwは、訓練データ{(xn,dn)|n=1, ... , N}を用いて、モデルが与える事後分布p(d|x;w)がデータが与える分布と最もよく整合するように最尤推定(Maximum Likelihood Estimation)を行う。p(d|x;w)をd=1とd=0の事後分布を使ってp(d|x)=p(d = 1|x)dp(d = 0|x)1-dのように表現することができる。最尤推定は、このモデルの下でwのデータに対する尤度(Likelihood)を求め、それを最大化するようなwを選ぶ。wの尤度は、

$$L\left(w\right)\ \equiv \ \prod _{n=1}^Np\left(d_n\mid x_n;w\right)=\prod _{n=1}^N\left\{y\left(x_n;w\right)\right\}^{d_n}\left\{1-y\left(x_n;w\right)\right\}^{1-d_n}$$

で与えられる。最大化の代わりに最小化を考え、符号を反転した、

$$E\left(w\right)\ =\ -\sum _{n=1}^N\left[d_n\log y\left(x_n;w\right)+\left(1-d_n\right)\log \left\{1-y\left(x_n;w\right)\right\}\right]$$

を誤差関数とする。

$$p\left(d=1\mid x\right)=\frac{p\left(x,d=1\right)}{p\left(x,d=0\right)+p\left(x,d=1\right)}$$

であり、

$$u\equiv \log \frac{p\left(x,d=1\right)}{p\left(x,d=0\right)}$$

とおくと、p(d=1|x)はuのロジスティック関数に一致する。

$$u=\log \left\{p\left(x,d=1\right)-p\left(x,d=0\right)\right\},\ -u\ =\ \log \left\{p\left(x,d=0\right)-p\left(x,d=1\right)\right\}$$

以上の定式化の代わりに、ニ値分類を多クラスの一種と見なし、そちらの方法論を使うこともできる。その場合は出力層はユニット2つとなり、活性化関数にソフトマックスを使う。えられる結果は同じ。

2.4.3 이진분류

이진분류는, 입력 x를 내용에 맞게 2종류로 구별하는 문제이다. 예를 들어, 사람의 얼굴을 찍은 사진이 주어졌을 때, 어떤 방법으로 특징벡터 x를 뽑아내 x를 기반으로 사람의 성별을 판단하는 경우가 있다. 이 경우, 입력 x로부터 d의 값을 추정하게 된다.

이 문제를 정식화하는 몇 가지 방법이 있는데, x를 지정했을 때, d=1이 되는 사후확률 p(d=1|x)를 모델화하는 방법을 생각해보자. 얻어진 x에 대해, 사후확률의 값이 0.5를 넘으면 d=1, 0.5를 밑돌면 d=0으로 판단한다. 이 사후확률 p(d=1(x))의 모델화에 신경망을 사용한다. 출력층은 유닛 하나를 가지는데, 그 활성화 함수를 로지스틱 함수

$$y=\frac{1}{1+e^{-u}}$$

로 한다. 이 네트워크 전체의 입력층함수 y(x;w)를 사후확률의 모델

$$p\left(d=1\mid x\right)\approx \ y\left(x;\ w\right)$$

로 한다. 네트워크의 파라미터 w를 바꾸면 여러 사후확률을 네트워크의 자유도 범위 내에서 표현할 수 있다.

파라미터 w는 훈련 데이터 {(xn,dn)|n=1, ... , N} 를 이용해 모델에 맞는 사후분포p(d|x;w)가 데이터가 나타내는 분포와 가장 잘 맞도록 하는 최대 가능도 추정(Maximum Likelihood Estimation)을 실행한다. p(d|x;w)를 d=1, d=0의 사후분포를 사용해 p(d|x)=p(d = 1|x)dp(d = 0|x)1-d와 같이 표현하는 것이 가능하다. 최대 가능도 추정법은, 이 모델 아래에서 w의 데이터에 대한 우도(Likelihood)를 구해, 그것을 최대화 하는 w를 고른다. w의 우도는

$$L\left(w\right)\ \equiv \ \prod _{n=1}^Np\left(d_n\mid x_n;w\right)=\prod _{n=1}^N\left\{y\left(x_n;w\right)\right\}^{d_n}\left\{1-y\left(x_n;w\right)\right\}^{1-d_n}$$

으로 얻어진다. 최대화 대신 최소화를 생각해 부호를 반전시킨

$$E\left(w\right)\ =\ -\sum _{n=1}^N\left[d_n\log y\left(x_n;w\right)+\left(1-d_n\right)\log \left\{1-y\left(x_n;w\right)\right\}\right]$$

를 오차 함수로 한다.

$$p\left(d=1\mid x\right)=\frac{p\left(x,d=1\right)}{p\left(x,d=0\right)+p\left(x,d=1\right)}$$

이므로,

$$u\equiv \log \frac{p\left(x,d=1\right)}{p\left(x,d=0\right)}$$

를 적용하면, p(d=1|x)는 u의 로지스틱 함수와 일치한다.

혼자 생각해 보았는데, 아래의 흐름에 따라 로지스틱 함수와 일치하는 것 같다.

$$u=\log \left\{p\left(x,d=1\right)-p\left(x,d=0\right)\right\},\ -u\ =\ \log \left\{p\left(x,d=0\right)-p\left(x,d=1\right)\right\}$$

이상의 정식화 대신 이진분류를 다클래스 분류의 일종으로 보아 그 방법론을 사용할 수도 있다. 이 경우 출력층의 유닛은 두개가 되고, 활성화 함수로는 소프트맥스를 사용한다. 얻어진 결과는 동일하다.