Deep Reinforcement Learning - Biped Robot Locomotion with Proximal Policy Optimization

강화학습 클래스 프로젝트 정리


기계공학과 전기공학을 전공하다보니, 사실 CS에서 전문적으로 하는 일들에 대해서는 잘 모른다. 하지만 워낙 로보틱스 분야에서도 강화학습이 hot하다보니, 클래스 프로젝트로 지난 학기에 진행했었다. CS 전공이 아니기에 Proximal Policy Optimization (PPO)의 알고리즘은 전적으로 OpenAI에 의지를 했다. PPO가 이제는 강화학습에서 out of date (?) 되는 느낌이다. (J. Schulman, F. Wolski, P. Dhariwal, A. Radford, and O. Klimov, “Proximal policy
optimization algorithms.”) 이 분야는 새로운 논문이 업데이트되는 속도가... 너무 빠르다... 너무 너무 빠르다. 여튼 PPO의 가장 핵심은 아래 그림이 아닐까한다.

Plots for single time step of the surrogate objective functionLCLIPas a function ofthe probability ratio r, for positive advantage function (left) and negative advantage function(right).  The red circle on each plot presents the starting point of the optimization. 
clipping으로 간단하게 policy의 destructive update을 막는다는 개념으로 policy gradient method를 사용하는 것이다. 물론 PPO 코드를 디버깅하고, 재생산하는 것보다는 모델링하는 데 시간을 많이 사용했던 것 같다.


대략 위와 같은 프로세스로 진행했다. MuJoCo physics engine이 워낙 openAI 코드들이랑 fit이 잘 맞아서 사용했고, URDF에서 MJCF 컴파일하고 physical parameters를 수정하는 것이 정말 일이었다. 그 physical parameter modeling이 결국 강화학습에 승패를 좌우하는 것 같다. 내가 정의하는 reinforcement learning의 정의는 딱 한 문장으로 이거다.

"Deep reinforcement learning is currently expected to improve the process of developing the complex locomotion behavior of robots without human intervention"

하지만 어느 순간 human intervention이 엄청나게 요구하는 느낌이다.



대략적으로 모델링 -> 데이터 셋 생산 -> 시뮬레이션 확인 -> 다시 모델링 ... 이렇게 끊임없이 human intervention하게 만든다. 당분간은 DRL은 강의랑 논문 좀 보면서 캐치업하고.. 코드보면서 놀아야지 싶다.

결과는 대략 잘 걷는다.
하지만 sim-to-real에서 realization은 시간이 너무 소요되서 못하겠고... 어차피 이제 졸업해서 못하지만...

재밌었던 클래스 프로젝트였던 것 같다.


Comments

Popular posts from this blog

Quaternion Base

Arduino MCU Register ATmega328P

AVR for Arduino/Atmel MCU