인공지능/Machine & Deep Learning

다층 퍼셉트론(MLP: Multi Layer Perceptron)과 활성화 함수(Activation function)

해리누나 2023. 4. 12. 00:59
728x90
반응형

 

단층 퍼셉트론 / 출처: https://yhyun225.tistory.com/20

 

저번에 퍼셉트론에 대해서 설명했었다. 위처럼 은닉층이 없는, 훈련 데이터를 받아들이는 입력층(Input layer)과 결과를 도출하는 출력층(Output layer), 이렇게 두가지의 층으로만 이루어져있는 퍼셉트론을 단층 퍼셉트론이라고 한다. XOR 문제를 예시로, 단층퍼셉트론은 선형으로 분리가 가능하지 않은 상황은 처리가 불가능했다.

 

XOR 문제와 같은 선형분리가 불가능한 상황을 층을 더한 다층 퍼셉트론을 이용하여 해결할 수 있게 되었다.

 

퍼셉트론에 대한 설명은 아내 링크를 참조해주세요.

 

인공신경망(ANN: Artificial Neural Network)과 퍼셉트론(Perceptrons)

인간은 뇌를 통해 학습을 하니까, 기계에도 뇌와 비슷한 구조의 무언가를 만들어 주면 되지 않을까? 라는 질문을 토대로 만들어지게 된 것이 인공신경망이다. 그렇담, 먼저 우리 인간의 뇌는 어

bruders.tistory.com

 

 

 

다층 퍼셉트론(Multi Layer Perceptron | MLP)

 

다층 퍼셉트론 / 출처: https://github.com/rcassani/mlp-example

 

입력층과 출력층 사이에 숨어있는 층을 은닉층(Hidden layer)라 부른다. 위와 같이 여러개의 은닉층(2개 이상)을 가지고 있는 인공 신경망을 심층 신경망(Deep neural network) 라 부르며, 은닉층이 하나만 있는 인공 신공망을 얕은 신경망(Shallow neural network) 라 부른다. 그리고 이 심층신경망을 이용해 학습시키는 것을 딥러닝(Deep learning) 이라고 한다.  입력층에서 전달되는 값이 은닉층의 모든 노드로 => 이 은닉층의 모든 노드의 출력값이 => 출력층의 모든 노드로 전달된다. 이를 순전파(Feedforward)라고 한다.

 

출처: https://m.blog.naver.com/samsjang/221030487369

 

x0과 a0은 바이어스로 1로 둔다. 위처럼 n개의 입령층의 노드, m개의 은닉층의 노드, 3개의 출력층의 노드로 구성된 다층 퍼셉트론을 n-m-3 퍼셉트론 이라 부른다.

 

 

출처: http://bigdata.dongguk.ac.kr/lectures/AI/_book/%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D.html

 

퍼셉트론은 가중치에 대하여 선형 방정식을 사용하기 때문에, 노드에 들어오는 값들을 바로 다음 레이어로 전달하지 않고 주로 비선형 함수에 통과시킨 후 전달한다. 이 과정을 담당하는 함수를 활성화 함수(Activation Function) 라 부른다.

 

선형함수인 h(x)=cx를 활성화함수로 둔 3층 네트워크를 떠올려 보세요. 이를 식으로 나타내면 y(x)=h(h(h(x)))가 됩니다. 이는 실은 y(x)=ax와 똑같은 식입니다. a=c3이라고만 하면 끝이죠. 즉, 은닉층이 없는 네트워크로 표현할 수 있습니다. 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 함수를 사용해야 합니다.                                                                                                                            - 밑바닥부터 시작하는 딥러닝 -

 

 

 

활성화 함수

 

초기 퍼셉트론에서는 활성 함수로 계단함수를 사용하였다. 계단 함수는 값의 크기에 상관없이 음수는 -1, 양수는 +1로 변환한다. 이를 경성 의사결정이라 할 수 있으며 경계선에 가까울수록 0에 가깝고 멀어질수록 +1이나 -1에 가까워지는 연성 의사결정으로 확장해보자.

 

 

1. 시그모이드 함수 (Sigmoid)

시그모이드 함수는 로지스틱(Logistic)함수라 불리기도 한다.

 

시그모이드 함수 / 출처: https://reniew.github.io/12/

 

시그모이드 함수의 도함수 / 출처: https://reniew.github.io/12/

 

Sigmoid의 특징

  • 함수는 입력으로 받은 값을 0과 1사이의 값으로 제한한다.
  • (즉, 매우 큰 값이 들어올 경우 함수값은 1의 거의 가까우며, 반대의 경우 거의 0에 가깝다)
  • 0과 1사이의 값을 가지니 결과값을 확률처럼 해석하는 로지스틱 회귀 모델에 적합하다.
  • 미분값의 최대가 0.25 로 작은 수치다.
  • 성능이 좋지 않아, 은닉층에선 사용되지 않으나, 이진 분류문제에서 01로의 출력이 필요하니, 이진 분류문제에서 출력층에 사용된다.

 

Sigmoid의 단점

  • 도함수를 보면, 입력값의 절댓값이 크면 기울이가 0으로 수렴한다.
  • 따라서, 경사하강법을 적용하여 가중치를 업데이트 할 시, 기울기가 0에 가까워져 소실되는 기울기 소실(Gradient Vanishing) 현상이 발생할 수 있다.
  • 미분값의 최댓값이 0.25라 층이 깊어질수록 곱해지는 미분 값이 누적이 되어 가중치의 업데이트량이 점차 더 작아져 가중치를 제대로 업데이트할 수 없게 된다.

이러한 단점들 때문에 최근 딥러닝에서는 잘 활용하지 않는 함수다.

 

 

2. Tanh 함수 (Hyperbplic tangent)

 

tanh 함수 / 출처: https://reniew.github.io/12/

 

tahn 함수의 도함수 / 출처: https://reniew.github.io/12/

 

Tahn의 특징

  • Sigmoid 함수를 변형한 함수로  -1에서 1까지의 값을 가진다.
  • 쌍곡선 함수 중 하나 (삼각함수와 유사한 성질을 가진 함수)
  • 함수의 중심값을 원점으로 옮겨 sigmoid의 최적화 과정이 느려지는 문제를 해결

 

Tahn의 단점

  • 그러나, 미분함수에 대해 일정값 이상 커질 시 미분값이 소실되는 기울기 소실 현상 문제는 여전히 가지고 있다.

 

 

3. ReLU 함수 (Rectified Linear Unit)

 

ReLU 함수 / 출처: https://yhyun225.tistory.com/21

 

ReLU의 특징

  • 입력값이 0보다 클 경우 그대로 출력
  • 입력값이 0보다 작을 경우엔 함숫값이 0
  • 0보다 작을 시 0으로 만들어 버리기 때문에 이 값들은 다음 층(Layer)로 전달되지 않는다.
  • 양수일 때는 도함수가 1이고 음수면면 도함수가 0이 된다.
  • sigmoid, tanh 함수보다 학습이 훨씬 빨라진다.
  • CNN(Convolution Neural Network)에서 자주 쓰인다.

 

ReLU의 단점

  • 다음 층으로 전달되지 않아 뉴런이 죽는 현상(Dying ReLU현상)이 발생한다.

이 현상을 해결하기 위해 0보다 작은 입력값의 경우, 약간의 변화량만이라도 다음 층으로 전달할 수 있도록 해주는 Leaky ReLU와 PReLU가 만들어지기도 했다.

 

 

 

3.5 Leakly ReLU 함수 와  PReLU 함수

출처: https://www.researchgate.net/figure/ReLU-activation-function-vs-LeakyReLU-activation-function_fig2_358306930

 

특징

  • 뉴런이 죽는(“Dying ReLu”)현상을 해결하기위해 나온 함수
  • LeakyReLU: f(x) = max(0.01x,x) |  PReLU: f(x) = max(ax,x) 의 형태를 가진다.
  • Leakly ReLU는 음수의 x값에 대해 미분값이 0되지 않는다.
  • Leakly ReLU와 거의 유사하지만 새로운 파라미터 α 를 추가하여 x<0에서 기울기를 학습할 수 있게  하였다.

 

 

4. ELU 함수 (Exponential Linear Unit)

 

ELU 함수 (좌:alpha = 1.0 우: 2.0) / 출처: https://yhyun225.tistory.com/21

특징

  • ReLU의 모든 장점을 포함
  • 뉴런이 죽는 현상(Dying ReLu)을 해결
  • 파라미터 α 를 이용해 입력값이 0 이하일 때의 지수함수 부분의 scale 조정이 가능하다.
  • Alpha가 1인 경우 연속인 도함수를 갖는다.
  • Alpha가 1이 아닌 경우,  SeLU(Scaled exponential Linear Unit)라 부르며 불연속인 도함수를 갖는다.
  • 일반적인 ReLU함수와 달리 지수함수의 계산이 들어가 연산량이 증가

 

 

5. Softplus 함수

 

softplus 함수 / 출처: https://yhyun225.tistory.com/21

 

특징

  • ReLU함수를 부드럽게 근사 시킨 함수
  • 모든 구간에서 미분이 가능한 함수
  • 도함수가 sigmoid함수가 되기 때문에 기울기가 0~1 사이의 값을 갖는다.

 

 

 

 

 

마지막으로 다층 퍼셉트론에 대해 짧게 요약하자면...

  • 은닉층을 가진다.
  • 연성(출력이 연속값이라는 뜻) 의사결정이 가능한 시그모이드 활성함수를 도입했다.
  • 오류 역전파 알고리즘을 사용한다. [ 오류 역전파 알고리즘 : 다층 퍼셉트론은 여러 층들이 순차적으로 이어진 구조를 가지고 있는데, 역방향으로 진행하면서 한 번에 한층씩 그레이디언트를 계산하고 가중치를 갱신하는 방식이다 ]

 

 

 

 

 

 

참고

책: Maschine Learning 기계학습 | 한빛아카데미 | 오일석

https://yhyun225.tistory.com/21

https://yhyun225.tistory.com/20

http://bigdata.dongguk.ac.kr/lectures/AI/_book/%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D.html

https://m.blog.naver.com/samsjang/221030487369

https://reniew.github.io/12/

 

728x90
반응형