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

Gino·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
나무를 심는 사람

0개의 댓글

관련 채용 정보