[딥러닝] Activation Function.

가설공간을 풍부하게 만들어 층을 깊게 만드는 장점을 살리 위해서 Dense Layer 이후에 붙게 되는 Function이다.

여기서 가설공간이란 어떤 문제를 해결하는데 필요한 가설등의 집합이다. 예를 들어서 그녀가 나를 좋아해줄지를 맞춰주는 문제를 풀어본다고 할 때, 가설은 다음과 같이 무수하게 만들어볼 수 있다.

 – 가설1:  꽃을 좋아하면 그녀는 나를 좋아해줄 것이다.
 – 가설2: 영화를 보자고 하면 그녀는 나를 좋아해줄 것이다.
 – 가설3: 그녀의 이야기에 무조건 맞장구를 치면 그녀는 나를 좋아해줄 것이다.
 ……
– 가설n: 그녀에게 100억을 주면 그녀는 나를 좋아해줄 것이다.

이렇게 가설들의 집합을 가설공간이라고 볼 수 있다.  이때 특정 알고리즘은 가설 을 1 개 이상 포함할 수도 있고  가설간의 연관성이 있을 수도 있다. (참고)

머신러닝이란 이렇게 가설들을 사전에 정의하고 피드백 신호의 도움을 받아 입력 데이터에 대한 유용한 변환을 찾아 나서는 자동화되는 과정이라고 볼 수 있다. 딥러닝은 연속된 층을 바탕으로 데이터를 학습해나가는 하나의 방식이라고 보면 된다. 그리고 딥러닝 내 레이어의 구조는 입력 데이터에서 출력 데이터로 맵핑하는 일련의 특정 텐서 연산으로 가설공간을 제한한다.

다시 원론으로 돌아와서 Activation Function이 없다면 Dense Layer는 선형적인 연산으로 구성이 된다. output = dot(W,input) + b의 형식으로 표현할 수 있다.

이 층은 입력에 대한 선형변환만을 학습할 수 있다. 이럴 경우 가설공간은 모두 선형변환으로만 구성이 되면서 여러개로 구성한다고 해도 가설공간이 확장되지 않게 된다. 따라서 가설공간을 풍부하게 만들어주기 위해서 활성화함수가 필요하게 된다.  

그 중의 대표적인 함수로  sigmoid, ReLU(Rectified Linear Unit) 등이 있으며 이는 생물의 신경세포가 갖는 전기적 신호(의 시간적 밀도)를 모델링한 것이다.

참고: 케라스 창시자에게 배우는 딥러닝