인공신경망 성능 높이기 (1) - ReLU

IngCoding·2022년 6월 19일
1

머신러닝

목록 보기
19/34
post-thumbnail

1.활성화 함수 선택

1) 비선형 활성화 함수 (Activation function)

  • 이번 포스팅엔 활성화 함수의 개념과 인공신경망 은닉층에 주로 사용되는 ReLU 함수를 살펴본다.
  • 활성화 함수는 입력값을 수학적으로 변환해 출력을 생성하는 함수다.
  • 직선 1개로 표현되는 선형함수로는 은닉층을 쌓을 없어 모든 활성화 함수는 비선형 함수이다.

2) 시그모이드 함수 (ft.기울기 소실)

  • 활성화 함수로 자주 쓰이는 시그모이드 함수는 인공신경망에는 잘 활용되지 않는다.

  • 미분을 해서 기울기를 구할 때 '기울기 소실(Vanishing Gradient)' 문제 때문이다.

  • 시그모이드 함수의 기울기 소실을 그래프로 살펴보자. 주황색 부분의 기울기는 0에 가깝다. 역전파 과정에서 0에 가까운 기울기가 곱해지게 되면, 앞단에는 기울기가 잘 전달되지 않아 매개변수 W가 업데이트 되지 않는다. 결국 학습이 되지 않는다.

3) 렐루 함수(ReLU)

  • 인공신경망에서 최고의 인기를 얻고 있는 함수다.
  • 음수를 입력하면 0을 출력하고, 양수를 입력하면 입력값을 그대로 반환한다. 렐루함수는 특정 양수값에 수렴하지 않으므로 깊은 신경망에서 시그모이드 함수보다 훨씬 더 잘 작동한다.
  • 그리고 렐루는 시그모이드와 같이 어떤 연산이 필요한 게 아니라 단순 임계값이므로 연산속도도 빠르다.
  • 하지만 입력값이 음수면 기울기도 0이 되고 이 뉴런은 다시 회생하기 어려워진다. 이 문제를 죽은 렐루(dying ReLU)라고 한다.

리키 렐루 (Leaky ReLU)

  • 죽은 렐루를 보완하기 위해 ReLU의 변형 함수들이 등장했는데, 이 중 Leaky ReLU를 소개한다.
  • Leaky ReLU는 입력값이 음수일 때, 0이 아닌 0.001과 같이 매우 작은 수를 반환한다.

4) 정리

  • 은닉층의 활성화 함수로는 ReLU 혹은 Leaky ReLU와 같은 렐루의 변형을 사용하는 것이 권장된다. 하지만 출력층의 경우 풀고자하는 문제에 따라 그에 맞는 함수가 권장된다.
profile
Data & PM

0개의 댓글