신경망, 활성화 함수

·2023년 7월 2일
0

영상처리 딥러닝

목록 보기
3/7
post-thumbnail

🔎 신경망의 구조


입력층 (Input), 은닉층 (Hidden), 출력층 (Output)으로 구성되어 있다.

입력층

  • 데이터 층으로부터 입력을 받는다.
  • 입력 개수와 노드의 수는 같다.
  • 신경망의 층을 셀 때, 입력층은 제외하고 센다. (위 사진의 경우 2층)

은닉층

  • 입력층과 출력층 사이에 있는 모든 층
  • 내부 계산 결과를 볼 수 없다.

출력층

  • 신경망의 마지막 층
  • 대부분 활성화 함수를 사용한다.


🔎 활성화 함수


퍼셉트론은 입력가중치의 계산값이 임계값(θ)를 넘을 때만 1을 출력한다.
이처럼 입력에 따라 적절한 출력을 하기 위해 사용되는 함수를 활성화 함수(Activation Function)라고 한다.

활성화 함수는 비선형 함수로 이루어져 있다.
선형 함수를 사용했을 때는 은닉층을 사용하는 이점이 없기 때문이다.



계단함수 (Step Function)

퍼셉트론에서 사용된다.
임계값을 경계로 출력이 1로 변한다.

😥 단점

  • 임계점에서 미분이 불가능하다.


시그모이드 함수 (Sigmoid Function)

계단함수와 달리 미분 가능한 연속성을 갖는다.

신경망은 미분을 통해 학습하기 때문에(오차역전파법) 계단함수가 아닌 시그모이드 함수를 사용한다.

시그모이드 함수는 로지스틱 (Logistic) 함수다.

😄 장점

  • 출력 값의 범위가 0~1 사이이며, 매끄러운 곡선을 가지므로 경사하강법을 시행할 때 기울기 폭주(Gradient Exploding)가 발생하지 않는다.
  • 분류는 0과 1로 나뉘며, 출력 값이 어느 값에 가까운지를 통해 쉽게 분류할 수 있다.

😥 단점

  • 시그모이드 함수의 출력값은 모두 양수기 때문에 경사하강법을 진행할 때, 기울기가 모두 양수 또는 음수가 된다. 이는 기울기 업데이트가 지그재그로 변하게 하여 학습 효율성을 감소시킨다.
  • 입력 값이 아무리 크더라도, 출력 값의 범위가 좁기 때문에 기울기 소실(Vanishing Gradient)이 일어날 수 있다.


💡 기울기 소실

시그모이드 함수는 아무리 큰 값이 들어온다 해도, 0~1 사이의 값만 반환하기 때문에 기존 값과 비교해 출력 값이 매우 작아지게 된다.
또한, 출력의 중앙 값이 0이 아닌 0.5이며, 모든 값이 양수이기 때문에 출력의 가중치 합이 입력의 가중치 합보다 커지게 된다.
이를 편향 이동 (Bias Gradient)이라 하고, 신호가 각 층을 통과할 때마다 분산이 계속 커지게 되어, 활성화 함수의 출력이 최솟값과 최댓값인 0과 1에 수렴하게 된다.

시그모이드 함수의 입력값이 0이나 1에 가까울수록 기울기는 0에 가까워진다.
이로 인해 노드의 기울기(Gradient) 값이 0이 되고, 역전파 시 0이 곱해져서 기울기가 소멸되는 현상이 발생한다.
즉 역전파가 진행될수록 아래 층에 아무 신호가 전달되지 않는 것이다.



하이퍼볼릭 탄젠트 함수

시그모이드 함수를 일부 보완한 함수로, 출력값의 범위가 -1에서 1이다.

😄 장점

  • 중앙값이 0이기 때문에, 시그모이드 함수에서 발생하던 단점인 편향 이동이 발생하지 않는다.
  • 따라서 시그모이드 함수보다 학습 효율성이 높다.

😥 단점

  • 시그모이드 함수보다는 적어졌으나, 기울기 소실 문제는 여전히 존재한다.


소프트맥스 함수


세 개 이상의 클래스로 분류하는 다중 클래스 분류에서 사용되는 활성화 함수.
분류될 클래스가 n개일 때, n차원의 벡터를 입력받아 각 클래스에 속할 확률을 추정한다.

😄 장점

  • 확률의 총합이 1이므로, 어떤 분류에 속할 확률이 가장 높을지 쉽게 알 수 있다.


ReLU 함수


입력이 0을 넘으면 그 입력을 그대로 출력하고, 0이하이면 0을 출력하는 함수이다.

😄 장점

  • 기울기 소실(Vanishing Gradient)이 일어나지 않는다.
  • 다른 활성화 함수에 비해 학습 속도가 매우 빠르다.

😥 단점

  • Dying ReLU : 입력값이 음수인 경우 무조건 기울기가 0이기 때문에, 가중치 업데이트가 되지 않는 상황이 발생할 수 있다.
  • 0에서 미분 불가능하다.
  • 가중치가 지그재그로 업데이트 된다.


각 층별 활성화 함수

은닉층 : 대부분 ReLU 함수. 하이퍼볼릭 탄젠트함수는 기울기 소실에 주의해서 사용
출력층 : 시그모이드 함수, 소프트맥스 함수



📑 참조
https://sacko.tistory.com/17
https://syj9700.tistory.com/37
https://gooopy.tistory.com/52

0개의 댓글