딥러닝 공부를 하다 보면 필연적으로 활성화 함수(activation function)을 만나게 된다. 본 글에서는 이 activation function들간의 관계를 새로운 시각에서 살펴보도록 한다.
Sigmoid 함수는 별로 말할 것이 없다. 1838년 Verhulst에 의해 처음 고안된 이후로 다양한 분야에서 쓰이고 있는데, 딥러닝에서는 큰 물리적 motivation은 없이 0에서 1사이의 값으로 normalize하기 위해서 많이 쓰인다. Sigmoid 함수는 다음과 같다.
$$ \sigma(x)=\frac{1}{1+e^{-x}}=\frac{e^x}{1+e^x} $$
또한 sigmoid 함수는 다음 미분방정식을 만족시킨다.
$$ \sigma'(x) = \sigma(x)(1-\sigma(x)) $$
이 미분방정식에 산술-기하 부등식을 적용하면 다음 결과를 얻는다:
$$ 0<\sigma'(x)\leq\frac{1}{4} $$
따라서 layer이 깊어질수록 gradient vanishing과 같은 문제가 일어나게 된다.
Softmax는 sigmoid 함수를 여러 클래스로 확장시킨 것에 지나지 않는다. 예를 들어 $\sigma(x)$ 를 $\sigma(x-y)$로 바꾸어 보면
$$ \sigma(x-y)=\frac{1}{1+e^{y-x}}=\frac{e^x}{e^x+e^y} $$
가 되는데 이는 2-class에 대한 softmax function에 지나지 않는다.
잘 알고 있겠지만 ReLU는 다음 식으로 주어지는 함수이다.
$$ \rho(x)=\max(0,x) $$
모양만 놓고 보았을 때는 sigmoid와 관련이 없어 보이지만 실제로는 sigmoid로부터 ReLU가 유도 가능하다(사실 이 과정을 적는 것이 본 글의 목적이었다.).