신사(SinSa)
article thumbnail

2018/11/15 - [Research/Artificial Intelligence] - Long Short Terms Memory networks (LSTM) 에서 언급된 활성화 함수와 관련된 이야기이다.


인공 신경망과 생물학적 신경망 모두 뉴런이 받은 입력을 그대로 출력하지 않는다. 대신 뇌의 활동 전위 발화율에 대응하는 활성화 함수(activation function)라고 부르는 한 가지 단계를 더 거친다. 활성화 함수는 가중치 합  $z=b+\sum_{i}w_ix_i$ 을 입력받아 최종적 출력 전에 이를 다시 한번 변형시킨다. 많은 활성화 함수가 제안되었지만 여기서는 시그모이드(sigmoid)와 ReLU(rectified linear unit) 두 함수만 다룬다. 


역사적으로 시그모이드 함수는 가장 오래되고 널리 사용되는 활성화 함수이다. 이 함수는 다음과 같이 정의할 수 있다.


$σ(x)=\frac{1}{1+{e}^{-x}}$


$e$는 자연 상수이며 대략 2.71828이다. 시그모이드 함수를 활성화 함수로 사용하는 뉴런을 시그모이드 뉴런이라고 부르는데 변수  $z$ 에 가중치 합을 입력으로 넣고, 그 다음 시그모이드 함수를 통과시킨다.  


$z=b+\sum _{ i }^{}{w_ix_i}$

$σ(x)=\frac{1}{1+{e}^{-z}}$


처음에는 이 식이 복잡하고 의미없어 보이지만, 사실 입력 $z$ 에 대한 함수로  $σ(z)$의 값을 그래프로 그리면 매우 간단한 형태를 가진다. 



무한대의 출력을 0에서 1사이로 응축시키므로  $σ(z)$를 압축 함수의 하나로 볼 수 있다.  $z=0$인 가운데에서  $σ(0)=1/(1+e^0)=1/2$ 이다.  $z$가 아주 큰 음수이면, 분모의  $e^{-z}$가 아주 커져서  $σ(z)$가 0에 수렴한다. 반대로, $z$ 가 아주 큰 양수이면  $e^{-z}$가 0에 가까워지므로,  $σ(z)$가 1에 수렴한다. 시그모이드 함수는 연속 미분 가능한데, 이 도함수는  $σ′(z)=σ(z)(1−σ(z))$로 계산이 편리하다. 신경망을 훈련시키려면 미적분을 사용해야 하기 때문에 이런 도함수가 중요하지만 당장은 너무 신경쓸 필요가 없다. 시그모이드 뉴런은 수십 년간 대부분 신경망의 기본이었지만, 최근 몇 년동안 크게 선호도가 줄어 들고 있다. 그 이유는 이 함수가 그래디언트 소실 문제를 가지고 있어서 많은 층으로 이루어진 신경망을 훈련시키기 어렵게 만들기 때문이다. 대신 다른 종류의 활성화 함수인 ReLU를 사용하는 경우가 많아지고 있다. 이름을 봐서는 감을 잡기 어렵지만, 이 함수는 간단하게  $R(z)=max(0,z)$ 로 정의된다. 



다른 말로 하면, ReLU는 모든 양수 값은 그냥 통과시키지만, 음수 값은 0으로 만든다. 새로운 활성화 함수가 계속 대두되고 있지만, 요즘 대부분 심층 신경망은 ReLU와 그 변종들 중 하나를 사용한다. 어떤 활성화 함수를 사용하던지 다음의 기본적인 그림으로 뉴런 하나의 행동을 직관적이고 시각적으로 표현할 수 있다.  



위 그림은 세 개의 입력과 하나의 $y$값을 출력하는 뉴런을 보여준다. 먼저 입력의 가중치 합을 계산하고, 그 다음 이를 활성화 함수 $σ$ 에 통과시킨다. 


$z=b+w_1x_1+w_2x_2+w_3x_3$

$y=σ(z)$


활성화 함수의 목적이 무엇인지, 왜 가중치 합을 그냥 출력했는지 궁금할 수 있다. 가중치 합 $z$는 입력에 대한 선형성, 즉 각 입력에 대해 단순한 의존성을 가진다. 이와 반대로, 비선형 활성화 함수는 곡선이나 다른 복잡한 함수를 모델링할 수 있다. 




이 글의 원문: https://ml4a.github.io/ml4a/neural_networks/


profile

신사(SinSa)

@신사(SinSa)

포스팅이 좋았다면 "좋아요❤️" 눌러주세요!