Table of Contents
Classification에서 Loss Function(손실 함수)은 모델이 예측한 값과 실제 값 사이의 차이를 측정하는 함수로, 모델을 학습시키는 데 중요한 역할을 합니다. 손실 함수는 모델의 예측 성능을 평가하고, 최적화 과정에서 이를 최소화함으로써 모델의 성능을 향상시킵니다. 다양한 분류 문제에 맞춰 여러 종류의 손실 함수가 사용되며, 대표적인 예로는 다음과 같습니다.
1. 크로스 엔트로피 손실 (Cross-Entropy Loss)
크로스 엔트로피 손실 함수는 분류 문제에서 가장 많이 사용되는 손실 함수 중 하나입니다. 특히, 다중 클래스 분류 문제에서 소프트맥스 활성화 함수와 함께 사용됩니다. 크로스 엔트로피 손실 함수는 주로 로지스틱 회귀(logistic regression)나 신경망(neural networks)과 같은 확률 기반 분류 모델에서 사용됩니다. 크로스 엔트로피 손실은 모델의 예측 확률 분포와 실제 레이블의 분포 간의 차이를 측정합니다.
수식
- 이진 크로스 엔트로피:
[
L = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)]
]
여기서 ( y_i )는 실제 클래스 레이블(0 또는 1), ( p_i )는 예측 확률입니다. - 다중 클래스 크로스 엔트로피:
[
L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(p_{i,c})
]
여기서 ( C )는 클래스의 수, ( y_{i,c} )는 클래스 ( c )에 대한 실제 레이블, ( p_{i,c} )는 클래스 ( c )에 대한 예측 확률입니다.
2. 헝잉 로스 (Hinge Loss)
헝잉 로스는 주로 서포트 벡터 머신(SVM)에서 사용되는 손실 함수로, 이진 분류 문제에 적합합니다. 실제 클래스와 예측 클래스 간의 마진을 최대화하는 것이 목표입니다.
수식
- 헝잉 로스:
[
L = \frac{1}{N} \sum_{i=1}^{N} \max(0, 1 - y_i \cdot f(x_i))
]
여기서 ( y_i )는 실제 클래스 레이블(+1 또는 -1), ( f(x_i) )는 예측 값입니다.
3. 카테고리컬 헝잉 로스 (Categorical Hinge Loss)
카테고리컬 헝잉 로스는 다중 클래스 분류 문제에서 사용되는 헝잉 로스의 확장입니다.
수식
- 카테고리컬 헝잉 로스:
[
L = \frac{1}{N} \sum_{i=1}^{N} \max(0, 1 - y_i \cdot (p_i - p_{\text{next best}}))
]
여기서 ( y_i )는 실제 클래스 레이블, ( p_i )는 예측 확률, ( p_{\text{next best}} )는 두 번째로 높은 예측 확률입니다.
4. 포컬 로스 (Focal Loss)
포컬 로스는 클래스 불균형 문제를 해결하기 위해 설계된 손실 함수입니다. 쉽게 예측할 수 있는 예제에 대한 가중치를 낮추고, 어려운 예제에 대한 가중치를 높입니다.
수식
- 포컬 로스:
[
L = -\frac{1}{N} \sum_{i=1}^{N} (1 - p_i)^\gamma \log(p_i)
]
여기서 ( \gamma )는 포컬 파라미터로, 일반적으로 2로 설정됩니다.
5. 제곱 손실 (Squared Loss)
제곱 손실은 주로 회귀 문제에서 사용되지만, 이진 분류 문제에서도 사용할 수 있습니다. 예측 값과 실제 값의 차이를 제곱하여 손실을 계산합니다.
수식
- 제곱 손실:
[
L = \frac{1}{N} \sum_{i=1}^{N} (y_i - p_i)^2
]
여기서 ( y_i )는 실제 클래스 레이블, ( p_i )는 예측 확률입니다.
손실 함수의 선택
적절한 손실 함수를 선택하는 것은 분류 문제의 성격과 데이터의 특성에 따라 다릅니다. 예를 들어, 다중 클래스 분류 문제에서는 크로스 엔트로피 손실이 자주 사용되며, 클래스 불균형이 있는 경우 포컬 로스를 고려할 수 있습니다. 서포트 벡터 머신을 사용할 때는 헝잉 로스가 적합합니다.
손실 함수를 올바르게 선택하고 최적화 과정을 통해 최소화하면 분류 모델의 성능을 향상시킬 수 있습니다.
'ML' 카테고리의 다른 글
Classification의 종류: 이진Binary분류, 다중클래스Multiclass분류 (0) | 2024.05.29 |
---|---|
Classification -> Descision tree -> Measuring Impurity for Split, Gini Index (0) | 2024.05.29 |
회귀(Regression)와 분류(Classification) (0) | 2024.05.28 |
스케일링 (Scaling) (0) | 2024.05.28 |
최적화 알고리즘(Optimization Algorithms) (0) | 2024.05.28 |
- Total
- Today
- Yesterday
- 파이썬
- recursion #재귀 #자료구조 # 알고리즘
- Github
- Transformer
- Array
- git
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- Lora
- speaking
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- LLM
- clustering
- cnn
- Hugging Face
- nlp
- RAG
- English
- LIST
- 오블완
- 손실함수
- Numpy
- 해시
- t5
- 티스토리챌린지
- 리스트
- 코딩테스트
- Python
- PEFT
- classification
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |