1. 모델 출력의 범위와 활성화 함수
- 출력 범위의 문제: 모델의 출력 값은 일반적으로 특정 범위에 있어야 한다. 예를 들어, 분류 문제에서는 확률 값이 필요하므로 출력 범위가 [0, 1]이어야 한다. 그러나, 모델의 마지막 층(예: 최종 컨볼루션 층)의 출력은 종종 제한되지 않은 값(예: -∞에서 ∞ 사이의 값)을 가질 수 있다.
- 출력 값을 [0, 1] 범위로 제한하는 이유: 확률로 계산하는 손실 함수(예: 크로스 엔트로피 손실 함수, Dice Similarity Coefficient(DSC))를 사용하려면, 출력 값이 [0, 1] 범위 내에 있어야 한다. 이를 위해, 모델의 출력에 시그모이드(Sigmoid) 또는 소프트맥스(Softmax) 함수를 적용한다.
- 시그모이드: 이 함수는 독립적으로 각 출력 값을 [0, 1] 사이로 변환한다. 이진 분류(binary classification) 문제에 적합하다.
- 소프트맥스: 이 함수는 다중 클래스 분류(multi-class classification) 문제에 적합하며, 모든 출력 값의 합이 1이 되도록 변환한다. 이를 통해 각 클래스에 속할 확률을 표현한다.
2. 시그모이드와 소프트맥스의 차이
- 시그모이드 함수: 각 출력 채널에 독립적으로 적용되어 각 출력 값을 [0, 1] 범위로 제한한다. 이 함수는 클래스 간의 관계를 고려하지 않으므로, 클래스가 여러 개일 경우에도 개별 클래스의 확률만을 계산할 때 사용된다. 예를 들어, 멀티라벨 분류(multi-label classification)에서 사용할 수 있다.
- 소프트맥스 함수: 여러 출력 값의 합이 1이 되도록 조정한다. 이 함수는 출력 값들이 상호 의존적일 때, 즉 다중 클래스 분류(multi-class classification)에서 사용된다. 예를 들어, 이미지 내에서 한 위치에 대해 하나의 클래스만 선택될 때 소프트맥스를 사용한다.
3. 어떤 활성화 함수를 선택할지 결정하는 방법
- 바이너리 클래스와 멀티 클래스 분류:
- 바이너리 분류: 두 개의 클래스를 구분하는 문제로, 시그모이드 함수를 사용하여 각 클래스의 확률을 [0, 1] 범위로 변환한다.
- 멀티 클래스 분류: 여러 개의 클래스 중 하나를 선택하는 문제로, 소프트맥스 함수를 사용하여 각 클래스에 속할 확률의 합이 1이 되도록 조정한다.
- 원핫(One-hot) 인코딩과 멀티핫(Multi-hot) 인코딩:
- 원핫 인코딩: 한 번에 하나의 클래스만이 참(1)으로 표현되는 경우로, 소프트맥스를 사용하여 확률을 계산한다.
- 멀티핫 인코딩: 여러 클래스가 동시에 참(1)일 수 있는 경우로, 시그모이드를 사용한다.
4. 손실 함수와 출력 값의 관계
- 손실 함수의 사용 조건:
- Dice Similarity Coefficient(DSC)나 크로스 엔트로피 손실 함수는 확률을 기반으로 계산되므로, 출력 값이 [0, 1] 범위에 있어야만 의미 있는 값을 가진다.
- 출력 값이 제한되지 않은 경우, 예를 들어 -∞에서 ∞ 사이의 값이라면, 이러한 손실 함수들은 사용할 수 없다. 이 경우, 다른 유형의 손실 함수(예: 평균 제곱 오차(MSE))를 사용해야 한다.
5. 모델 출력의 스케일링
- 출력 값을 스케일링해야 하는 이유:
- 모델 출력 값이 제한되지 않은 범위일 경우, 이를 확률로 해석할 수 있도록 스케일링이 필요하다. 따라서, 소프트맥스나 시그모이드를 출력에 적용하여 [0, 1] 범위로 변환한다.
- 원핫(One-hot) vs 멀티핫(Multi-hot):
- 원핫: 한 위치에서 하나의 클래스만 선택될 때, 소프트맥스를 사용하여 여러 클래스 중 하나를 선택한다.
- 멀티핫: 여러 개의 클래스가 동시에 선택될 수 있을 때, 시그모이드를 사용하여 각 클래스의 확률을 독립적으로 계산한다.
728x90
반응형
'딥러닝' 카테고리의 다른 글
최적화 용어 정리 (0) | 2024.08.25 |
---|---|
Neural Network & MLP 개념 정리 (0) | 2024.08.22 |
U-Net과 Transformer 비교 + 관련 개념 정리 (0) | 2024.07.30 |
Neural Networks - MLP (0) | 2024.07.28 |
딥러닝 Historical Review - 고려대학교 최성준 교수님 (0) | 2024.04.11 |