Dynamics Model로 무엇을 할 수 있을까?
Dynamics Model로 무엇을 할 수 있을까?
A system architecture for autonomous intelligence. [출처: A Path Towards Autonomous MAchine Intelligence]
소개
딥러닝의 탄생에 기여한 공로로 2018년 튜링 상을 받은 Yann LeCun 뉴욕대학교 교수가 얼마전 재미있는 글을 공개했습니다. A Path Towards Autonomous Machine Intelligence란 글에서 그는 인간이나 동물이 자신이 살고있는 세상이 어떻게 동작하는지를 관찰과 행동의 상호작용을 통해 배우고 있다고 보았습니다. 이렇게 배운 World Model은 뇌 속에서 일종의 시뮬레이션 역할을 해주면서 인간이나 동물이 새로운 스킬을 적은 시행착오로 배울 수 있게 해준다는 것이죠. Yann LeCun 교수는 위 문서에서 World Model을 포함한 다음 세대 인공지능의 방향성을 제시했지만, 사실 World Model은 새로운 개념이 아닙니다. 2018년에 David Ha와 Jürgen Schmidhuber 교수가 쓴 동명의 논문으로 유명한 World Model이나 System Identification, Deep Dynamics Model과 같은 이름으로 불리며 Model Predictive Control (MPC)과 Model-based Reinforcement Learning (RL)을 통한 제어 문제에 많이 활용되어 왔습니다.
마키나락스에서는 (Learnable) Dynamics Model이라는 이름으로 제어나 인공지능 문제를 푸는데 활용하고 있습니다. 차량 공조시스템(HAVC) 제어 최적화가 대표적인 Use case인데요. 이 글에서는 외부의 사례를 통해 Dynamics Model을 소개해보려고 합니다.
구글 데이터 센터
2018년 구글은 최고의 인공지능 학회중 하나인 NeurIPS에 데이터 센터의 냉각 시스템을 위한 Model Predictive Control (MPC) 방법을 발표했습니다. 먼저 팬 속도와 냉각수 밸브 조절을 제어 변수로, 여러 공기압 및 온도 관련 센서를 상태 변수로 두었습니다. 또한 서버의 전력 소모량과 같이, 제어할 수 있는 대상은 아니지만 실제 상태 변수에 영향을 줄 수 있는 외란 변수(disturbance)도 두었습니다.
여기서 Dynamics Model은 이전 시간(150초) 동안의 상태 변수, 제어 변수, 외란 변수가 주어지면 30초 뒤의 상태 변수를 예측도록 설계되었습니다. 다시 말하면 과거 150초 정도 동안 데이터 센터의 공기압과 온도, 전력 소모량에 이를 제어하기 위한 팬 속도나 냉각수 밸브 조절의 히스토리가 주어지면 30초 뒤의 공기압과 온도를 예측하는 모델입니다. 이 모델을 통해 어떻게 제어해야 원하는 공기압과 온도를 달성 할 수 있을지를 찾는 것이죠. 이렇게 내가 어떻게 제어 하느냐에 따라 미래의 상태가 어떻게 바뀔지 알 수 있기 때문에 Dynamics Model을 통한 제어가 가능합니다.
주목할만한 점은 여기서 사용한 Dynamics Model은 복잡한 딥러닝 모델이 아닌 선형 모델이었다는 점입니다. 실제 데이터 센터 내 공기의 Dynamics는 비선형이기 때문에 선형 모델은 정확한 모델이라고 말 할 수는 없지만, 180초 정도 동안의 시간 동안의 정보를 이용해 제어를 하기에는 충분 했다는 점이 인상 깊습니다. 또한 PID를 이용한 기존 데이터를 활용하지 않고 random exploration 으로 데이터를 만들어가며 학습 했다는 점도 재밌습니다.
SimGAN
Dynamics Model이 활발히 연구되는 분야를 꼽으라면 아마 로봇을 빼놓을 수 없을 겁니다. 2021년 로봇공학 최고의 학회 중 하나인 ICRA에 SimGAN이라는 기술을 공개했습니다. 이 논문은 Generative Adversarial Networks (GAN)을 응용했는데요. GAN은 가짜 데이터를 생성해내는 생성기(Generator)와 진짜와 가짜 데이터를 구분하는 구분기(Discriminator)로 이루어져있습니다. 구분기는 가짜와 진짜를 잘 구분하려고 하고, 생성기는 구분기가 못 맞출 정도로 진짜와 비슷한 가짜 데이터를 생성해내려는 적대적 관계를 가지고 학습하기때문에 적대적(Adversarial)이라고 하죠.
이 GAN이 Dynamics Model과 무슨 상관일까요? 사실 Dynamics Model은 일종의 시뮬레이터입니다. 전통적인 시뮬레이터는 로봇의 움직임을 물리방정식으로 계산해내죠. 시뮬레이터를 이전 상태와 제어 변수가 주어지면 다음 상태를 생성해주는 생성기로 본다면, 그대로 GAN을 이용해 학습해볼 수 있을 것 같지 않나요? GAN으로 생성된 사진을 실제 사진과 구분하기 힘든 것처럼, SimGAN으로 학습된 시뮬레이터는 물리방정식만 사용한 전통적인 시뮬레이터에 비해 실제 로봇의 Dynamics와 큰 차이가 없을 겁니다. 바꿔 말하면 sim-to-real gap을 줄여주는 것으로, 이것은 Dynamics Model을 사용했을때 이점이기도 합니다.
하이브리드 모델
SimGAN은 단순히 학습가능한 Dynamics Model 시뮬레이터를 사용했다는 것 외에 주목할만한 장점이 하나 더 있습니다. 바로 단순히 머신러닝, 딥러닝 모델만 사용한 것이 아닌, 물리방정식과 결합한 하이브리드 모델이라는 것 입니다. 물리방정식만 사용한 전통적인 시뮬레이터의 장점은 아무래도 범용적이라는 것일 겁니다. 완전히 데이터를 통해 만들어진 시뮬레이터는 데이터가 수집된 환경 이외의 환경에서는 잘 동작한다는 보장을 하기가 어렵습니다.
예를 들어 한 데이터 센터에서 얻어진 데이터로 학습한 Dynamics Model은 다른 데이터 센터와 비교하면 서버의 배치나 공기의 흐름이 다를 수 있기 때문에 그대로 사용하기 어렵겠죠. 또, 작은 로봇에서 얻어진 데이터는 큰 로봇의 그것과 또 다를 겁니다. 반대로 열역학 방정식이나, 운동 방정식은 데이터 센터나 로봇이 바뀐다고 해서 달라지는 것들이 아니죠. 하지만 물리 방정식이 늘 완벽한 것은 아닙니다. 어떤 것들은 파라미터를 엔지니어가 직접 찾아서 넣어줘야하죠.
마찰과 반발 계수와 같은 접촉 파라미터나 모터 이득과 같은 모터 파라미터가 그 예입니다. 이러한 파라미터들이 하나로 고정되지 않고 주어진 현재 상태에 의존적이도록 학습가능한 신경망 (Learnable Neural Networks)을 이용하는 것이 SimGAN의 전략이었습니다. 이러한 파라미터들은 sim-to-real gap의 주요 원인이기 때문에 데이터를 이용한 Dynamics Model로 대체하면서 sim-to-real gap을 극복하게 했죠. 뿐만 아니라 물리 방정식을 사용했기 때문에 약간의 finetuning 만으로 로봇의 다리를 무겁게 하거나 바닥의 환경을 바꿨을때도 잘 동작하는 범용성을 보여줬다고 합니다.
기타 사례: 재료 과학
앞서 살펴본 공조 제어나 로봇 제어 외에도 데이터를 이용해 시뮬레이터를 대체하는 분야면 Dynamics Model의 사용을 고려해볼 수 있습니다. 대표적으로는 재료 과학을 예로 들 수 있을 것 같습니다. 재료 과학에서도 전통적인 물리방정식을 사용한 시뮬레이터를 이용해 재료 설계를 하곤 합니다. 특히, 원자 수준의 계산이 필요할때 주로 사용하는 Density Functional Theory (DFT)가 대표적이죠. DFT를 완전히 데이터만 사용해서 대체한 모델로 2017년에 ICML에 발표된 Neural Message Passing 모델이나 인공 뉴런의 오퍼레이션(operation)을 원자의 물리적 성질을 이용해 구현한 일종의 하이브리드 모델인 Cormorant (2019년 NeurIPS에 발표되었음), 계산 복잡도와 정확도가 높은 시뮬레이터와 그렇지 않은 시뮬레이터의 차이를 모델링하는 하이브리드 방법 Δ-ML Ansatz 등을 예로 꼽을 수 있습니다.
마치며
여기까지 Learnable Dynamics Model을 이용한 사례들을 간단하게 설명해 보았습니다. 첫번째 데이터 센터의 냉각 시스템 예시에서는 전통적인 PID제어 데이터를 전혀 활용하지 않고 스스로 제어하면서 데이터를 추출하고 Dynamics Model을 학습 했습니다. 두번째 로봇 제어 연구에서는 물리방정식과 GAN을 사용해 적은 데이터로도 좋은 범용적 성능을 보여줬구요. 이 예시들은 모두 실제 데이터를 사용했기 때문에 기존 시뮬레이터를 사용한 방식의 문제점인 sim-to-real gap을 줄일 수 있었습니다. 또한 PID나 물리방정식을 사용할때 발생하는 파라미터 튜닝 문제도 data-driven으로 해결할 수 있었습니다. 그래서 사람이 직접 튜닝했을때 보다 더 좋은 성능을 기대할 수 있죠.
이 글에서는 Dynamics Model의 외부 사례를 통해 그 역할과 가능성을 소개했는데요. 마키나락스 역시 이런 Dynamics Model의 장점을 이용해 다양한 프로젝트에 적용해보고 있습니다. 앞으로 다양한 채널을 통해 마키나락스의 실적용 사례들을 소개해드릴 기회가 있으면 좋겠습니다.
» 이 글은 마키나락스 미디엄에 게재된 포스팅으로 원문은 여기서 확인하실 수 있습니다.