티스토리 뷰
MachineLearning
[MachineLearning] output layer function - identity function, softmax function
SweetDev 2021. 7. 9. 19:42"밑바닥부터 시작하는 딥러닝"을 읽고 작성한 게시글입니다.
머신러닝 문제는 크게 분류(classification)과 회귀(regression)으로 나눠진다.
출력층의 활성화 함수(output layer function)가
Regression에서는 항등함수를,
2클래스 Classification에서는 시그모이드 함수를,
다중 Classification에서는 소프트맥스 함수를 사용하는것이 일반적이다.
오늘은 그 중에서 다중 클래스 분류에 쓰이는 softmax function을 (주로) 다뤄보려고 한다.
1. Identity Function
말그대로 input과 output이 identical한 함수이다.
$ f(x) = x $
2. Softmax Function
$ y_k = \frac{e^{a_k}}{\sum_{i=1}^{n}(e^{a_i})} $
3. Softmax Loss Function
softmax함수의 값은 0과 1사이의 값을 리턴한다.
그러므로 Loss를 구할 때 그냥 log를 씌워주면 -의 값이 나온다.
그래서 -를 붙인 -log()함수를 이용하기로 약속한 것이다.
이게 약속이다.
그래프 상에서도 정답인 애의 값이 크면, loss가 작아지는 모습을 볼 수 있다. 만약 정답인 애만 값이 있고 나머지는 다 0으로 예측했다면 loss는 -log(1), 0이다.
4. Softmax의 구현
import numpy as np
arr= [1.0, 1.2, 1.4, 2, 1, 3, 1.5, 1.2, 1.4, 2, 1]
bunmo = np.sum(np.exp(arr))
print(np.exp(arr) / bunmo)
'MachineLearning' 카테고리의 다른 글
[MachineLearning] Activation Function - Step, Sigmoid, ReLU (0) | 2021.07.13 |
---|---|
[MachineLearning] Error - mean squared error(MSE), cross entropy error(CEE) (0) | 2021.07.12 |
[MachineLearning] perceptron (0) | 2021.07.05 |
[PyTorch] 기본 벡터 연산하기 (0) | 2021.06.22 |
[MachineLearning] 벡터 다이어그램 (0) | 2021.06.22 |