일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Today
- Total
- activation function
- AdaGrad
- adaptive learning rate
- arithmetic reasoning
- Attention is all you need
- attention mechanism
- auto encoder
- Back Propagation Trough Time
- Backpropagation
- Bayes Theorem
- BCE
- Bert
- Bidirectional Encoder Representation from Transformer
- Binary classification
- BPTT
- Chain-of-Thought
- CNN
- commonsense reasoning
- Computer Vision
- Confusion Matrix
- convolutional neural network
- Cot
- cot reasoning
- counting
- Cross Entropy Loss
- deep learning
- degradation
- Dimension Reduction
- Few-shot
- fine-tuning
데이터 분석 일지
[Deep Learning] Classification 본문
1. Binary Classification
이진 분류로 Logistic Regression과 같이 입력에 대해서 출력을 1 또는 0으로 출력한다. Threshold를 기준으로 1과 0을 출력하는데, 이때 threshold는 보통 0.5이고 때에 따라 달라질 수 있다.
2. Tradeoff by Thresholding
상황에 따라서 threshold를 다르게 설정할 수 있다. 예를 들어 아래의 그림과 같이 True와 False를 나타내는 확률 밀도가 있을 때 이를 나누는 기점을 True 그래프와 False 그래프의 교점으로 설정할 수 있지만, 더 보수적으로 True나 False를 설정하기 위해서는 교점을 threshold로 설정하는 것이 아니라 다른 지점을 설정해야 한다. 보수적으로 true라고 판단하게 하려면 큰 threshold를 가져야 하고, 실제 정답이 true인 것을 놓치지 않기 위해서는 작은 threshold를 가져야 한다.
어떤 한 상황을 예로 들어본다면, 원자력 발전소의 누출 감지 프로그램이라면 누출이 될 확률이 적은 상황에서도 확률이 있다면 이를 누출된 것으로 출력해도 된다.
3. Precision and Recall
이진 분류를 수행했을 때 아래의 표와 같이 나타낼 수 있다.
위의 표를 통하여 Accuracy와 Precision과 Recall을 알 수 있는데 각각 아래의 수식을 의미한다.
$$Accuracy = \frac{TP + TN}{TP +FP + FN + TN}$$
$$Precision = \frac{TP}{TP +FP}$$
$$Recall = \frac{TP}{TP + FN}$$
Accuracy는 전체 데이터 수(= N) 중에 정답이 맞은 개수를 의미한다. Precision은 Positive(Negative)라고 예측한 것들 중에 실제 Positive (Negative)의 비율을 의미한다. Recall은 실제 Positive(Negative) 중에 Positive(Negative)로 예측하여 정답이 맞은 비율을 의미한다. Precision과 Recall을 헷갈릴 수 있는데, Recall은 회수율을 의미하므로 실제 값 중 맞은 것(회수한 것)을 의미하는 것이라고 쉽게 생각할 수 있다.
4. AUROC(Area Under the Receiver Operating Characteristic curve)
AUROC는 이진 분류 모델의 성능을 평가하는 지표 중 하나이다. ROC 곡선은 모델의 민감도와 1에서 특이도를 나타내는 그래프이다. ROC 곡선은 다양한 임계값에서 모델의 성능을 시각화하는데 사용된다. 그리고 AUROC는 Area Under ROC로 ROC 곡선 아래의 면적을 나타낸다. ROC 곡선 그래프의 범위가 x축이 0에서 1, y축이 0에서 1로 AUROC의 값은 0에서 1까지 범위에 있다. 성능이 높을수록 AUROC는 1에 가까워지며 무작위로 분류하는 경우에는 0.5가 된다. AUROC의 장점은 클래스 간의 불균형이나 데이터 분포의 변화에 상대적으로 불변한다는 점이다. 이는 AUROC가 임계값에 민감하지 않기 때문이다. 아래의 그림과 같이 AUROC를 나타낼 수 있다.
위의 그림에서 TPR과 FPR은 각각 True Positive Rate와 False Positive Rate를 나타낸다.
5. Softmax
Softmax는 주로 다중 클래스 분류 문제에서 사용하는 활성화 함수이다. 입력 벡터를 이산 확률 분포 형태로 바꿔주게 되고, 확률 분포이므로 각 클래스 별 확률 값들의 합은 1이된다. 함수의 수식은 아래와 같다.
$$softmax_i(x) = \frac{e^{x_i}}{ \sum_{j=i}^n e^{x_j}}$$ $$where $$ $$x \in \mathbb{R}^n$$ $$softmax(x) = \begin{bmatrix}softmax_1(x); & \ldots & softmax_n(x)\end{bmatrix}$$
위 수식에서 x는 각 클래스에 대한 원시 점수 또는 로짓 벡터를 의미한다. Softmax는 입력된 로짓을 각 클래스에 대한 확률로 변환한다. 주로 신경망의 출력 레이어에서 사용되고, Cross Entropy Loss Function과 함께 많이 쓰인다. 정해진 파라미터에 대하여 x를 입력으로 받았을 때 출력이 y일 확률과 출력 레이어에 softmax 함수를 사용한 결과와 같다는 것을 의미한다.
6. Cross Entropy Loss
Cross Entropy는 Binary Cross Entropy를 일반화한 것이다. Cross Entropy는 다음과 같이 정의할 수 있다.
위의 수식에서 y_i는 실제 클래스 i에서 속할 확률을 의미하는데, one-hot encoding된 경우에 해당 클래스에 대한 값은 1이고 나머지는 다 0을 이룬다. y_i_hat은 모델의 예측 확률을 나타낸다. one-hot encoding은 데이터가 속해있는 카테고리에만 값을 부여한다.
7. NLL Loss with Log-Softmax
Cross Entropy에서는 log 확률 값에 대해서 0 또는 1을 곱해주게 되었다. 따라서 Loss Function에서 log를 취해주는 것이 아니라 먼저 Softmax에 log를 취해줄 수 있다. 이를 Log-Softmax라고 한다. Log-Softmax의 수식은 아래와 같다.
$$log-softmax_i(x) = \log{\frac{e^{x_i}}{ \sum_{j=i}^n e^{x_j}}}$$
Log-Softmax는 Negative Log Likelihood Loss와 같이 많이 쓰게 되는데, 이 수식은 아래와 같다.
8. Confusion Matrix
Multi-class Classification에서는 Accuracy 하나로 모델의 자세한 성능을 알 수 없다. Accuracy는 보통 이진 분류된 값을 가지고 평가하기 때문이다. 만약 test-set의 class 분포가 불균등하다면 성능을 개선할 때 부족한 부분을 쉽게 파악할 수 없다. 이때 사용하는 모델 성능 평가 지표가 Confusion Matrix이다. Confusion Matrix는 각 어떤 class 사이의 추론 성능이 떨어지는지 쉽게 확인 및 대처가 가능하다.
9. Regression vs Binary Classification vs Multi-class Classification
세 모델의 차이점은 target과 loss function, 그리고 activation function으로 나눌 수 있다. 이는 각각 아래의 표와 같다.
'Lecture or Textbook Review > Deep Learning' 카테고리의 다른 글
[Deep Learning] Representation Learning (0) | 2024.02.22 |
---|---|
[Deep Learning] Regularization (0) | 2024.02.06 |
[Deep Learning] Overfitting (과적합) (0) | 2024.02.03 |
[Deep Learning] Hyper-Parameter & Optimizer (0) | 2024.02.02 |
[Deep Learning] SGD (Stochastic Gradient Descent) (0) | 2024.01.31 |