본문 바로가기

【1】Deep Learning 시작하기/다시 마주친 장벽, Vanishing Gradient Problem

해결책 2 : 문제는 활성화 함수 - ReLU / (확률분포)

 

“We used the wrong type of non-linearity”

 

 

그 다음으로는 힌튼이 네번째로 제시한 이유인 활성화 함수에 대해 이야기하겠다. 오차 역전파는 출력층에서 입력층 방향으로 각 층의 가중치를 수정하는 방식이라는 것을 모두 알고 있을 것이다. 가중치를 수정하는 과정에서 활성화 함수의 미분이 진행되는데 문제는 바로 여기서 발생한다. 활성화 함수로 시그모이드 함수를 사용했더니 출력층과 가까운 경우에는 오차역전파가 잘 되는데 반해 출력층과 멀어지는 경우 오차 전파가 잘 안되는 문제가 생긴 것이다. 이러한 문제는 시그모이드 함수의 특성으로 발생한 것으로 기울기 소실 문제를 이해하기 위해서 시그모이드 함수를 살펴볼 필요가 있다. 

 

1. 시그모이드(Sigmoid)

 

 

시그모이드는 입력에 대해 0과 1사이의 값을 출력한다. 또 입력의 절대값이 크면 0이나 1로 수렴한다. 아무리 큰 값 이어도 1을 넘는 값을 가질 수 없고 아무리 작은 값도 0에 가까운 값을 가지는 것이다. 이러한 특성을 가진 시그모이드를 활성화 함수로 사용하면 1보다 작은 출력 값이 매 층마다 곱해지면서 점점 값이 작아지게 된다.  

 

<심화 학습: 시그모이드의 특징>

 

 

 

① 입력의 절대값이 커지면 0이나 1로 수렴하게 된다.

이 경우 기울기가 0에 가깝게 된다는 것을 뜻한다. 시그모이드의 미분은 σ(x)'= σ(x)(1-σ(x)) 이므로 함수 값이 0이나 1에 가깝게 되면 매우 작은 값을 가지게 된다. 즉 역전파가 진행될수록 출력층과 거리가 먼 층은 오차의 전달이 거의 되지 않아 가중치의 업데이트가 일어나지 않게 된다. (기울기 소실문제 발생)

 

② 중심이 원점이 아니다. 

시그모이드는 항상 양수 값을 출력하므로 입력의 가중치 합보다 출력의 가중치 합이 더 커질 가능성이 높다. 이를 편향 이동(bias shift)라 하며, 이로 인해 매 층을 지날 때 분산이 커지는데 결국 가장 높은 레이어에서는 활성화 함수의 출력이 0이나 1로 수렴하게 되어 그래디언트 소실 문제가 발생하게 된다.

 

이처럼 기울기 소실문제를 해결하기 위해 시그모이드가 아닌 다른 활성화 함수들이 등장하기 시작했다. 몇가지 함수들의 특징들을 알아보자. 

 

 

 

2. 하이퍼볼릭 탄젠트(tanh)

 

하이퍼볼릭 탄젠트(tanh)는 시그모이드 함수의 범위를 -1에서 1로 확장한 개념이다. 미분값 역시 시그모이드의 미분 최댓값인 0.3 보다 확장된 1을 최대 값으로 가지는 효과를 가진다. 또한 tanh는 원점 중심이기 때문에 시그모이드와 달리 편향 이동이 일어나지 않는다는 장점이 있다. 하지만 tanh 함수 역시 입력의 절대값이 클 경우 -1이나 1로 수렴하므로 기울기 소실 문제는 여전히 존재하게 된다. 

 

 

 

3. 렐루 (Rectified Linear Unit, ReLU)

 

제프리 힌튼 교수가 제안한 렐루(ReLU)는 현재 가장 많이 사용되는 활성화 함수이다. ReLU의 수식은 다음과 같이 매우 간단하다. 

 

 

ReLU는 입력이 음수면 0을, 양수면 입력 값을 그대로 출력한다. 그러므로 오차 역전파를 진행할 때 여러 개의 은닉층이 있더라도 입력층까지 값이 사라지지 않고 전달되게 한다. 이렇게 ReLU는 기울기 손실 문제를 해결하여 신경망의 깊이 제약 문제를 해결하며 신경망의 깊이 제약 문제를 해결하는데 큰 역할을 했다.

 

 


 

 

 


작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com