본문 바로가기

Deep Learning

AI - Deep Learning (2)

활성함수는 이전의 글에서 설명한 퍼셉트론 구조에서 threshold(임계치)보다 큰지 작은지를 판정하는 것이다. 이 과정을 통해 다층 신경망 구조에서는 활성함수를 통해 다음 신경망으로 입력값을 보낼지 말지 결정하게 된다. 활성함수를 통해 나오는 값은 0 또는 1이기 때문에 y축의 값이 0부터 1인 계단식의 모양을 가지게 된다. 

 

대표적인 활성함수인 sigmoid

 

이전글에서 xor 문제를 해결하기 위해 다층 퍼셉트론 구조가 나왔다고 했었는데, 사실 활성함수를 선형으로 지정하여 여러층의 구조를 만들면 결국 선형문제만 해결할 수 있다. 결국 활성함수는 비선형 함수로 사용해야 하는데 대표적인 활성함수로는 sigmoid와 ReLu가 있다. sigmoid의 경우 최근엔 사용되지 않는데, sigmoid를 사용하는 경우 생기는 vanishing gradient 문제 때문이다. vanishing gradient는 한국어로 기울기 소멸로 번역할 수 있는데, 쉽게 말해 활성함수에서 기울기를 줄여가며 학습하는 방식으로 다층 신경망을 쌓게되면, 4번 정도만 지나도 0에 수렴해가기 때문에 학습속도는 매우 느려지기에 다층 신경망을 쌓을 이유가 없어지는 것이다. 

 

Sigmoid 미분

 

Sigmoid의 banishing gradient문제를 해결하기 위해 나온 것이 ReLU다. ReLU 함수는 x>0일 때 기울기는 1인 직선이며, x<0일 때 함수값은 0이다. ReLU의 경우, sigmoid보다 학습속도가 훨씬 빠르고 연산 비용이 작으며, 구현이 간단하지만 x<0일 때 기울기가 0 이기 때문에 dying neuron 현상이 나타난다.  이것을 보완하기위해, Leaky ReLU, PReLU 등이 생겨났다. 

ReLU

 

현재까지 다양한 ReLU의 대체품도 나왔지만 ReLU의 계산속도는 여전히 큰 메리트가 있기 때문에 연구실 수준에서 사용할 때는 여전히 ReLU를 많이 사용하는 편이다. 

'Deep Learning' 카테고리의 다른 글

AI 개요 - Deep Learning (1)  (0) 2022.03.24
AI 개요 - Machine Learning  (0) 2022.03.23