인공신경망 학습 방법
인공신경망을 학습하는 방법은 두가지가 있는데 하나는 제어 루프 밖에서 학습을 하는 오프라인 학습과 제어루프 안에서 실시간으로 학습을 하는 온라인 학습이 있다. 본 포스팅에서는 두 학습방법의 차이점과 각각 어떤 시스템에 쓰이기에 적합한지 다루고자 한다.
0. 오프라인 학습
오프라인 학습이란 사전에 얻어진 데이터를 이용하여 인공신경망의 파라미터를 찾는 방법을 의미한다. 즉 주어진 데이터에 높은 자유도를 가져 유연한 구조를 가진 인공신경망을 피팅한다는 것을 의미하는데 이는 주로 선형 시스템으로 모델링이 불가능한 비선형 시스템을 모의하기 위해서 사용되어진다. 그 예시로 모터의 인덕턴스 변화 테이블을 인공신경망으로 대체하여 gain scheduling에 사용한다던지 영전류 근처의 데드타임 전압왜곡 테이블을 인공신경망으로 대체하여 보상하는데에 이용할 수 있다.
이를 위한 학습 시스템은 아래의 블락다이어 그램과 같다. 인공신경망의 입력변수는 테이블을 구성하는 입력변수와 동일하게 설정되며 같은 데이터 입력이 들어왔을때 출력을 비교하여 점차 차이가 작아지도록 인공신경망의 파라미터를 수정하는 학습방법을 의미한다. 학습 알고리즘은 파라미터 추정 알고리즘에서 다루었던 학습 방법중 하나를 사용하여 추정 출력 신호가 출력신호에 다다를때까지 학습이 진행된다.
인공신경망은 이론적으로 자유도만 충분하다면 어떤 비선형함수도 모의할 수 있기 때문에 테이블과 동일한 시스템을 모의하는것은 가능하다. 하지만 여기서 인공신경망이 제대로 학습될 수 있게 하려면 필요한 것은 일반화이다. 인공신경망의 단점은 주어진 테이블에만 완벽하게 피팅을 시키기 때문에 주어진 입력신호가 전체 운전영역을 다루고 있지 않은 경우 나머지 부분에 대해서는 모의하려는 시스템과 다른 결과를 낼 수 있다.
이는 인공신경망의 높은 자유도 때문에 오히려 테이블과 완벽하게 일치하는 솔루션의 종류가 여러가지가 나올 수 있어 그 중 하나를 gradient descent 의 경우 initial parameter와 가장 가까운 local minimum point에 있는 파라미터 조합으로 택하기 때문에 주어진 파라미터 내에서는 테이블과 동일할 수 있더라도 테이블 바깥에서 여분의 자유도에 대한 설정이 안되어있기 때문에 테이블 바깥의 운전영역에서까지 테이블과 동일하게 동작하도록 설정되지 않는다.
따라서 오프라인 학습시에는 학습하려는 테이블을 최대한 넓은 운전영역을 포괄하는 데이터를 이용해서 학습을 해야한다.
1. 온라인 학습
온라인 학습이란 구조는 적응제어기와 같이 실시간으로 제어 루프 내에 인공신경망을 위치시켜 놓고 학습시키는 것을 의미한다. 적응제어기와 같은 방식으로 학습 피드백까지 제어의 일종으로 생각하여 실시간으로 온도 변화나 인덕턴스 변화에 따라서 robust하게 대응할 수 있는 제어기로서 사용할수도 있으며 정답을 알고 있지 않는 상황속에서 다른 값들을 통해서 간접적으로 제어기 출력값을 이상적인 값이 출력되도록 학습을 하고 학습이 완료된 후엔 고정된 파라미터로 피드백 루프 없이 이용하는 방법도 있다.
전자의 온라인 학습(학습과 제어 동시)은 적응제어기의 한 종류인 MRAS(Model Reference Adaptive Control)를 통해서 살펴볼 수 있다. 적응제어기란 같은 입력신호에 대해서 이상적인 기준모델에 대해서 제어기와 플랜트를 통해 나온 출력이 같아지도록 제어기를 계속해서 업데이트하는 제어방식을 말한다. 이러한 제어기는 플랜트의 변화에 대응하기에 좋은데 초기에 기준모델과 같도록 세팅이 되었다고 하여도 플랜트의 파라미터가 변화한다면 플랜트의 출력신호가 이상적 출력신호와 차이가 생길것이고 그 차이를 반영하여 제어기가 업데이트 되어 변화된 플랜트에 적응을 하게 된다.
이러한 방식의 온라인 학습방법은 두가지 위험성을 지니고 있다. 첫째는 제어가 수행되고 있는 도중에 피드백이 수없이 이루어 지며 파라미터의 값이 계속해서 변하기 때문에 안정성 문제가 생길 수 있다. 일반적으로 제어기는 안정도 분석이 수행된 뒤에야 사용될 수 있는데 인공신경망제어기의 경우에는 은닉뉴런의 비선형성과 활성화에 따라 시스템이 가변하기 때문에 안정도 분석이 용의하지 않다 특히나 모든 피드백 루프에 대해서 안정도 분석을 하는것은 (거의)불가능하기 때문에 실제로 사용되기 어렵다. 둘째는 파라미터의 변동이 입력신호에서 관측하기 어려운 경우에 파라미터 학습 알고리즘이 cost map상에서 local minimum에 빠져서 진동한다.
후자의 온라인 학습(학습 -> 제어-> 학습 -> 제어)은 한 학습 trajectory동안의 데이터를 취득한 뒤에 취득한 데이터를 이용해서 인공신경망을 한번에 업데이트하고 다시 고정된 파라미터로 입력 trajectory에 대해 제어를 수행한 뒤에 나오는 데이터를 취득해서 업데이트하는 방식이다. 이 경우에는 안정도 분석을 할때 루프가 존재하지 않기 때문에 가변시스템의 안정도 분석을 하기 어렵다는 점을 제외하고 전자의 경우보다 안정도 분석이 용이하다.
이 경우에는 운영되는 모든 구간에서의 activation되는 조합을 찾은 뒤 각 조합에서 안정도 분석을 하는 방법을 사용하면 순간적인 안정도는 찾아낼 수 있다. 또한 이 경우에 플랜트의 변동이 입력신호에서 관측이 불가능하다고 하더라도 평균적으로 변화를 감내하는 최적의 결과를 찾아내기 때문에 local minimum에 빠져서 진동하는 문제가 발생하지 않는다.
'Robotics > Machine Learning' 카테고리의 다른 글
인공신경망 파라미터 추정 알고리즘 (0) | 2018.04.19 |
---|---|
인공신경망 원리 (1) | 2018.04.04 |
인공신경망 구조 (0) | 2018.04.04 |
Gradient Descent Method with Matlab code (1) | 2017.10.31 |