본문 바로가기
공부/인공지능

[소개] DeepMimic - 사람처럼 움직이도록 학습하기

by 죠옹 2018. 10. 1.

 최근, 연구실 친구와 같이 공부를 하고 있는데, 이 연구회는 강화학습, 그 중에서도 사람의 움직임을 학습하기 위함에 초점을 두고 있다. 이 친구의 목표는 간단한 추가 정보를 이용해서 사람의 움직임의 특징을 포착하는 network의 학습인데, 참고가 되는 논문들이 많다.


 가장 최근에 간단한 방법을 통해 사람과 비슷한 행동을 뉴럴네트워크에 학습시킨 알고리즘이 있다. 그 이름은 DeepMimic. 홈페이지에 그 결과와 방법에 대해 자세히 적혀있다. 이를 토대로 간단히 요약해 본다.

 주소: https://bair.berkeley.edu/blog/2018/04/10/virtual-stuntman/


 사람의 움직임을 익히도록 뉴럴 네트워크를 학습하는 방법은 예전부터 많이 있었다. 이 방법은 몸의 중심의 위치, 앞으로 이동한 거리 등의 보상을 주어 네트워크를 학습시키는데, 이 보상치가 사람의 직관에 따른다는 단점이 있었다. 또한 이렇게 완성된 학습 결과는 앞으로 걷거나 점프를 하긴 하는데, 그 움직임이 사람과 많이 달라 우스꽝스런 모습을 연출하기도 했다.


 DeepMimic은 모션 캡처로 취득한 사람의 움직임에 따르도록 학습시키는 방법을 통해 더욱 사람처럼 움직일 수 있게 하였다. 또한, 그 방법이 매우 간단한 것이 장점이다.

 DeepMimic 학습의 결과로 얻는 network는 가상환경 속에서 사람의 Dynamics를 얻는 것이다. 사람 움직임의 Dynamics를 컴퓨터 상에서 재현하는 방법에는 수식 기반 algorithm이 있고, motion capture 기반 dynamics도 있을 것이다. 허나, 둘 다 하려는 행위에 비해 많은 관절을 지닌 인간의 행동을 재현하기에는 힘이 들었다(excessive movement of limbs). 또, 수식 기반 algorithm은 model별로 계산을 짜기에 복잡하고, 모션 캡처는 매번 해당 모션을 취득해야만 했다. 정말로 "걷는다"라는 Dynamics를 학습하기는 힘이 들었던 것이다. 왜냐면 걷는 것의 본질이란 복잡하기 때문에.. 그래서 neural network가 등장한다. 기존, 복잡해서 잘 풀리지 않는 문제들에는 하나하나 neural network가 도입되어 성과를 내고 있다. 점점 복잡한 문제를 풀기 위한 하나의 방법으로 이용되는 것 같다.


 DeepMimic은 Proximal Policy Optimization Algorithm, 줄여서 PPO 라고 불리우는 알고리즘을 사용한다.

 강화학습은 주어진 환경으로부터 어떠한 행동을 이끌어낼지 학습하는 것이 목표인데, 이 때 [(환경, 액션)➡보상]으로 연결되는 network를 학습시키는 Value-based 학습과, [환경➡액션]으로 연결되는 network를 학습시키는 Policy-based 학습이 있다. 전자는 가장 높은 값을 위한 액션을 선택하는 방법을 취하는데, 보상을 중심으로 학습시키므로, 액션이 천천히 학습되는 것이 아니라 휙휙 바뀔 수 있는 단점이 있어, 사람의 움직임을 학습 시키는데 적합하지 않다고 한다.

 그래서 Policy-based 강화학습을 이용하는데, PPO는 가장 최신 버전의 방법이고, 구현과 결과에 있어서 시리즈 중 가장 좋다는 평이 있다[시리즈: Policy Gradient ➡ Trust Region(TRPO) ➡ Proximal Policy(PPO)].


 추가로 두 가지 옵션을 더 이용한다. 하나는 Reference State Initialization(RSI), 또 하나는 Early Termination(ET)이다.

 먼저, RSI는 학습의 초기 조건을 0에서 시작하지 않고, Random하게 주자는 것이다. 배우고자 하는 동작을 처음부터만 교육시키면 전체 동작을 배우는 속도가 느리고, 배울 수 있을지 없을지도 불확실하다는 것이다. 예를 들어, 사람도 어려운 연속동작을 배울 때는 한 동작씩 끊어서 배우는 것이 쉽다. 네트워크도 마찬가지이다. 이는 모션캡처에서 취득한 참고 모션이 있기에 가능한데, 시작 지점을 Random한 위치로 잡아서 교육을 시키면, 마치 동작을 나누어서 배우는 것과 같은 효과를 얻게 되고, 이들의 조합으로 연속 동작을 빠르게 익힐 수 있다는 것이다.

 또 하나, ET는 빨리 학습을 종료 시키는 것을 뜻한다. 언제 끝내는가 하면, 이상함이 느껴지면 바로 학습을 끊는 것이다. 이는 기존 강화학습에서도 이용되던 방법이므로 아주 특별한 방법은 아니다. 여기서 이상함이란 예를 들면 무릎이 땅에 닿거나 애가 넘어지거나 하는 실패한 동작을 감지했을 때를 뜻한다. ET를 넣지 않으면 성공하기 힘든 이상한 습관을 학습해버려서 애가 흉내는 내는데 똑바로 서질 못한다.


 저자들은 추가로 Target을 도입하여 그에 해당하는 Reward를 학습에 추가로 이용하므로써 network가 익힌 Dynamics가 Target을 향하거나, Target을 발로 차거나 하는 식으로 이용 가능하다는 것을 보인다. 정말로 움직임에 대한 본질, 그 자체로써 사용 가능할 수 있다는 가능성을 보여준다.

 또, 여러 기술에 대한 network를 묶어, 정해진 target을 위한 가장 높은 reward를 낼 수 있는 network를 이용하는 방법도 고안하였다(Composite policy). 이를 통해 왼쪽으로 점프할 땐 손을 안 짚고 회전을 하다가도 오른쪽으로 점프할 땐 손을 짚고 회전을 하기도 한다.


 간단하게 말하자면 가상환경 속에서 구현된 신체가 익혀야 하는 Dynamics란 무엇인가? 이 Dynamics는 어떻게 이용될 수 있는가? 에 대한 연구 결과라고 볼 수 있다. 다양한 사례를 통해 Dynamics를 습득할 수 있고, 이용할 수 있다는 것은 알게 되었으나 이 Dynamics가 과연 어디까지 표현하고 있는가에 대한 깊은 이해를 하기엔 network는 너무 복잡하다.


 Network가 포착한 dynamics(걷기, 달리기, 회전하기, 돌려차기 등등..)가 무엇인지, 어디까지 가능한지에 대한 후속연구가 기대된다.

반응형

댓글