Binary Classification
각각의 데이터 샘플을 0 혹은 1로 분류하면 되는 문제
Multi-Class Classification
- 하나의 출력에서 0 또는 1로 분류하던 이진 분류 문제와 달리 함수의 출력이 N개 이상이어야 한다.
- class 개수 만큼의 출력층 노드를 설정해야 한다.
- 각 출력층 노드들의 출력값 합이 1이 되도록 변환한다.
- Softmax 함수를 사용해서 각 값을 확률로 생각한다.
yk=∑exp(ai)exp(ak)이므로 ⎣⎢⎡210⎦⎥⎤→⎣⎢⎡0.70.20.1⎦⎥⎤
- Output 벡터가 y^=⎣⎢⎡0.70.20.1⎦⎥⎤라면 0번 class일 확률이 0.7이다.
- 확률이 제일 높은 class를 해당 데이터에 대한 모델의 예측 결과로 취급한다.
- 위의 예시에서는 class 0일 확률이 가장 높으므로 모델의 출력은 class 0이다.
손실함수
- 오차제곱합(Sum of Squared Error)
E=21∑(yk−tk)2
- 교차 엔트로피(Cross Entropy)
E=−∑tklogyk
- 두 확률분포 tk와 yk 사이의 무질서도
- Label t=1인 경우에만 손실을 계산하므로 E=−logyc,(tc=1)와 같다.
활성화 함수
- Sigmoid
σ(x)=1+e−x1
- σ′(x)=σ(x)(1−σ(x))이므로 미분 과정 없이 σ 그대로 사용 가능하다.
- σ′의 최댓값은 0.25로, 값 대부분은 0에 가깝고 입력층으로 갈수록 값이 미세해진다.
- ReLU
f(x)=x+=max(0,x)={0,x,if x<0if x≥0
- f′(x)={0,1,if x<0if x≥0
- Gradient 값이 1로, 0으로 수렴하지 않고 살아있다.
- 출력층에서는 확률 벡터로 만들기 위해 Softmax 함수를 사용하고 은닉층에서는 다음 층으로 전달하기 위해 Sigmoid 또는 ReLU 함수를 사용한다.