본 포스팅은 " https://vidyasheela.com/post/softmax-activation-function-in-neural-network-formula-included " 위 내용을 바탕으로 학습을 진행하였음
Activation function - Softmax function
소프트맥스 활성화 함수는 다차원에 대한 시그모이드 함수의 일반적인 형태로, 숫자 벡터를 확률 벡터로 변환해주는 활성화 함수
소프트맥스 함수(Softmax function)
- 소프트맥스(softmax) 함수는 3개 이상으로 분류하는 다중 클래스 분류에서 사용하는 활성화 함수
- 분류될 클래스가 n개일 때, n차원의 벡터를 입력받아 각 클래스에 속할 확률을 추정
정의(Definition)
위 정의를 더 깔끔하게 나타내면 아래와 같다.
지금부터 예를 통해서 소프트맥스 함수의 작동에 대해 알아보고자 한다.
어떠한 주어진 이미지가 고양이, 강아지, 호랑이 또는 아무것도 아닌 이미지를 뉴럴 네트워크를 통해 분류해야 한다고 가정하자.
이때 X는 특징 벡터(feature vector)이다.(X = [x1, x2, x3, x4])
* 특징 벡터: 각각의 데이터 샘플을 수치형 벡터로 표현한 것을 말하며 일반적으로는 데이터의 특징을 나타내는 값들로 구성된다.
일반적으로 소프트맥스 함수는 위 사진과 같이 뉴럴 네트워크에서 마지막 출력 계층에서 사용한다.
위와 같은 벡터가 있을 때,
m = L-1 계층의 총 노드 수
n = 출력 계층 L의 총 노드 수
이고,
m=3, n=4라 가정하자.
이때, 예제에서는 n이 4인 편향된 행렬이다.
먼저, 행렬 Z[L] 요소들 각각에 자연 상수(e)를 제곱해줘서 계산한다.
위 계산을 마치면 입력 X에 대해 각각의 클래스일 확률은 아래와 같이 구할 수 있다.
계산으로 구해진 확률 분포를 기반으로 신경망은 주어진 이미지가 고양이인지, 개인지, 호랑이인지, 아무것도 아닌지를 분류한다.
이 과정을 실제 숫자 데이터가 포함된 값을 기반으로 다시 보도록 하자.
행렬이 위와 같이 있을 때,
위와 같이 행렬 Z[L] 요소들 각각에 자연 상수(e)를 제곱해줘서 계산한다.
위와 같이 확률 분포가 계산되는데, 위 확률 분포 상 가장 확률이 높은 것은 'P(dog|X)=0.623'이므로, 해당 이미지는 개로 분류됨을 확인할 수 있다.
'AI & BigData' 카테고리의 다른 글
[후기] Dialogflow를 활용한 콘도 예약·신청 챗봇 구축 (0) | 2023.05.17 |
---|---|
[EDA] 탐색적 데이터 분석 (0) | 2023.05.13 |
[AI] Chat GPT(Chat Generative Pre-trained Transformer) (0) | 2023.05.09 |
[AI] RNN 알고리즘을 통해 코로나 19 확진자 수를 예측하는 인공지능 모델 (0) | 2023.05.09 |
[Data Analysis] 판다스 - 시리즈, 데이터프레임 (0) | 2023.05.03 |