[#004] 신경망-1
퍼셉트론과 신경망의 차이?
앞장에서 언급한 것처럼, 많은 문제들이 단순하게 선형적으로만 해결되지 않는다. 다양한 문제들이 존재하고 이러한 문제들 간에 비선형적인 문제들이 존재한다. 단층 퍼셉트론만으로는 비선형적인 문제들의 해결이 불가능하여 다층 퍼셉트론의 개념이 나왔고 이러한 개념들을 기초로 하여 비선형적인 문제들을 풀어나가고 있다.
다층 퍼셉트론과 신경망의 차이는 뚜렷하게 구분되어 지지 않는 것 같다. 둘 다 입력층, 은닉층, 출력층이 존재하고 이를 통해 학습을 진행하고 있는 원리이다. 그러한 점에 두 용어를 다 혼합해서 사용하고 있다. 굳이 두 개의 용어를 나눈다면 활성화 함수의 차이라고 할 수 있다. 주로 다층 퍼셉트론은 계단 함수를, 신경망은 시그모이드와 같은 연속성이 있는 활성화 함수를 이용하여 구현된다고 할 수 있다.
활성화 함수의 등장
활성화 함수를 설명하기 전에 활성화 함수의 등장 배경부터 설명할 필요가 있다. 초기 다층 퍼셉트론의 등장으로 XOR 와 같은 다소 복잡한 선형적인 문제에 대해 해결해 나갔지만, 이러한 문제들도 결국에는 한계가 존재하였다.
다층 퍼셉트론을 통해 여러개의 은닉층을 추가하여 사용한다고 비선형적 문제들이 해결되지 않는다. 초기의 퍼셉트론의 은닉층은 선형적 함수를 이용하여 출력 값을 전달하였기 때문에 비선형적 문제를 해결하기에는 한계가 존재하였다. 무수히 많은 선을 이용한다고 해서 모든 데이터를 분류할 수 있는 건 아니다. (물론 무수히 많다면 가능할지도 모르겠지만, 너무 비효율적이다.)
위 오른쪽 그림처럼, 선형적으로 분류할 수 없는 비선형적인 분류가 필요해지는 경우가 존재한다. 이러한 비선형적인 분류 모델을 적용하기 위해 비선형 함수를 도입해야 한다. 비선형적 문제를 해결하기 위해는 다양한 활성화 함수를 통해 비선형적인 모델로 변환되어야 한다.
주로 다층 퍼셉트론은 임계값을 경계로 출력이 바뀌는데, 이는 활성화 함수로 '계단 함수'를 사용하는 신경망이라고 한다. 활성화 함수로 쓸 수 있는 여러 후보 중에서 다층 퍼셉트론은 계단 함수를 사용했다.
활성화 함수란?
은닉층의 입력 함수의 총합을 출력하는 신호로 변환하는 함수를 활성화 함수(Activation function)이라고 한다.
활성화 함수에는 대표적으로 아래와 같은 함수들이 존재합니다.
1) 계단함수
계단 함수는 단순히 입력된 값이 0보다 크면 1을 출력해주고 0 이하이면 0을 출력하는 함수이다. 최적화 과정에서 미분을 해야 하므로 미분이 되지 않는 이 녀석은 쓸 수가 없다.
2) 시그모이드 함수
시그모이드 함수는 입력된 값을 이용하여 아래 표기된 수식의 결괏값을 그대로 출력해주는 함수이다. 기본적으로 주로 사용하고 있는 함수로 대표적인 활성화 함수라고 할 수 있다.
3) ReLu 함수
ReLu(Rectified Linear Unit, 렐루) 함수는 최근에 많이 사용하고 있는 함수로, 0보다 큰 값을 경우 입력값을 그대로 출력하고 그 이하이면 0을 출력하는 함수이다.
마무리
이번에는 선형적인 문제와 비선형적인 문제를 다루면서 신경망의 탄생과 개념을 이해하였다. 또한, 다양한 활성화 함수를 통해서 앞으로의 신경망의 기초를 이해하였다. 추후 포스팅에서는 좀 더 신경망에 대한 자세한 내용을 다루겠다.
관련 글
1.사이토 고키, Deep Learning from Scratch, 밑바닥부터 시작하는 딥러닝, 개앞맵시, 한빛미디어, 2018