소프트맥스 함수

(소프트맥스에서 넘어옴)

1 개요[ | ]

softmax function, normalized exponential function, full softmax
소프트맥스, 소프트맥스 함수, 전체 소프트맥스
  • 시그모이드 함수의 일반화된 형태
  • 다중 클래스 분류 모델에서 가능한 각 클래스의 확률을 구하는 함수
  • 각 클래스에 대한 확률을 얻을 수 있다.
  • 확률의 합은 정확히 1.0이다.
[math]\displaystyle{ \sigma (\mathbf {z} )_{j}={\dfrac {e^{z_{j}}}{\sum\limits _{k=1}^{K}e^{z_{k}}}} }[/math] for j = 1, …, K
  • 예를 들어 소프트맥스는 특정 이미지가 강아지일 확률을 0.9로, 고양이일 확률을 0.08로, 말일 확률을 0.02로 판단할 수 있다.
  • 후보 샘플링과 대비되는 개념이다.

2 계산 예시[ | ]

import math
z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
z_exp = [math.exp(i) for i in z]
print( z_exp ) # [2.718281828459045, 7.38905609893065, 20.085536923187668, 54.598150033144236, 2.718281828459045, 7.38905609893065, 20.085536923187668]
print( [round(i, 2) for i in z_exp] ) # [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]
sum_z_exp = sum(z_exp)
print( sum_z_exp ) # 114.98389973429897

softmax = [round(i / sum_z_exp, 3) for i in z_exp]
print(softmax) # [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}