소프트맥스 활성화 함수 이해하기
이 짧은 튜토리얼에서는 분류 작업에서의 활용과 교차 엔트로피 손실과의 관계를 포함해 Softmax 활성화 함수를 살펴보겠습니다. 이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment
다음 내용을 다룹니다:
목차
Softmax 함수는 어디에 사용되나요?왜 Softmax를 Max나 Argmax 활성화 함수 대신 사용할까?소프트맥스 활성화 함수 이해하기소프트맥스 + 크로스 엔트로피 손실(주의: 수학 포함)결론
Softmax 함수는 어디에 사용되나요?
ML에서 가장 흔한 작업 중 하나는 분류즉, 입력(이미지, 비디오, 텍스트, 오디오)을 주었을 때 모델이 그것이 어떤 클래스에 속하는지 반환할 수 있느냐는 뜻입니다. 가장 단순한 형태의 신경망, 예를 들어 다층 퍼셉트론(MLP)을 사용할 때, 그 출력값을 어떻게 클래스로 변환할 수 있을까요?
참고: MLP는 결국 입력의 가중합에 불과하다는 점을 기억하세요, 즉 다음과 같습니다. , a 스칼라 값.
💡
요컨대, 우리는 필요합니다 몇몇 이 숫자를 입력이 어느 클래스에 속하는지 가늠할 수 있게 변환하는 방법 에 속하는지입니다. 여기에서 활성화 함수가 필요합니다(가장 널리 쓰이는 활성화 함수 중 하나가 Softmax입니다).
예를 들어, 가장 일반적이면서도 가장 중요한 이미지 분류 문제를 생각해 봅시다. 핫도그인지 아닌지 🌭. 음식 이미지를 입력으로 받아 이를 “Hot Dog” 또는 “Not Hot Dog”으로 분류하는 것이 우리의 과제입니다. 요컨대, 이 문제는 이진 분류입니다. “Hot Dog”에 1, “Not Hot Dog”에 0을 할당한다고 하면, 모델의 출력은 0과 1 사이의 값이어야 하며, 특정 임곗값을 기준으로 적절한 클래스를 부여할 수 있습니다.
하지만 다중 클래스 분류 문제라면 어떻게 될까요? 0과 1만으로는 충분하지 않습니다.
소프트맥스의 출현
왜 Softmax를 Max나 Argmax 활성화 함수 대신 사용할까?
왜 단순히 최대값이나 argmax 함수 대신 Softmax를 사용해야 하는지 궁금하실 수 있습니다. 함께 자세히 살펴보겠습니다.
먼저, 사용을 고려해 보세요 max 함수, 즉 주어진 입력 시퀀스에서 가장 큰 값을 반환하는 함수입니다. 따라서 다음과 같은 입력이 있다면 그렇다면 출력은 다음과 같이 보일 것입니다 다른 모든 값은 0으로만 반환됩니다. The argmax 는 이와 약간 다른 변형으로, 전체 목록을 반환하는 대신 가장 큰 값의 인덱스를 반환하는 함수입니다.
Softmax는 보다 완만한 형태의 max 함수입니다(누가 예상했겠습니까!). 최대값에는 1, 그 외에는 0으로 이루어진 이진 시퀀스를 반환하는 대신, 우리가 원하는 것이 만약 다음과 같다면 어떨까요? 확률 최댓값이 아닌 입력에 대해서도 0만이 아니라 값들을 반환합니다. 다중 분류에서는 0과 1만으로는 큰 도움이 되지 않는다는 것을 쉽게 짐작할 수 있습니다. 우리가 원하는 것은 값들의 분포입니다. 여기에서 Softmax가 등장합니다.
소프트맥스 활성화 함수 이해하기
소프트맥스 활성화 함수는 수학적으로 다음과 같이 표현할 수 있습니다:
이 함수는 확률 값들의 시퀀스를 출력하므로 다중 분류 문제에 유용합니다. 예를 들어, 5개 클래스 분류 문제에서 Softmax 함수의 출력은 다음과 비슷한 형태가 될 수 있습니다:
보시다시피 합은 그리고 그 해석은, 클래스가 원‑핫 인코딩되어 있다고 가정하면 4번째 클래스(또는 인덱스 3)가 가장 확률이 높고, 그다음으로 5번째와 3번째가 근소한 차이로 뒤따른다는 것입니다.

소프트맥스 + 크로스 엔트로피 손실(주의: 수학 포함)
우리의 정의를 사용하여 위 섹션 말하자면 네트워크에서 출력된 확률을 나타내며 정규화되지 않은 로그 확률을 나타냅니다. 소프트맥스 출력, 즉 …을 나타내며 , 그런 다음 …을 사용하여 크로스 엔트로피 손실 다음과 같이:
이제 모든 내용을 한데 모아 봅시다
결론
이것으로 소프트맥스 활성화 함수에 대한 간단한 튜토리얼을 마치겠습니다. 질문이나 의견이 있으시면 아래에 자유롭게 남겨 주세요.
Weights & Biases의 모든 기능을 확인하려면, 이 짧은 내용을 살펴보세요. 5분 가이드수학적 내용과 “처음부터 구현” 코드까지 다루는 더 많은 리포트를 원하신다면, 아래 댓글이나 저희의 댓글란에서 알려 주세요. 포럼 ✨!
An Introduction to Linear Regression For Machine Learning (With Examples)
In this article, we provide an overview of, and a tutorial on, linear regression using scikit-learn, with code and interactive visualizations so you can follow.
Decision Trees: A Guide with Examples
A tutorial covering Decision Trees, complete with code and interactive visualizations
What Is Cross Entropy Loss? A Tutorial With Code
A tutorial covering Cross Entropy Loss, with code samples to implement the cross entropy loss function in PyTorch and Tensorflow with interactive visualizations.
Introduction to Cross Validation Techniques
A tutorial covering Cross Validation techniques, complete with code and interactive visualizations.
Introduction to K-Means Clustering (With Examples)
A tutorial covering K-Means Clustering, complete with code and interactive visualizations.
A Gentle Introduction To Weight Initialization for Neural Networks
An explainer and comprehensive overview of various strategies for neural network weight initialization
Add a comment
Softmax is a softer version of the max function.
Damn, I didn't see that coming.
Reply