본문 바로가기
AI/밑딥

딥러닝) 소프트맥스 함수로 출력층 설계

by 채채씨 2021. 2. 14.
728x90
반응형

Machine Learning은 분류(classificaton)와 회귀(regression)로 나뉘며, 이 데이터 클래스에 따라 출력층에서 사용하는 활성화 함수가 다르다. 일반적으로 회귀에서는 항등 함수를 사용하고 분류에서는 소프트맥스 함수를 사용한다.

항등 함수(identity function)는 입력값을 그대로 출력하는 함수이고, 소프트맥스 함수(softmax function)는 다음과 같다.

 

 

1. 소프트맥스 함수

소프트맥스 함수는 분자는 k번째 입력 신호의 지수 함수로, 분모는 모든 입력 신호의 지수 함수의 합으로 이루어진 함수이다.

 

소프트맥스 함수 식

 

 

소프트맥스 함수 구현

 

 

소프트맥스 함수를 파이썬 함수로 정의

 

 

 

 

2. 소프트맥스 함수 구현 시 주의점

 

소프트맥스 함수는 지수 함수를 사용하는데, 지수 함수는 기하급수적으로 증가하는 함수이므로 오버플로 문제가 발생할 수 있다. 이러한 문제를 해결하기 위한 방법은 다음과 같다.

 

 

오버플로 문제를 개선한 소프트맥스 함수 식

 

 

C'에 어떤 값을 대입해도 상관없지만, 일반적으로 오버플로를 막을 목적으로는 입력 신호 중 최댓값을 이용한다.

오버플로 문제를 개선한 소프트맥스 함수 구현의 예시 코드는 다음과 같다. C' = -(입력신호 중 최댓값) 으로 설정하였다.

 

 

오버플로 개선한 소프트맥스 함수 구현

 

 

오버플로 개선한 함수를 파이썬 함수로 정의

 

 

 

 

3. 소프트맥스 함수의 특징

1) 소프트맥스 함수의 출력 범위는 0에서 1사이의 실수이다. 

2) 소프트맥스 함수의 출력 총합은 1이다. 따라서 소프트맥스 함수의 출력을 '확률'로 해석 가능하다.

3) 소프트맥스 함수를 적용한 후에도 대소 관계가 변하지 않는다. 이유는 지수함수 y=exp(x)가 단조 증가 함수이기 때문이다.

 

 

 


 

<배운 것>

· 기계학습 문제는 회귀와 분류로 나눌 수 있다.

· 출력층의 활성화 함수는 회귀에서는 항등 함수를, 분류에서는 소프트맥스 함수를 주로 이용한다.

 


 

출처: 사이토 고키, 『밑바닥부터 시작하는 딥러닝, 한빛미디어(2017), p90-95

728x90
반응형

댓글