2025 학부 인턴/CV

손실 함수 : Loss Function

dbwls-log 2025. 12. 14. 23:15

평균 제곱 오차 : MSE (Mean Squared Error) 

평균 제곱 오차는 숫자를 직접 예측하는 회귀 문제에 적합한 회귀용 손실함수이다. 

모델이 타깃의 평균을 예측하기도 한다. 

출력 형태는 연속적인 실수값이며 오차의 크기를 평가한다. 

MSE는 큰 오차에 대해 더 큰 패널티를 부여하여 모델이 큰 오차를 최소화하는 방향으로 학습하도록 한다. 

작은 오차에서는 변화가 작아 학습이 느려질 수 있다는 문제가 있다. 

 

 

교차 엔트로피 : CE(Cross Entropy)

교차 엔트로피는 모델의 예측이 실제 정답과 얼마나 가까운지를 평가하는 지표로 분류 문제에 적합하다. 

타깃의 확률 분포와 모델의 예측 확률 분포의 차이를 나타낸다. 

출력형태는 확률 분포처럼 0~1 사이의 값으로 나타내고, 로그 함수가 들어가있기 때문에 정확한 예측일수록 값이 작아지고, 틀린 예측을 할수록 급격히 증가한다. 

확률예측에서 미분값이 크고 학습속도가 빠르며, 확률이 0이나 1에 가까울때도 경사가 유지되므로 기울기 소실 문제가 적다. 

 

 

클래스가 3개인 분류 문제 사례 

1. 예측이 정답을 잘 맞춘 경우 

정답 레이블 : 클래스 2가 정답인 것을 원핫 인코딩으로 나타내면 [0,1,0]이 된다. 

모델의 예측 확률값 즉, softmax를 통과한 값이 [0.2, 0.7 , 0.1] 라고 하면 손실값을 계산하는 식은 아래와 같다. 

예측이 정답을 꽤 잘 맞추었기 때문에 손실값이 낮다. 

 

 

2. 예측이 엉망인 경우 

정답 레이블 : 클래스 2가 정답인 것을 원핫 인코딩으로 나타내면 [0,1,0]이 된다.

모델의 예측 확률값 즉, softmax를 통과한 값이 [0.8, 0.1 , 0.1] 라고 하면 손실값을 계산하는 식은 아래와 같다. 

정답 클래스에 대해 예측 확률이 낮으면 손실이 커지는 것을 확인할 수 있다. 

 

 

2진 분류의 사례 

예제 1 : 정답이 1인 경우 

정답 y = 1 

모델 예측 : 0.9 

 

예제 2 : 정답이 1인데, 모델이 잘못 예측한 경우 

정답 y = 1 

모델 예측 : 0.1 

 

 

MSE + Sigmoid 

Sigmoid를 포함한 전체 미분을 하면 아래와 같다. 

 

MSE는 작아진 시그모이드 기울기에 오차도 곱하기 때문에 매우 작은 기울기를 만들어내기 때문에 MSE와 Sigmoid를 함께 사용하면 학습이 매우 느려진다. 

 

 

CE + Sigmoid / CE + Softmax 

CE + Sigmoid 미분은 CE + Softmax의 미분과 동일하다. 

시그모이드의 미분항이 수학적으로 상쇄되어버리기 때문에 기울기가 작아지지 않고, 학습이 빠르다.  

 

CE + Sigmoid의 미분 결과와 CE + Softmax의 미분 결과는 동일하지만 Sigmoid와의 조합은 확률의 총합이 1이 아니므로 클래스 간 상관관계가 없는 문제 즉, 다중 레이블 분류에서 사용된다. 

Softmax와의 조합은 클래스 간 경쟁을 유도하여 클래스 간 확률분포를 고려하는 문제인 다중 클래스 분류 문제에서 사용된다. 

 

 

※ 다중 클래스 분류 vs 다중 레이블 분류 

다중 클래스 분류 

다중 클래스 분류란 하나의 입력 샘플이 여러 개의 클래스 중 단 하나의 클래스에 속하는 문제를 의미한다. 

클래스들이 서로 배타적이므로, 하나의 샘플은 오직 하나의 클래스에만 할당되고, 정답은 단일 클래스로 출력된다. 

 

출력값은 일반적으로 확률 벡터인 Softmax 값으로 나타내며, 가장 높은 확률을 가진 클래스로 예측한다. 

출력 형태는 보통 원-핫 인코딩 또는 정수 인덱스로 표현되며 Categorical CE + Softmax 조합으로 많이 사용한다. 

 

 

다중 레이블 분류 

다중 레이블 분류는 클래스들이 서로 독립적이므로, 하나의 샘플이 여러 개의 클래스를 가질 수 있다. 

 

정답은 다중 클래스 형태를 가질 수 있으며, 클래스별 확률 벡터(sigmoid)로 나타내며 각 클래스에 대해 독립적으로 예측한다. 

출력 형태는 각 클래스 별로 0 또는 1 즉, Binary 인코딩을 활용한다. 

 

Binary CE + Sigmoid 조합으로 많이 사용된다. 

 

 

'2025 학부 인턴 > CV' 카테고리의 다른 글

CNN의 구조  (0) 2025.12.15
CNN 등장 배경  (0) 2025.12.15
옵티마이저 : Optimizer  (0) 2025.12.15
활성화 함수 : Activation Function  (0) 2025.12.14
딥러닝 기초 with 파이토치  (0) 2025.11.21