공대조교형의 공학/경제 연구소

공학 수업 노트에서 시작해서 MIT tech review와 bridge water research review 까지

Robotics/Machine Learning

인공신경망 파라미터 추정 알고리즘

공대조교형 2018. 4. 19. 23:14

인공신경망 파라미터 추정 알고리즘


  인공신경망은 인공신경망의 구조인공신경망의 원리 에서 살펴봤듯이 독특한 구조에 의해서 파라미터만 잘 선택된다면 어떤 비선형 함수를 모의할 수 있게 된다. 따라서 파라미터를 잘 선정하는 것이 매우 중요한데 일반적인 시스템에 비해서 자유도가 매우 높고 모든 입력조합에 대해서 어떤 은닉 뉴런이 활성화되는지를 미리 알기 힘들기 때문에 직관에 따라서 파라미터를 설계하는것이 어렵다. 따라서 자동으로 파라미터를 찾아야하는데 시스템 identification이나 적응 제어기에서 사용되는 파라미터 최적화 알고리즘들이 사용된다. 본 글에서는 여러 파라미터를 찾는 알고리즘에 대해서 소개해 보도록 한다. 


0. Least Square Method


  Least Square Method는 선형 시스템()에서 파라미터()와 출력신호() 사이의 관계를 입력신호들로 구성된 행렬()로 표현한 뒤 그 행렬의 역행렬을 이용해서 파라미터를 구하는 방법이다.  자세한 식은 아래와 같다. 여기서 입력신호와 출력신호를 행렬로 표시한것은 n차원의 입력신호를 m time step만큼 모아서 만든 nXm 행렬()이고 출력신호 행렬인 Y는 mX1 행렬이다. 




, assume e = 0




  하지만 인공신경망은 비선형 함수인 은닉뉴런이 포함되어있기 때문에 기본적인 Least Square Method는 사용할 수 없다. 따라서 순간적으로 선형화한 함수에 대해서 파라미터를 업데이트하는 방식을 사용해야하는데 이는 재귀적으로 파라미터를 구하기 때문에 Recursive Least Square Method라고 불린다. n samnple에서의 파라미터값을 이라고할때 은 을 이용해서 표현할 수 있고 세부적인 업데이트 과정은 아래와 같이 표현될 수 있다. 







 하지만 이 방법 역시 역행렬을 계산하거나 나눗셈이 포함되어있는 등 계산양이 많다. 따라서 은닉뉴런이 많을수록 더 다양한 비선형 함수를 표현할 수 있는 인공신경망의 장점을 살리려면 계산양이 기하급수적으로 늘어나는데 이를 대처하기 위해서 다른 최적화 방법이 필요하다. 



1. Sensitivity Based Rule


  인공신경망의 학습에 간단한 계산을 통해 파라미터를 최적화할 수 있는 Sensitivity Based Rule이 주로 사용되고 있다. 기본 원리는 1880년대에 Cachy에 의해서 개발되었는데 1960년대 adaptive control분야의 MRAS에 사용된 후 인공망의 학습에 적용된건 1980년대에 이르러서이다. 


  MARS란 Model Reference Adaptive System의 약자로서  항공기 고도 제어에서 control parameter를 자동으로 update하기 위해서 사용되기 시작되었다. MRAS란 아래 그림과 같이 기준 모델이 존재하고 제어기와 플랜트의 합성 시스템이 기준모델과 같아지도록 파라미터를 변동시키는 알고리즘이다. 



  여기서 최적 파라미터를 찾아가는 방법이 바로 Sensitivity Based Rule인데 최대 혹은 최소로 하고싶은 값을 Cost function(J)로 잡은 뒤에 파라미터 도메인에서 cost function을 나타낸 후 각 파라미터에 대한 cost의 기울기가 점점 작아지도록 하는 방법이다. 이 알고리즘은 최적화 기법에서 많이 사용되고 있는데 다음 링크의 글이 동작 원리에 대해서 이해하기 쉽게 작성되어져 있다. (다크프로그래머- 최적화 기법의 직관적 이해) 식으로 표현하면 아래의 식과 같이 표현할 수 있다. 파라미터의 시간에 대한 기울기는 매 스텝마다 업데이트되는 파라미터의 크기를 의미하는데 이를 cost function (J)에 대한 각 파라미터의 기울기의 음의값과 비례한다. 




  이 부분에서 파라미터를 업데이트하기 위해서는 각 파라미터가 cost의 변화에 끼치는 영향을 계산해야되는데 그러기 위해서는 플랜트 모델을 알아야되기 때문에 plant모델을 아예 모르는 상태로는 본 알고리즘을 인공신경망의 파라미터를 찾는데에 이용할수 없다.


 





 








'Robotics > Machine Learning' 카테고리의 다른 글

인공신경망 학습 방법  (0) 2018.04.23
인공신경망 원리  (1) 2018.04.04
인공신경망 구조  (0) 2018.04.04
Gradient Descent Method with Matlab code  (1) 2017.10.31