딥러닝에서의 활성화 함수

딥러닝에서의 활성화 함수

Activation Function

정의

실제 생물의 역치를 모방한 비선형 함수를 활성화 함수라 한다.

모티브

20190325\_153312.png

역치란 생물이 자극에 대해 어떤 반응을 일으키는 데 필요한 최소한의 자극의 세기로써, 딥러닝은 이를 모방하기 위해 각 노드의 계산 결과에 활성화 함수를 취해 다음 레이어로 넘긴다. 이러한 비선형적 보정이 없다면 딥러닝에서 히든 레이어를 두며 계산을 여러번 하는 의미가 없다.활성화 함수는 여러 종류가 있는데, 어떤게 좋은지는 말 그대로 케이스 바이 케이스다. 무슨 활성화 함수를 쓰면 퍼포먼스가 어떻게 달라진다는 식의 이론은 거의 없고, 그냥 시도해 보고 결과가 좋으면 채택하는 식이다.

예시

계단 함수

$$u (x) := \begin{cases} 0 & , x<0 \\ 1 & x \ge 0 \end{cases} $$

계단 함수는 역치라는 이름에 가장 잘 맞는 함수지만 계산 결과를 너무 단순하게 축약시키기 때문에 실제로 쓰기엔 어려운 측면이 있다. 다른 활성화 함수들도 계단 함수는 아니지만 마치 계단 함수처럼 작용하기 위해서 고안되었다고 생각하면 좋다.

시그모이드 함수

1\_XxxiA0jJvPrHEJHD4z893g.png

시그모이드 함수 중 가장 유명한 것은 아무래도 로지스틱 함수 $\displaystyle \sigma (x) := {{1} \over { 1 + e^{-x} }}$ 로, 마치 계단함수를 연속함수로 이어놓은 듯한 모양을 가지고 있다. 치역은 다르지만 $\tanh x$ 역시 비슷한 이유로 사용되었다. 최근에는 그래디언트 배니싱이라는 문제가 발견되어 거의 쓰이지 않는다.

ReLu(Rectified Linear Unit) 함수

$$\text{ReLu} (x) := \max \left\{ 0 , x \right\}$$

시그모이드 함수의 문제점을 극복하기 위해 고안된 함수다. $x <0$ 이면 아예 함수값을 죽여버리고, $0$ 을 넘겨야 그대로 전달된다는 점에서 활성화 함수답다고 할 수 있다.

댓글