활성화 함수는 딥 러닝을 위해서 반드시 필요한 요소이다. 이름 그대로 심층 신경망(Deep Neural Network, DNN)을 구성할 때, 은닉층과 출력층에서 나온 출력값을 받아 비선형적으로 변환해 준다.
그렇다면 왜 심층 신경망에서는 출력이 비선형적이어야 할까?
만약 선형적이라면, 아무리 많은 은닉층을 쌓더라도 가설은 선형성을 유지하게 된다. 즉, 선형적인 가설로 설명되지 않는 복잡한 문제들을 해결할 수 없다는 것이다.
몇 가지 대표적인 활성화 함수의 예시를 보자.
주로 이진 분류를 위해 출력층에서 사용된다. 출력값이 0이나 1에 수렴할 경우 기울기가 0으로 수렴하고 기울기도 완만하기 때문에 역전파 과정에서 기울기 소실이 발생한다. 따라서 은닉층의 활성화 함수로는 사용하지 않는다.
시그모이드 함수와 비슷하게 생겼다. 출력값이 -1, 1로 수렴하고 더 가파르다. 따라서 기울기 소실 문제가 시그모이드보다 덜하다.
보편적으로 은닉층의 활성화 함수로 가장 많이 사용된다. 연산이 간단해서 속도가 빠르고 0보다 큰 출력의 기울기는 항상 1이 되므로 기울기 소실 문제에서도 자유롭다. 하지만 0보다 작은 출력의 경우 기울기가 0이 되므로 해당 뉴런은 학습에서 제외되는 죽은 렐루(dying ReLU) 문제가 있다.
죽은 렐루 문제를 보완하기 위해 나온 변형 함수이다. 0보다 작은 출력의 경우 매우 작은 기울기를 갖는 선형 함수로 변환한다.
주로 출력층에서 사용되며 다중 분류에 사용된다.
꼼꼼하게 스스로 질문하며 개념 정리를 해나가니 이해가 잘 되는 군요!