출력함수와 그 구현
기계학습은 크게 분류(classification)와 회귀(regression)로 나뉘어진다.
그리고 각각의 경우 보통 출력함수(출력에 사용되는 함수)는 항등함수와 softmax함수이다.
항등함수는 입력값을 그대로 출력하는 함수를 의미한다.
softmax함수는 말 그대로 부드러운 함수인데 기본적인 식은 다음과 같다.
어려워보이지만 생각보다 간단하다. 가장 먼저 n은 출력 층 뉴런의 수이고 y가 출력을 a가 입력 신호를 표현한다. 즉 해석하자면 전체의 입력 신호의 e승의 합분의 우리가 구하고자 하는 k번째의 입력 신호를 분자로 한다는 것이다. 이는 항등함수와는 다르게 입력값의 전체에 영향을 받는다고 할 수 있다.
소프드맥스 함수의 특징중 한가지는 출력값들의 합이 '1'이라는 것이다. 따라서 우리는 이것을 확률로 해석 할 수 있고 이런 특징 때문에 회귀에 사용되는 것이다.
소프트맥스 함수를 구현하면 다음과 같다.
import numpy as np
def softmax(x):
expo = np.exp(x)
down = np.sum(expo)
return expo / down
t = np.array([0.123, 1.2, 0.1])
y = softmax(t)
print(y)
댓글
댓글 쓰기