Robotics/Machine Learning

인공신경망 원리

공대조교형 2018. 4. 4. 14:55

인공신경망 원리


  Universal Nonlinear Function Approximator란 인공신경망이라는 시스템을 가장 잘 표현하는 단어이다. 인공신경망 즉 Neural Network는 gradient descent 등의 parameter optimization algorithm과 결합하여 머신러닝으로 대표되는 단어로 쓰이고 있지만 사실 매우 높은 자유도를 가지는 시스템일 뿐이고 그 높은 자유도 덕에 모델링이 직접적으로 힘들거나 알고리즘이 밝혀져 있지 않은 분야에서 널리 사용되고 있다. (바둑에서의 최적 수, 이미지 인식, 주가 예측 등)  본 절에서는 어떻게 그 최적의 파라미터를 찾는것은 뒤로 넘기고 찾아진 최적의 파라미터가 활성화함수와 함께 어떻게 비선형함수를 모의할 수 있는지 살펴보고자 한다. 


0. 활성화함수의 역할


  활성화 함수란 아래의 그림과 같은 인공신경망 구조에서 hidden neuron혹은 output neuron 등에서 입력된 신호를 크기에 따라서 활성화 또는 비활성화하는 역할을 담당한다. 




1. 활상화 함수 원리


  활성화 함수중 가장 흔히 쓰이는 것은 Sigmoid와 ReLU 두가지가 있다. 이러한 함수들이 활성화함수로 쓰이는 이유는 활성화 함수로 들어온 신호 중 불필요한 신호를 막기 휘한 역할이 있다. Sigmoid와 ReLU의 차이점은 Sigmoid는 비활성화와 활성화를 명확히 구분하여 1, 0으로 신호를 전달하고 ReLU같은 경우에는 비활성화 된 함수는 철저히 block하지만 활성화한 함수는 신호를 그대로 내보낸다. 최근엔 ReLU가 주로 쓰이고 있는데 control분야에서 마지막 출력쪽을 제외하고는 ReLU가 지배적이다. 그 이유는 크게 두가지로 꼽을 수 있는데 첫번째는 학습속도이고 두번째는 연산시간이다.


  학습속도 차원에서 인공신경망은 cost function 변화에 대해 각 weight의 기여도인 Sensitivity(dJ/dw)를 기반으로하는 Gradient Descent Method를 주로 사용하는데 sigmoid 같은 경우에는 활성화 구간에 대해서 기울기정보가 saturation 되어 생략되기 때문에 학습 속도가 느리다. 

  연산시간 차원에서의 이득은 ms단위로 알고리즘이 계산되어야되는 제어분야에서는 매우 중요하다.  인공신경망의 핵심은 불필요한 신호에 대한 확실한 drop out인데 Sigmoid의 경우에는 drop out되는 영역의 input에 대해서도 gradient 정보가 남아있어서 계산이 필요하기 때문에 연산시간이 더 걸리고 또한 ReLU의 경우에는 gradient가 1아니면 0이기 때문에 계산이 간편하지만 sigmoid의 경우에는 exponential 과 나눗셈이 포함되어있기 때문에 연산시간이 더 오래걸린다. 

  아래는 sigmoid와 ReLU에 대해서 같은 데이터와 같은 학습방법을 이용해서 학습한 결과이다. 5000번 학습을 max로 고정하였을때 ReLU가 Sigmoid에 비해서 더 빠른 수렴속도를 가지는 것을 확인할 수 있다. 


2. 인공신경망의 비선형함수 모의 원리


  인공신경망의 비선형함수 모의하는 과정을 보이기 위하여 데이터는 가장 간단한 nonlinear SISO(Single Input Single Output)으로 준비를 하였다.  인버터에서 전류크기에 대해서 보상해주어야되는 전압왜곡양에 대한 그래프인데 전류를 입력으로 하며 전압을 출력으로 하는 함수이다. 




인공신경망은 입력뉴런 1개, 출력뉴런 1개로 구성되며 은닉뉴런은 임의로 설정할 수 있지만 본 설명에서는 4개로 설정하였다. 학습은 완벽하게 주어진 비선형함수를 모의하는 상태로 완료되었다는 가정하에 동작 원리를 설명하도록 한다. 


 앞절의 활성화함수 원리에서 설명했듯이 활성화함수는 입력된 신호에 따라서 해당 뉴런의 신호를 전달할지를 결정하기 때문에 입력 신호에 따라서 활성화 되는 뉴런이 2^4개의 조합으로 달라지는 가변적인 구조를 지닐 수 있다. 

 아래 사진은 서로다른 입력신호에 따라서 주어진 비선형 함수를 서로다른 직선으로 모의하고 있는 상태를 표현한 것이다. 인공신경망에서 푸른색으로 표현된 뉴런의 신호는 활성화되어 다음 뉴런으로 전달되는 신호이고 붉은색으로 비활성화된 뉴런을 표시하였다. 


은닉뉴런이 많을수록 더 복잡한 비선형함수를 본 함수와 가깝게 모의할 수 있게 되는데 아래 그림은 위 인공신경망과 같은 SISO system에서 은닉뉴런의 개수만 1개, 10개, 50개로 달리하면서 모의하는 비선형함수와 어떻게 가까워지는지 살펴본 그래프이다. 더 은닉뉴런이 많을수록 표현하려는 원 함수에 더 부드럽게 가까워지는것을 확인할 수 있다.