소프트맥스
Softmax가 어떻게 점수를 AI 분류 작업의 확률로 변환하여 이미지 인식과 NLP의 성공을 지원하는지 알아보세요.
소프트맥스는 흔히 로그라고 하는 원시 실수값 점수 벡터를 확률 벡터로 변환하는 수학적 함수입니다. 머신 러닝(ML)의 맥락에서 Softmax는 주로 신경망의 출력 계층에서 활성화 함수로 사용됩니다. 이 함수의 핵심 역할은 네트워크의 최종 점수를 상호 배타적인 여러 클래스에 걸쳐 의미 있는 확률 분포로 변환하는 것입니다. 결과 확률은 1로 합산되므로 가능한 각 결과에 대한 모델의 신뢰도로 쉽게 해석할 수 있습니다.
소프트맥스 작동 방식
이미지가 어떤 카테고리에 속하는지 결정하려는 신경망을 상상해 보세요. 네트워크의 최종 계층은 각 카테고리에 대한 원시 점수 집합을 생성합니다. 점수가 높을수록 모델이 해당 카테고리에 더 많이 기울어져 있음을 의미하지만, 이러한 점수는 표준화되어 있지 않아 직접 작업하기 어려울 수 있습니다.
Softmax 기능은 이러한 점수를 가지고 두 가지 주요 단계를 수행합니다:
- 각 점수에 지수 함수를 적용합니다. 이렇게 하면 모든 값이 양수가 되고 점수 간의 차이가 과장되어 점수가 클수록 비례적으로 훨씬 커집니다.
- 지수화된 점수를 각각 합으로 나누어 정규화합니다. 이 단계에서는 값이 총합이 1.0이 되도록 값을 축소하여 효과적으로 확률 분포를 생성합니다.
최종 출력은 확률 목록으로, 각 값은 입력이 특정 클래스에 속할 것으로 예측되는 모델의 가능성을 나타냅니다. 그런 다음 가장 높은 확률을 가진 클래스가 최종 예측으로 선택됩니다.
AI 및 머신 러닝 분야의 애플리케이션
소프트맥스는 다중 클래스 분류를 수행하는 모든 딥러닝 모델의 기본입니다. 명확하고 확률적인 결과를 제공하는 기능 덕분에 다양한 영역에서 매우 유용합니다.
- Image Classification: This is the most common use case. A Convolutional Neural Network (CNN) trained on a dataset like ImageNet will use Softmax in its final layer. For an image of a pet, the model might output probabilities like {Dog: 0.9, Cat: 0.08, Rabbit: 0.02}, clearly indicating its prediction. Models like Ultralytics YOLO use this for classification tasks.
- 자연어 처리(NLP): 언어 모델링에서 Softmax는 시퀀스의 다음 단어를 예측하는 데 사용됩니다. 트랜스포머와 같은 모델은 어휘의 모든 단어에 대한 점수를 계산하고 Softmax를 사용하여 이 점수를 확률로 변환합니다. 이는 대규모 언어 모델(LLM) 의 핵심 구성 요소이며 기계 번역에서 텍스트 생성에 이르는 애플리케이션을 구동합니다.
- 의료 이미지 분석: 의료 스캔을 분석하여 다양한 유형의 조직을 분류하거나 병리(예: 양성, 악성 또는 건강)를 식별할 때 모델은 Softmax를 사용하여 각 진단에 확률을 할당하여 임상의가 보다 정보에 입각한 결정을 내릴 수 있도록 도와줍니다.
- 강화 학습: 정책 기반 강화 학습에서 소프트맥스는 다양한 행동의 학습된 값을 에이전트가 취할 수 있는 가능한 행동에 대한 확률 분포인 정책으로 변환하는 데 사용할 수 있습니다.
소프트맥스와 다른 활성화 기능 비교
소프트맥스는 다른 용도로 사용되므로 다른 일반적인 활성화 기능과 구별하는 것이 중요합니다.
- 시그모이드: 시그모이드 함수 역시 0과 1 사이의 값을 출력하지만 이진 분류(한 클래스 대 다른 클래스) 또는 다중 레이블 분류(입력이 한 번에 여러 클래스에 속할 수 있는 경우)에 사용됩니다. 예를 들어, 한 영화가 "코미디"와 "액션"으로 분류될 수 있습니다. 이와는 대조적으로, 소프트맥스는 다중 클래스 분류를 위한 것으로, 클래스가 상호 배타적이어서 입력된 숫자는 7 또는 8이어야 하지만 둘 다는 안 됩니다.
- ReLU(정류 선형 단위): 신경망의 숨겨진 레이어에 사용되는 ReLU와 그 변형인 Leaky ReLU, SiLU 등이 있습니다. 이들의 주요 역할은 비선형성을 도입하여 모델이 데이터의 복잡한 패턴을 학습할 수 있도록 하는 것입니다. 이들은 확률을 생성하지 않으며 분류를 위한 출력 함수로 사용되지 않습니다.
- 탄(쌍곡탄젠트): Tanh는 값을 -1에서 1 사이의 범위로 쪼갭니다. ReLU와 마찬가지로, 특히 구형 순환 신경망(RNN) 아키텍처에서 숨겨진 계층에 사용됩니다. 분류 작업을 위한 확률 출력을 생성하는 데는 적합하지 않습니다.
실용적인 고려 사항
강력하긴 하지만 Softmax는 매우 큰 입력 점수에 민감할 수 있으며, 이로 인해 수치 불안정성(오버플로 또는 언더플로)이 발생할 수 있습니다. 이 문제를 해결하기 위해 PyTorch 및 TensorFlow와 같은 최신 딥 러닝 프레임워크는 수치적으로 안정적인 버전의 Softmax를 백그라운드에서 구현합니다.
소프트맥스는 모델 훈련 중에 거의 항상 교차 엔트로피 손실(또는 로그 손실)이라는 특정 손실 함수와 짝을 이룹니다. 이 조합은 다중 클래스 분류기 훈련에 매우 효과적입니다. 효과적인 모델 훈련과 해석을 위해서는 Softmax의 동작을 이해하는 것이 중요하며, 이는 실험과 배포를 간소화하기 위해 Ultralytics HUB와 같은 플랫폼을 사용하여 관리 및 추적할 수 있습니다.