(6-3) 머신러닝 기초 - 선형분류

Yongjoo Lee·2021년 1월 13일
0
post-thumbnail

선형분류

분류(classification)의 목표

입력벡터 x\bold xKK개의 가능한 클래스 중에서 하나의 클래스로 할당하는 것

분류를 위한 결정이론

  • 확률적 모델(probabilistic model)
    • 생성모델 (generative model) : p(xCk)p(\bold x|C_k)p(Ck)p(C_k)를 모델링한 다음 베이즈 정리를 사용해서
      클래스의 사후 확률 p(Ckx)p(C_k|\bold x)를 구한다. 또는 결합확률 p(x,Ck)p(\bold x, C_k)를 직접 모델링할 수 도 있다.
    • 식별모델 (discriminative model) : p(Ckx)p(C_k|\bold x)를 직접적으로 모델링한다.
  • 판별함수 (discriminant function) : 입력 x\bold x을 클래스로 할당한느 판별함수(discriminant function)를 찾는다. 확률값은 계산하지 않는다.

판별함수 (Discriminant Functions)

입력 x\bold x를 클래스로 할당하는 판별함수를 찾고자 한다.

여기서는 그러한 함수 중 선형함수만을 다룰 것이다.

두 개의 클래스

선형판별함수는 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F64232505-8865-4d0d-83fc-94187f09c6ac%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F64232505-8865-4d0d-83fc-94187f09c6ac%2Fimage.png)

  • w\bold w : 가중치 벡터 (weight vector)
  • w0w_0 : 바이어스 (bias)

y(x)0y(\bold x) \ge 0 인 경우 이를 C1C_1 으로 판별하고 아닌 경우 C2C_2 로 판별한다.

결정 경계 (decision boundary)

  • y(x)=0y(\bold x)=0
  • D1D-1차원의 hyperplane (x\bold xDD차원의 입력벡터일 때)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F2a583e26-4c38-4d28-8ddf-340cd75f70eb%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F2a583e26-4c38-4d28-8ddf-340cd75f70eb%2Fimage.png)

결정 경계면 위의 임의의 두 점 xA,xB\bold x_A, \bold x_B

  • y(xA)=y(xB)=0y(\bold x_A)=y(\bold x_B)=0
  • wT(xAxB)=0w\bold w^T(\bold x_A-\bold x_B)=0 \Rightarrow\bold w는 결정 경계면에 수직
    • 빨간선이 결정 경계
    • R1,R2R_1, R_2는 결정 영역 (y>0y > 0 이면 R1R_1 으로 할당 → class 1 으로 분류)

원점에서 결정 경계면까지의 거리 벡터 w\bold w_\bot를 원점에서 결정 경계면에 대한 사영(projections) 이라고 하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F4851787b-93bb-4ca1-bd00-4d0ce8e9dd99%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F4851787b-93bb-4ca1-bd00-4d0ce8e9dd99%2Fimage.png)

따라서 w0w_0은 결정 경계면의 위치를 결정한다.

  • w0<0w_0 < 0 이면 결정 경계면은 원점으로부터 w\bold w가 향하는 방향으로 멀어져있다.
  • w0>0w_0 > 0 이면 결정 경계면은 원점으로부터 w\bold w의 반대 방향으로 멀어져있다.

또한 y(x)y(\bold x)값은 x\bold x와 결정 경계면 사이의 부호화된 거리와 비례한다.

임의의 한 점 x\bold x의 결정 경계면에 대한 사영을 x\bold x_\bot 이라고 하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F2f0fa428-9df3-42de-bda9-2a9b082f1678%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F2f0fa428-9df3-42de-bda9-2a9b082f1678%2Fimage.png)

  • y(x)>0y(\bold x) >0 이면 x\bold x는 결정 경계면을 기준으로 w\bold w가 향하는 방향에 있다.
  • y(x)<0y(\bold x) <0 이면 x\bold x는 결정 경계면을 기준으로 w-\bold w가 향하는 방향에 있다.
  • y(x)y(\bold x)의 절대값이 클 수록 더 멀리 떨어져 있다.

가짜입력(dummy input) x0=1x_0 = 1을 이용해서 수식을 단순화

  • w~=(w0,w)\tilde{\bold w} = (w_0, \bold w)
  • x~=(x0,x)\tilde{\bold x} = (x_0, \bold x)
  • y(x)=w~Tx~y(\bold x) = \tilde{\bold w}^T\tilde{\bold x}

다수의 클래스

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F26265aac-1ee2-4a64-81ab-968c0d1c46bc%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F26265aac-1ee2-4a64-81ab-968c0d1c46bc%2Fimage.png)

k=1,,Kk = 1,\dots,K

위와 같은 판별함수는 jkj\not=k일 때 yk(x)>yj(x)y_k(\bold x)>y_j(\bold x)를 만족하면 x\bold x를 클래스 CkC_k로 판별하게 된다.

분류를 위한 최소제곱법 (Least squared for classification)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F26265aac-1ee2-4a64-81ab-968c0d1c46bc%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F26265aac-1ee2-4a64-81ab-968c0d1c46bc%2Fimage.png)

k=1,,Kk = 1,\dots,K

아래와 같이 행렬 W~\tilde{\bold W}을 사용하면 간편하게 나타낼 수 있다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F2a311331-7062-4e9e-b7d4-d29535f5f8ff%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F2a311331-7062-4e9e-b7d4-d29535f5f8ff%2Fimage.png)

W~\tilde \bold Wkk번째 열 W~k=(wk0,wkT)T\tilde{W}_k=(w_{k0}, \bold w_k^T)^T

제곱합 에러 함수

학습데이터 {xn,tn},n=1,,N,n\{\bold x_n, \bold t_n\}, n = 1, \dots, N, n번째 행이 tnT\bold t_n^T인 행렬 T\bold T, nn번째 행이 x~nT\tilde{\bold x}_n^T인 행렬 X~\tilde{\bold X}
주어졌을 때 제곱합 에러함수는 다음과 같이 표현할 수 있다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F6cc5bc69-7a02-4a5b-8d49-c992ccda1a42%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F6cc5bc69-7a02-4a5b-8d49-c992ccda1a42%2Fimage.png)

W~\tilde{\bold W}에 대한 ED(W~)E_D(\tilde{W})의 최솟값을 구하면

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Ff583df32-5e48-4e86-b156-86b2164aade6%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Ff583df32-5e48-4e86-b156-86b2164aade6%2Fimage.png)

따라서 판별함수는 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F861f8e00-d329-462b-b4f6-9f746499d130%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F861f8e00-d329-462b-b4f6-9f746499d130%2Fimage.png)

  • 분류를 위한 최소제곱법의 문제들
    • 극단치(outlier)에 민감핟.
    • 목표값의 확률분포에 대한 잘못된 가정에 기초해 있다.
  1. 2 가지 클래스

    ![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe8eee6cb-d43c-430e-9791-867fe62a6b11%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe8eee6cb-d43c-430e-9791-867fe62a6b11%2Fimage.png)

    • 보라색 선은 최소제곱법을 통해 만들어진 선형함수
    • 녹색 선은 로지스틱 회귀를 통해 만들어진 선형함수

    👉 최소제곱법(보라색 선)

    • 왼쪽은 잘 분류되어있는 것처럼 보임.
      그러나 극단치(outlier)가 존재하는 오른쪽에서는 잘 분류가 되지 않음.
    • 극단치가 결정 경계로부터 멀수록 에러함수에 영향을 준다
  2. 3 가지 클래스

    ![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe332f547-4766-4f16-b082-78a0c49a9489%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe332f547-4766-4f16-b082-78a0c49a9489%2Fimage.png)

    • 왼쪽은 최소제곱법
    • 오른쪽은 로지스틱 회귀

    👉 최소제곱법은 목표값이 가우시안 분포를 따를 때 적합한 방법이기 때문에 결과가 제대로 나오지 않음.

퍼셉트론 알고리즘 (The perceptron algorithm)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F7cb79430-90e4-4e76-830d-d16e24209619%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F7cb79430-90e4-4e76-830d-d16e24209619%2Fimage.png)

여기서 ff는 활성 함수(activation function)로 퍼셉트론은 아래와 같은 계단형 함수를 사용한다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F7a1bb617-2f73-4dbb-9d0b-f7a15e65b0ba%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F7a1bb617-2f73-4dbb-9d0b-f7a15e65b0ba%2Fimage.png)

여기서 ϕ0(x)=1\phi_0(\bold x)=1이다.

에러함수

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fb8021ce0-dcb2-46e7-8053-af2d88423784%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fb8021ce0-dcb2-46e7-8053-af2d88423784%2Fimage.png)

MM은 잘못 분류된 데이터들의 집합

Stochastic gradient descent의 적용

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe3a43aca-0cbd-4c23-ab73-8057f37172a8%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe3a43aca-0cbd-4c23-ab73-8057f37172a8%2Fimage.png)

위 업데이트가 실행될 때 잘못 분류된 샘플에 미치는 영향

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F881e67fd-b494-458b-9840-149c2c9c2197%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F881e67fd-b494-458b-9840-149c2c9c2197%2Fimage.png)

w(τ+1)Tϕntn<w(τ)Tϕntn-\bold w^{(\tau+1)T}\phi_nt_n<-\bold w^{(\tau)T}\phi_nt_n

🔥 한번 업데이트되고 난 점에 대한 에러는 이전단계(τ\tau) 에서의 에러값 보다 줄어듦

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F9f71b101-6b9d-4923-ad49-b4ffb173e964%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F9f71b101-6b9d-4923-ad49-b4ffb173e964%2Fimage.png)

  • 검은색 선이 결정 경계, 검은색 화살표가 w\bold w 벡터
  • 원하는 것은 w\bold w 벡터 방향에 빨간색 점이 있고, 반대방향에 파란색 점이 있는 것이다.

업데이트될 때 잘못 분류된 데이터에 대해서만 적용

(업데이트 결과는 ➡,↙,➡ 순서)

🔥 최소제곱법 보다는 퍼셉트론 알고리즘이 더 좋은 알고리즘으로 볼 수 있다. (현대

확률적 생성 모델 (Probabilistic Generative Models)

이제 분류문제를 확률적 관점에서 살펴보고자 한다.

선형회귀와 마찬가지로 확률적 모델은 통합적인 관점을 제공해준다.

예를 들어 데이터의 분포에 관해 어떤 과정을 두게 되면 앞에서 살펴본 선형적인 결정 경계(linear decision boundary)가 그 결과로 유도되는 것을 보게 될 것이다.

p(xCk)p(\bold x|C_k)p(Ck)p(C_k)를 모델링한다음 베이즈 정리를 사용해서 클래스의 사후 확률 p(Ckx)p(C_k|\bold x)를 구한다.

이전의 판별 함수 방법에서는 어떤 에러함수를 최소화시키기 위한 최적의 파라미터를 찾는 것이 목적이라면

확률적 모델은 데이터의 분포(클래스를 포함한)를 모델링하면서 분류 문제를 결과적으로 풀게 된다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F0571e881-e7c6-4df2-ae2c-d2a689397147%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F0571e881-e7c6-4df2-ae2c-d2a689397147%2Fimage.png)

Logistic sigmoid의 성질 및 역함수

  • σ(a)=1σ(a)\sigma(-a)=1-\sigma(a)
  • a=ln(σ1σ)a = \ln(\frac{\sigma}{1-\sigma})

K>2K > 2 인경우

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fd5d89800-bde1-495a-855f-bf4bc3987ed5%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fd5d89800-bde1-495a-855f-bf4bc3987ed5%2Fimage.png)

연속적 입력 (continous inputs)

p(xCk)p(\bold x|C_k) 가 가우시안 분포를 따르고 모든 클래스에 대해 공분산이 동일하다고 가정하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fb4479da9-0909-4c94-b84d-21a3484faf78%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fb4479da9-0909-4c94-b84d-21a3484faf78%2Fimage.png)

aax\bold x에 관한 선형식으로 다음과 같이 정리할 수 있다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe5dc0cc6-441c-4980-ba85-d41c48f8d5e3%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe5dc0cc6-441c-4980-ba85-d41c48f8d5e3%2Fimage.png)

KK개의 클래스인 경우

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Ff06fbc5b-82b9-450d-8927-14ac37f8bed6%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Ff06fbc5b-82b9-450d-8927-14ac37f8bed6%2Fimage.png)

최대우도해 (maximum likelihood solution)

이제 MLE를 통해 모델 파라미터들을 구해보자. 두 개의 클래스인 경우를 살펴본다.

따라서 우도함수는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F893c6899-3114-4e97-9ec0-95d4638f40c8%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F893c6899-3114-4e97-9ec0-95d4638f40c8%2Fimage.png)

π\pi 구하기

로그우도함수에서 π\pi 관련항들만 모으면

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F5bfacc0a-6958-44b7-bda8-587674b60edd%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F5bfacc0a-6958-44b7-bda8-587674b60edd%2Fimage.png)

이 식을 π\pi에 관해 미분하고 0으로 놓고 풀면

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F385c0abc-87aa-42d7-a2eb-3841adb2092c%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F385c0abc-87aa-42d7-a2eb-3841adb2092c%2Fimage.png)

N1N_1C1C_1 에 속하는 샘플의 수이고, N2N_2C2C_2에 속하는 샘플의 수이다.

μ1,μ2\bold \mu_1, \bold \mu_2 구하기

μ1\bold\mu_1 관련항들

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fd082898d-45ce-4a06-bcc6-da95e80b6389%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fd082898d-45ce-4a06-bcc6-da95e80b6389%2Fimage.png)

이 식을 μ1\bold\mu_1에 관해 미분하고 0으로 놓고 풀면

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fc57a0611-e25b-4ce8-a97f-5958ff372b87%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fc57a0611-e25b-4ce8-a97f-5958ff372b87%2Fimage.png)

μ2\bold\mu_2도 유사하게

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F98e5a350-96db-4076-b3a4-48155b962415%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F98e5a350-96db-4076-b3a4-48155b962415%2Fimage.png)

Σ\Sigma 구하기

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F189d8185-2152-4bf7-ad10-d7db30fcddd3%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F189d8185-2152-4bf7-ad10-d7db30fcddd3%2Fimage.png)

가우시안 분포의 최대우도를 구하는 방법을 그대로 사용하면 결국은

Σ=S\Sigma=\bold S

입력이 이산값일 경우 (discrete features)

각 특성 xix_i가 0과 1중 하나의 값만을 가질 수 있는 경우

클래스가 주어졌을 때 특성들이 조건부독립(conditional independence)이라는 가정을 할 경우 문제는 단순화된다.

이것을 naive Bayes 가정이라고 한다. 이 때 p(xCk)p(\bold x|C_k)는 다음과 같이 분해된다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fc9f5b291-89b1-4802-973b-b5ed4d1b5bbc%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fc9f5b291-89b1-4802-973b-b5ed4d1b5bbc%2Fimage.png)

따라서,

ak(x)=lnp(xCk)p(Ck)a_k(\bold x) = \ln p(\bold x|C_k)p(C_k)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F596e5369-ddee-4b6b-97b9-cd4c8d93922d%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F596e5369-ddee-4b6b-97b9-cd4c8d93922d%2Fimage.png)

확률적 식별 모델 (Probabilistic discriminative models)

앞의 생성모델에서는 p(Ckx)p(C_k|\bold x)x\bold x의 선형함수가 logistic sigmoid 또는 softmax를 통과하는 식으로 표현되는 것을 보았다.

즉, K=2K=2 인 경우

p(C1x)=σ(wTx+w0)p(C_1|\bold x)=\sigma(\bold w^T\bold x+w_0)

그리고 파라미터들 w\bold ww0w_0를 구하기 위해서 확률분포들 p(xCk),  p(Ck)p(\bold x|C_k), \;p(C_k)의 파라미터들을 MLE로 구했다.

대안적인 방법은 p(Ckx)p(C_k|\bold x)x\bold x에 관한 함수로 파라미터화 시키고 이 파라미터들을 직접 MLE를 통해 구하는 것이다.

이제부터는 입력벡터 x\bold x 대신 비선형 기저함수(basis function)들 ϕ(x)\phi(\bold x)를 사용할 것이다.

로지스틱 회귀 (Logistic regression)

클래스 C1C_1의 사후확률은 특성벡터 ϕ\phi의 선형함수가 logistic sigmoid를 통과하는 함수로 아래와 같이 표현된다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fd8961166-881c-41af-b969-73e1660dfcf4%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fd8961166-881c-41af-b969-73e1660dfcf4%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F56b0f895-a3c7-468c-b7cc-232bc90064f8%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F56b0f895-a3c7-468c-b7cc-232bc90064f8%2Fimage.png)

ϕ\phiMM 차원이라면 구해야 할 파라미터 (w\bold w)의 개수는 MM개이다.

생성모델에서는 M(M+5)/2+1M(M+5)/2 + 1개의 파라미터를 구해야 한다.

최대우도해

  • 데이터셋: {ϕn,tn},n=1,,N\{\phi_n, t_n\},n=1,\dots,N
  • tn{0,1}t_n\in\{0,1\}
  • t=(t1,,tN)T\bold t=(t_1,\dots,t_N)^T
  • ϕn=ϕ(xn)\phi_n=\phi(\bold x_n)
  • yn=p(C1ϕn)y_n=p(C_1|\phi_n)

우도함수는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fbf2e1a55-0ae7-48aa-91a6-4f83215ab8ca%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fbf2e1a55-0ae7-48aa-91a6-4f83215ab8ca%2Fimage.png)

음의 로그 우도 (the negative logarithm of the likelihood)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fad6caed6-953f-4ee0-b44d-cf0e81cb1405%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fad6caed6-953f-4ee0-b44d-cf0e81cb1405%2Fimage.png)

yn=σ(an),an=wTϕny_n=\sigma(a_n), a_n=\bold w^T\phi_n

이것을 크로스 엔트로피 에러함수(cross entropy error function)라고 부른다.

Cross entropy의 일반적인 정의

H(p,q)=Ep[lnq]H(p,q)=-\mathbb E_p[\ln q]

이산확률변수의 경우

H(p,q)=xp(x)lnq(x)H(p,q)=-\sum_xp(x)\ln q(x)

일반적으로 Cross entropy가 최소화될 때 두 확률분포의 차이가 최소화된다.

따라서 에러함수 E(w)E(\bold w)를 최소화시키는 것을

  • 우도를 최대화시키는 것
  • 모델의 예측값(의 분포)과 목표변수(의 분포)의 차이를 최소화시키는 것

두 가지의 관점에서 이해할 수 있다.

🔥

  • 분류문제에서는 크로스 엔트로피 에러함수를 사용
  • 회귀문제에서는 최소제곱법을 사용

하는 것이 문제에 맞는 방법을 사용하는 것!

profile
하나씩 정리하는 개발공부로그입니다.

0개의 댓글