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

소프트맥스 + 크로스 엔트로피 손실(주의: 수식 포함)
우리의 정의를 사용하여 위 섹션 말하자면 네트워크에서 출력된 확률을 나타내며 정규화되지 않은 로그 확률을 나타내며, 소프트맥스 출력, 즉 …을 나타내며 , 그런 다음 사용하여 크로스 엔트로피 손실 다음과 같이:
이제 모두 합쳐 봅시다
결론
이것으로 Softmax 활성화 함수에 대한 짧은 튜토리얼을 마치겠습니다. 궁금한 점이나 의견이 있으시면 아래에 자유롭게 남겨 주세요.
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