다층 퍼셉트론의 가중치 update를 위해서는 backpropagation과정을 거쳐야 하는데, 이 때 미분을 통해 기울기 계산을 해야 한다.
단층 퍼셉트론에서 봤던 계단함수는 수평선 밖에 없으므로 사용할 기울기가 존재하지 않는다.
때문에 ReLU나 Hyperbolic Tangent와 같은 함수를 Activation으로 사용한다. 언급한 두 가지 외에도 여러가지 activation function이 존재한다.
왼쪽은 원래 함수의 그래프이고 오른쪽은 도함수 그래프이다.
선형 함수를 Activation Function으로 사용하지 않는 이유
h1, h2, h3는 각각 같은 층에 속해있는 neuron이고 선형 함수를 activation function으로 가지고 있다.
W는 가중치이다.
X1, X2는 input이다.
Y는 output layer의 neuro이다.
Output 을 보면 선형 함수 식으로 나타나는 것을 볼 수 있다.
XOR문제에서 보았듯이 선형적으로 구분되지 않는 문제를 풀기 위해 DNN이 도출되었다. 그런데 Activation Function을 선형 함수로 설정하면, * hidden layer를 추가해 비선형적인 구분을 가능케 한다는 DNN의 목적이 전혀 달성되지 않는다는 것을 알 수 있다.
그렇기 때문에 activation function으로는 선형 함수를 사용할 수 없다.
다층 퍼셉트론 회귀 활용
회귀용 다층 퍼셉트론을 만들 때 출력 뉴런에 activation function을 사용하지 않고, 어떤 범위의 값도 출력되도록 함. 다시 말해 이전 층의 값을 가중합 한 결과를 그대로 출력한다.
만약, 회귀분석 결과 값을 0 이상으로 제한해야 한다면, ReLU, softplus 함수를 사용한다.
만약, 회귀분석 결과를 0~1사이의 값으로 제한하고 싶으면 Sigmoid함수를 사용한다.
만약, 회귀분석 결과를 -1~1사이의 값으로 제한하고 싶으면 hyperbolic tangent함수를 사용한다.
10.1.6 분류를 위한 다층 퍼셉트론
이진 분류 문제
0~1사이의 값을 출력해야 하는 이진 분류 문제의 경우 output layer에 1개의 neuron만 필요하다.