박사과정의 선배님께 좋은 말씀을 들어서 이렇게 글을 올린다.


인공신경망도 종류가 여러가지인데 우리는 이것을 main이 되는 비선형 제어기 또는 main을 보조하는 보조제어기로써 사용할 수 있다. 이 비선형 제어기를 사용하여 비선형성이 강한 시스템을 학습을 통하여 제어를 가능하게 할 수 있다. 그런데 우리가 이를 사용하면서 주의하고 상기해야 할 점이 있다.


'인공신경망은 만능이 아니고 최선이 아니라 차선이다.'


무슨말인가 하면 인공신경망이라는 녀석은 무분별하게 쓸만한 기술이 아니라는 것이다. 무슨 문제가 해결이 안되면 '인공신경망을 쓰면 되지' 라는 안이한 판단을 내려서는 안될것이다. 이녀석을 쓰는것이 최선인 경우가 있고, 또는 어쩔 수 없이 차선책으로써 쓰는 경우가 있다는 것이다.


예를 들자면 패턴인식의 경우, 시간은 걸릴지 모르나 최초의 학습과정을 완료하면 이후의 패턴인식에서 다시 학습할 필요가 없거나 새로운 패턴을 입력시킬 때만 다시 학습해주면 된다. offline학습을 하여도 별 문제가 없다.


그렇다면 제어의 경우는 어떤가?

RBF를 실시간 보조제어기로 사용할 경우, 그냥 LMS의 역전파 알고리즘 보다는 빠르다고 하여도 역시 제어에 사용하기에는 연산량이 많을 수 밖에 없다. 필연적으로 고성능의 MCU가 필요하게 된다. 제어주기는 빠를수록  좋기 때문에 주기당 연산시간을 많이 차지하는 인공신경망은 그다지 제어에 알맞다고 할 수 없겠다. 기껏해야 뉴로퍼지 정도일까?


럼, 나름 장점은 있지만 연산량이라는 치명적인 단점을 가지는 인공신경망을 왜 쓰게될까?

굳이 답을 제시하자면 안써도 될것을 쓰게 만들었기 때문이라고 하고싶다. 무슨 말이냐면 선형화를 하면 충분할 시스템을 비선형성을 심하게 내포하게 설계하기 때문이다.

두바퀴 밸런싱 로봇을 예로 들어보자. 또는 역진자를 예로 들어보자. 이녀석들을 넘어지지 않게 제어하려면 시스템을 높이가 길게, 가로 세로폭을 좁게 만들고 무게중심을 시스템 상단에 위치시켜 최대한 단순하게, 선형화 모델에 적합하게 만들어야 한다. 이 때 선형화 식을 적용하기 쉽고 제어하기도 쉽다(실제 시스템이 이론을 따라갈 수 있다는 것이다) 그런데 이러한 설계를 간과하고 무게중심을 최하단에(모터가 굉장히 무겁고 프레임이 하단에 집중되어 있을 경우 이렇게 된다) 놓아버리면 어떻게 될까? 예를 들어 바퀴 중심 5센티 위에 무게중심이 있을경우 말이다. 선형화된 모델이 상상이 가는가? 이런 시스템은 설사 선형화를 하고 제어gain을 찾는다 하더라도 제대로 동작하기 힘들다. 결국 제어를 위해 필요한 요소들이 부적절하게 되고 안정성이 떨어지게 되어 억지로 인공신경망을 이용하여 제어를 하게 되는것이다.


결론을 들자면, 인공신경망이라는 녀석은 선형화된 설계를 잘 하면 굳이 필요하지는 않다는 것이다. 인공신경망 없이 제대로 제어할 수 없다면 그 시스템은 설계를 제대로 하지 않았다는 것이 된다. 그런고로 제어에 인공신경망을 썼다는 것은 결코 자랑할 만한 일이 아니다.

'지능제어' 카테고리의 다른 글

[잡담] 왜 인공신경망을 쓰는가/착각하는것  (0) 2014.12.29
RBF  (0) 2014.12.07
RBFN 링크  (0) 2014.12.04
RBF(Radial Basis Function) 신경망  (0) 2014.10.27
확률가우시안  (0) 2014.10.27
역전파 알고리즘(BackPropagation)  (0) 2014.10.27

+ Recent posts