아래 내용은 인프런 [처음하는 딥러닝과 파이토치(Pytorch) 부트캠프] 강의를 듣고 공부한 내용입니다.
Classification (분류)
분류 문제는 출력 결과가 다르므로, 분류 타입에 따라 다른 activation function을 사용하는 것이 일반적임
예측 문제 | Regression (숫자 예측, 예 : 키) |
Binary Classification (이진 분류) |
Multi-Class(Multi-Label) Classification (다중 분류) |
Final Action | None | Sigmoid | Softmax (또는 Log-Softmax) |
Loss Function | MSE Loss | BCE Loss | Cross Entropy Loss (또는Negative Log Likelihood Loss) |
Softmax
softmax 함수는 분류될 클래스가 k개일 때, k 차원의 vector를 입력받아서, 각 클래스에 속할 확률을 추정함.
- 자연로그의 밑인 상수 e에 대한 지수함수를 사용하면, 지수함수는 증가함수(단조 증가, 계속 증가)이므로 작은 값의 차이도 확실히 구별될 수 있도록 커짐. (작은 값은 더 작아지고, 큰 값은 더 커지는 특성이 있음)
- 또한 자연로그의 미분은 자연로그 그대로이므로, 미분 계산에 용이함.
이미지를 필기체로 썼을 때, 각각의 이미지를 딥러닝에 넣어서 진짜 이 숫자가 뭔 거 같은지 출력값을 받아내려면 그 분류하고자 하는 클래스의 개수만큼 출력이 된다.
- softmax 함수의 각 출력은 확률값으로 0 ~ 1사이의 값이며, 각 확률값의 총합은 항상 1이다.
iris(붓꽃) 데이터셋으로 붓꽃 품종을 ['setosa', 'versicolor', 'virginica'] 중에 하나로 예측한다고 한다면, 클래스는 3개가 되고, softmax를 통과하면, [0.5, 0.4, 0.1]과 같이 각 클래스가 될 확률을 리턴해줌.
-> setosa일 확률 0.5, versicolor일 확률 0.4, virginica일 확률 0.1 => setosa로 예측
만약, 총 클래스의 수가 3개라고 한다면 k =3, 즉 3차원 벡터로 z = [z1 z2 z3]의 입력을 받게 되고,
'Deep Learning & AI > DNN' 카테고리의 다른 글
Adam Optimizer (0) | 2024.02.02 |
---|---|
DNN Pytorch 실습 (당뇨병 환자 데이터셋, fashion mnist 데이터셋) (2) | 2023.12.29 |
Neural Network and Backpropagation (0) | 2023.12.29 |