활성화 함수

오창현·2022년 11월 8일
0

CV정리

목록 보기
9/11

본 게시물은 참고블로그의 내용을 정리하였다.

활성화 함수

딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달할때 사용하는 함수를 활성화 함수라고 한다.
선형함수가 아닌 비선형 함수를 사용하는 이유는 딥러닝 모델의 레이어 층을 깊게 가져갈수 있기 때문이다.
인공 신경망에서 활성화 함수는 입력데이터를 다음 레이어로 어떻게 출력하는가를 결정하는 역할을 하기에 중요하다.

종류

1.Sigmoid 함수

시그모이드 함수는 Logistic 함수라고 불리기도 하며 x의 값에 따라 0~1의 값을 출력하는 S형 함수이다.

하지만 Sigmoid 함수는 음수 값을 0에 가깝게 표현하기 때문에 압력 값이 최종 레이어에서 미치는 영향이 적어지는 Vanishing Gradient Problem이 발생한다.
즉 x의 절대값이 커질수록 Gradient BackPropagation(역전파)진행시 미분값이 소실될 가능성이 큰 단점이 있다.

또한 Sigmoid 함수의 중심이 0이 아닌데 이때문에 학습이 느려질 수 있는 단점이 있다.
한 노드에서 모든 파라미터의 미분값은 모두 같은 부호를 갖게 되는데, 같은 방향으로 update되는 과정은 학습을 지그재그 형태로 만드는 원인을 낳는다.

이러한 문제때문에 딥러닝 실무에서는 잘 사용되지 않으나 미분결과가 간결하고 사용하기 쉽기때문에 개인적으로 공부할때 많이 다룬다.모든 실수 값을 0보다 크고 1보다 작은 미분 가능한 수로 변환하는 특징때문에 Logistic Classification과 같은 분류 문제의 가설과 비용 함수(cost function)에 많이 사용된다.

2. Tanh 함수

Hyperbolic Tangent Function은 쌍곡선 함수중 하나로, Sigmoid함수를 변형하여 얻을수 있다.
Tanh 함수의 정의는 아래 함수로 표현된다.σ(x)는 Sigmoid함수 식이다.

Tanh 함수는 함수의 중심점을 0으로 옮겨 sigmoid가 갖고있던 최적화 과정에서 느려지는 문제를 해결했으나 미분함수에 대해 일정 값 이상에서 미분값이 소실되는 Vanishing Gradient Problem 은 여전히 남아있다.

3.ReLu

ReLU(Rectified Linear Unit,경사함수)는 가장 많이 사용되는 활성화 함수 중 하나이다.Sigmoid와 tanh 가 갖는 Gradient vanishing 문제를 해결하기 위한 함수이다.


x가 0보다 크면 기울기가 1인 직선,0보다 작으면 함수값이 0이된다.즉 0보다 작은 값들에서 뉴런이 죽을 수 있는 단점이 있다.
또한 sigmoid, tanh 함수보다 학습이 빠르고 연산비용이 적고 구현이 매우 간단하다.

Leaky ReLU

Leaky ReLU는 ReLU가 갖는 Dying ReLU(뉴런이 죽는 현상)을 해결하기 위해 나온 함수이다.

0.01뿐만아니라 매우 작은 값이라면 무엇이든 사용 가능하다.
Leaky ReLU는 x가 음수인 영역의 값에 대해 미분값이 0이 되지않는다는 점을 제외하면 ReLU의 특성을 동일하게 갖는다.

PReLU

Leaky ReLU와 거의 유사하지만 새로운 파라미터 α 를 추가해 x가 음수인 영역에서도 기울기를 학습

ELU

Exponential Linear Unit은 ReLU의 모든 장점을 포함하며 Dying ReLU문제를 해결했다.
출력값이 거의 zero-centered에 가까우며 일반적인 ReLU와 다르게 exp함수를 계산하는 비용이 발생.

Maxout

ReLU의 장점을 모두 갖고 Dying ReLU문제 또한 해결한다.
하지만 계산양이 많고 복잡하다.

정리


이처럼 다양한 활성화 함수가 존재하는데, 각각마다 특징이 존재하기때문에 상황에 맞춰 사용해야 한다.
대표적으로 ReLU를 가장 많이 사용하며 sigmoid와 tanh 함수는 성능이 좋지 않다.

profile
음...

0개의 댓글