졸업 논문 작성을 위한 두번째 논문 리뷰이다. 내가 하려던 주제와 비슷한 주제의 논문을 드디어 찾아서, 제대로 리뷰해보려 한다.
AirSim 환경에서 DQN과 Reinforcement Learning을 활용한 튜토리얼 내용은 다음 링크에 설명되어있다.
https://jjuke-brain.tistory.com/56
첫 영어 논문 리뷰이므로, 어색하더라도 이해를 바란다.
논문 링크는 아래에 첨부하며, 저자의 github에 프로젝트 파일들이 올라와있다.
https://github.com/tianqi-wang1996/Airsim_imitation-reinforcement-learning
0. Abstract, Conclusion
1) Abstract
자율주행 task를 위한 학습 pipeline에서는 현재 시점의 카메라 이미지와 자동차의 속도를 input으로 받아 엑셀, 브레이크, 조향 제어의 output을 낸다.
AirSim을 통해 다양한 날씨와 조도에서 학습을 시켜 agent가 환경 변화에 강건하도록 해줄 수 있다.
가능한 policy의 성능을 제한시키지 않기 위해서 연속적이고 결정적인 control policy를 설정하였다.
ResNet-34의 fully connected layer를 조금 변경한 모델을 Actor-critic network로 사용하여 진행하였다.
자율주행은 매우 복잡한 task이므로 Imitation learning을 사용하여 사람의 policy를 모방하여 훈련시킨 이후에 DDPG 방식을 사용하여 그 Policy와 Weights를 RL에 적용시켰다.
이와 같은 방법으로 pure imitation learning과 pure DDPG를 사용하는 것에 비해 큰 성능 향상을 보였다.
2) Conclusion
본 논문에서는 IL(Imitation Learning)로부터 사전에 훈련한 weight를 사용하여 DDPG 알고리즘을 수정하는 방식으로 imitation learning과 reinforcement learning을 결합하는 방법론을 제시하였다.
다양한 환경에서 학습을 진행함으로써 Agent가 IL에서 생성된 Policy보다 강건하고 성능이 좋은 주행 Policy를 갖게 되었다.
자율주행에서 사람들은 어떤 입력 이미지에 기반해 운전을 상대적으로 잘하므로, 사람의 가이던스(guidance)를 RL의 보상으로 활용함으로써 자율주행이라는 task를 잘 수행함을 보였다.
1. Introduction
자율주행 또는 비행에서 카메라, 차량의 속도나 가속도 등의 데이터로 제어 decision을 하는 것에 대한 연구가 활발히 진행되고 있다.
최근 딥러닝과 강화학습이 발전하면서 이 두가지 방법론을 사용하여 task를 수행하는 경우가 많다.
고차원 이미지를 다룰 때 Convolutional Neural Nerwork를 이용하곤 하는데, Robotics 분야에서 많이 사용하는 CNN 모델은 ResNet[2], VGG-Net[10], R-CNN[11] 등이 있다.
이러한 CNN 모델들은 task를 해결하는 것 뿐만 아니라 feature extractor라는 특성 덕분에 다른 task를 다룰 수도 있다는 것이 입증되었다.
카메라의 이미지 입력에 따라 운전하는 것은 상대적으로 사람들이 잘한다. 따라서 Imitation Learning을 활용하는 것이 더 좋은 성능을 낼 것이다.
하지만, Possible Policy Performance의 한계와 본 적 없는 상황에 대한 generalizability의 부족 문제 때문에 자율주행 task에 IL을 적용하는 경우는 많지 않았다.
대신 연구자들은 시뮬레이터에서 RL을 사용하여 학습시킨 policy를 실제로 옮기는 연구들을 진행하였다. 강화학습은 학습된 policy 성능에 대한 제한이 없고, reward function 설계, state와 action space에 대한 exploration coverage에 크게 의존하기 때문이다.
그런데 pure RL(기존 강화학습)의 경우, state와 action space가 매우 커지게 되면(자율주행 등에서와 같이) 충분한 양의 interaction experience를 받지 못하게 되고, 학습 과정이 발산해버리게 된다.
놀랍게도 IL과 RL을 결합시켜 두 방법의 장점을 이용한 image-based 자율주행 task를 연구한 사례는 많지 않다.
2. Related Work
1) Image-based autonomous driving and navigation
이미지에 기반한 자율주행 task 중에는 딥러닝 모델이 end-to-end 스타일로 학습되는 경우가 있다.
어떤 연구에서는 라벨된 데이터를 통한 Supervised Learning (Imitation Learning으로 불리기도 한다.) 을 적용하고[5], 다른 연구에서는 환경과 상호작용하는 Reinforcement Learning[4, 7, 8, 9]과 샘플링된 reward가 특정 state에서의 특정 action이 얼마나 좋거나 나쁜지 알려주는 방식을 사용한다.
Supervised Learning에서는 다양한 환경에 대한 충분한 데이터를 수집하는 데 어려움을 겪는다. 이러한 상황을 극복하기 위해 random cropping, drifting, lighting change 등의 data augmentation을 진행하거나 학습 과정에서 날씨나 조도, object들의 종류나 질감등의 환경을 랜덤으로 설정한다.
저자는 드론의 왼쪽, 가운데, 오른쪽에 카메라를 달아 항상 드론이 앞을 보도록 했고, 좌, 중앙, 우측 카메라에서 수집된 이미지를 각각 'go right', 'go straight', 'go left'로 라벨링하였다. 하지만 이렇게 간단한 제어 policy 설정 때문에 possible performance가 제한되었다.
Reinforcement Learning에서 또한 학습 환경을 랜덤으로 설정하는 것이 robustness와 학습된 policy의 성능에 크게 영향을 주었다. 또한 agent가 환경과의 상호작용으로부터 중요한 정보를 추출하게 하려면 적절한 reward function의 설계가 매우 중요하다.
자율주행 task에서는 reward function에서 가장 중요한 요소는 바로 가장 가까운 obstacle과의 거리이다. [4]
2) CNN networks for robotic vision
카메라 이미지에 기반한 자율주행도 Robotic Vision 기술을 사용한다.
어떤 연구에서는 ResNet, VGGNet, R-CNN등 이미 존재하는 architecture에 더 유용한 정보를 뽑아내기 위해 결합 모듈을 사용하기도 한다. 예를 들어 attention module[12, 13, 14]이 있다.
attention module은 channel (RGB) attention part와 spatial (pixel coordinate) attention part로 나뉘는데, 각각 특정 채널과 공간을 더 강조한다.
인간이 운전할 때를 생각해보면, 입력된 이미지 전체가 아닌 특정 부분에 신경을 많이 쓰는데 이러한 과정을 attention module로 구현할 수 있을 것이다.
3) Reinforcement learning for deterministic and continuous policy
자율주행에서 바람직하지 않은 선택에 대한 끔찍한 결과를 고려해본다면, policy는 분명히 deterministic해야할 것이다.
그리고 [4, 5, 8, 9] 논문에서는 possible action을 discretized하게 정의하였는데, 이는 possible performance를 매우 제한적으로 만든다. 이상적으로, 실제 운전을 생각해본다면 continuous policy로 설정하는 것이 맞을 것이다.
이러한 Deterministic, continuous policy 기반의 강화학습을 위해서는 DDPG[3]라는 방법이 가장 널리 사용되는 알고리즘이다. 하지만 이 알고리즘은 자율주행같이 복잡한 task에서는 수렴하지 않거나, 학습 시간이 매우 오래걸린다는 단점이 있다.
이에 따라 Imitation Learning과의 결합이 필요해진다.
4) Two ways to combine imitation learning with reinforcement learning
가장 자연스럽고 직접적인 아이디어는 pre-training과 fine-tuning일 것이다. 이는 fine-tuning을 진행하기 위해 사전에 학습된 weight들을 강화학습에서의 initial weight로 사용하는 것을 말한다.
다른 방법은 'hybrid objective'를 사용하는 것이다. 강화학습이 진행되는 동안 강화학습 관련 component들중 하나를 모방학습과 연관시키는 것이다.
효율성과 간단함을 위해 본 논문에서는 첫 번째 방법을 사용하였다.
3. Proposed Method
주행 시 사람의 Policy가 환경 변화에 매우 강건하고, 주어진 현재의 이미지에 대해 운전하는 데 매우 탁월하므로, 사람의 운전 policy를 supervision signal로 설정하는 imitation learning이 reinforcement learning의 순차적인 단계에서 상대적으로 좋은 initial policy를 만들 것이다.
이로써 기존의 RL 방식보다 학습 시간을 줄이고, 학습 과정을 안정화하고, 더 좋은 결과를 낼 수 있다.
또한 앞서 언급한 이유로 policy는 deterministic, continuous하게 설정한다.
1) Imitation learning
IL에서 좋은 초기 policy를 생성하기 위해서는 supervising에 사용될 데이터셋이 다양한 상황을 충분히 담고 있어야 한다는 것이다.
예를 들어, 데이터셋에는 '앞 공간이 비어있는 경우 직진하고 가속', '충돌을 피하기 위해 조향', '날씨와 조도에 따라 다른 코너링' 등의 데이터가 필요하다.
supervising dataset이 얼마나 많은 상황을 explore하는가가 적용된 policy의 성능 및 일반화에 중요한 역할을 할 것이다.
AirSim API를 사용하여 차를 제어하고 데이터를 기록하는 데 Xbox 컨트롤러를 사용하였다.
조건에 따른 data 개수의 balance를 위해 각 조건에 따라 몇 개의 데이터를 생성할 것인지 미리 정해두었다.
사람의 운전을 생각해보면, 사람들은 시야로 얻는 이미지 이외에도 배경이 얼마나 빠르게 지나가는지(recent consequent input images)를 통해 차량의 속도를 예측하여 운전한다.
이를 구현하기 위해 현재 이미지와 차량의 속도를 현재 state에 입력으로 주었다.
엑셀(throttle)과 브레이크는 작동 여부에 따라 0에서 1사이의 값으로, 조향은 제어 결과에 따라 -1에서 1 사이의 값으로 설정하였다.
imitation learning 단계에서 사용한 loss function은 'Huber Loss Function'이다.
Huber loss는 L1 loss와 L2 loss의 결합으로 볼 수 있는데, outlier의 영향을 덜 받고 MSE에 비해 결과적으로 학습 과정에서 더 안정적이다.
2) Network architecture
위 그림에서와 같이, Actor Network와 Critic Network 모두에서 ResNet-34를 backbone 구조를 사용하였는데, fully connected layer에서만 조금의 차이를 보인다. 이는 input 차원이 다르기 때문이다.
ResNet-34의 Average Pooling Layer 이후 두 네트워크 모두 세가지 fully connected layer를 추가하였다. ResNet-34의 Average Pooling Layer의 출력과 Velocity Input이 합해지는데, 이는 마치 input image의 extracted feature같아 보인다.
또한 throttle, brake, steering 중 고른 action이 critic network의 마지막 FCL에 합쳐진다. 이는 Critic Network만 Action Input을 포함하기 때문이다.
그리고, ResNet-34, ResNet-50과 함께 SE(Squeeze-Excitation Module) [12], BAM(Bottleneck Attention Module) [13], CBAM(Convolutional Block Attention Module) 등 channel이나 공간적 attention을 강조해주는 여러 attention module들을 사용했다.
하지만 모델의 최종적인 성능을 보면 간단하고 가벼운 ResNet-34가 눈에 띄게 우수한 성능을 보인다. 그 결과는 아래와 같다.
이에 따라 actor, critic network 모두에 ResNet-34 아키텍쳐를 사용하였다.
3) Reinforcement learning for performance boost
Imitation Learning의 명백한 단점은 어떤 경우에는 정확한 가이던스(expert guidance)가 어려울 수 있고, 심지어 학습된 policy가 expert의 가이던스보다 정확할 수 있다.
이때 Reinforcement Learning을 사용하면 exploration과 exploitation을 적절히 사용하면서 possible performance의 한계를 없애준다.
하지만 앞서 보았듯이, 기존의 RL은 거대한 state와 action space에서 불필요한 exploration을 하거나, 학습 시간이 너무 오래걸린다.
따라서 Imitation Learning과 Reinforcement Learning을 결합하는 것이 효율적일 것이다.
실제 정답을 알려주어야 하는 Supervised Learning이나 Imitation Learning과 달리, RL에서는 supervision signal로서 간단히 이전 state에서의 이전 action에 대한 Reward를 부여하면 된다.
따라서 Reward function의 선택이 학습된 agent의 성능에 매우 큰 영향을 준다.
본 논문에서는 가장 가까운 obstacle(도로의 가장자리 포함)로부터의 거리와 현재 차량의 속도를 component로 고려하여 reward function을 구성하였다. 이로써 obstacle로부터 거리를 유지하고 빠르게 운전하면 높은 reward를 얻게 된다.
Reward function은 아래와 같이 구성하였다.
\(d_\theta\), \(v_\theta\)는 obstacle들로부터의 거리와 차량의 속도의 이상적인 값을 결정하는 threshold 값이다.
\(\lambda_d\), \(\lambda_v\)는 reward의 weight이다.
본 논문에서는 \(d_\theta\) = 3.5 m, \(v_\theta\) = 20m/s, \(\lambda_d = \lambda_v = 0.5\)로 값을 부여하였다.
Continuous, Deterministic policy로 설정하였으므로, 이 설정에 가장 인기있는 RL 알고리즘인 DDPG(Deep Deterministic Policy Gradient) [3] 방식을 사용하였다.
하지만, Imitation Learning을 DDPG와 결합하기 위해 기존의 DDPG알고리즘을 변형시켜야 했다.
- actor, critic network의 초기 weight값에 대해, 사전에 학습된 weight들을 부여하였다. 이때 Imitation Learning에서 생성된 actor network의 마지막 fully connected layer는 제외시킨다.
- IL에서 쓰인 actor network와 RL에서 쓰인 network는 같은 아키텍쳐인데 반해 critic network의 마지막 fully connected layer의 형태는 다르다. 사실 사전 학습된 actor network의 모든 weight를 DDPG에서 사용되는 actor network에 사용할 수 있고, 마지막 fully connected layer만 제외하면 critic network에서도 사용할 수 있다. 하지만, 기존의 DDPG에서 actor와 critic이 동시에 업데이트되면서 더 좋은 weight를 갖게 되고, 위와 같이 사용하게 되면 out-of-sync problem이 발생하여 학습 과정이 발산하게 됨을 발견했다. 이에 더해서 모든 convolutional layer들을 freeze시켜 학습을 안정화하고 학습 시간을 단축시켰다.
- 실험 시에 먼저 IL에서 생성한 policy로 수집된 샘플을 먼저 사용하고, 이것을 실험에 사용하여 먼저 value loss와 policy loss가 수렴할 때까지 actor, critic network들을 훈련한다. 그 후에 DDPG로 업데이트된 actor network로부터 수집하는 새로운 실험을 수행하고, actor 및 critic network들을 반복적으로 갱신한다.
- 기존 DDPG에서는 OU(Ornstein-Uhlenbeck) noise를 사용하는데, 이는 특히 학습 과정 초기에 state, action space에 대해 더 많은 exploration을 수행하는 데 쓰인다. 그리고 OU noise의 효과는 학습 과정이 진행됨에 따라 점진적으로 0에 가까워진다. 우리의 경우에는 IL에서 생성한 policy가 이미 환경에 대해 좋고 나쁜 경험들에 대한 충분히 유용한 정보를 포함하고 있기 때문에 OU noise를 사용하지 않는다.
4. Experiments
1) Imitation learning phase
IL 사용은 이미 언급했던 RL 학습 과정의 안정화, 학습 시간 단축 이외에도 아주 중요한 하나의 이점이 있다. 바로 우리가 고른 아키텍쳐가 사람에게서 받은 적절한 policy를 나타내는지 아닌지를 알 수 있다는 것이다.
우리는 AirSim API를 통해 다양한 날씨나 조도 상황에서 Xbox controller를 사용하여 차량을 제어하고 기록한다. 그리고 기록이 되는 동안, 거의 멈춤 없이 계속 차량을 운전한다.
이로 인해 생성된 policy는 항상 코너링을 할 때, 심지어 차량 속도가 거의 0일 때도 브레이크를 세게 밟고 가속을 하지 않는다. 이는 매우 그럴듯한것이, 학습 dataset에 이러한 샘플이 없기 때문이다. 이 문제를 해결하기 위해 모든 샘플들의 차량 속도를 0 ~ 3m/s 중 랜덤으로, throttle 제어 output을 1로, brake는 0으로, 조향각은 바꾸지 않는 것으로 세팅하였다.
이러한 data augmentation이 진행된 후에 생성된 policy는 차량의 속도가 매우 낮을 경우 항상 가속을 하였고, 기존 dataset에 비해 좋은 action을 취했다. 결론적으로, ResNet-34 아키텍쳐는 현재 이미지와 차량 속도 두 정보를 모두 활용하여 좋은 제어 policy를 얻었다.
위와 같이 밤의 경우에는 input 이미지가 매우 불분명하고, 학습된 policy가 잘 동작하지 않았다. simplicity를 위해 다양한 기후 조건에 따른 testing 및 RL phase의 subsequent로 낮 환경만을 사용하였다.
학습된 policy의 성능 평가는 다음과 같이 진행하였다.
각 episode에 1000의 최대 time step을 부여하고, 충돌 시 episode가 끝나도록 하였다.
기후 조건과 episode 시작 시 차량의 처음 위치는 랜덤으로 골랐고, 5개 episode의 평균 누적 reward를 기준으로 계산하였다.
아까 보았던 위 table과 같이, attention modeule 없이 simple하고 가벼운 ResNet-34가 매우 좋은 성능을 보였으며, 따라서 actor 및 critic network로 ResNet-34를 사용하였다.
2) Reinforcement learning using pre-trained weights
RL phase에서의 학습과 평가 동안, 위와 비슷하게 1000의 time step을 주고, 충돌하면 episode가 끝나도록 하였으며, 날씨와 차량의 initial position은 랜덤 선택하고, 5개 episode의 평균 누적 reward를 기준으로 계산했다.
총 3가지 policy들을 비교하였는데, 각각은 다음과 같다.
- IL에서 생성된 policy (파랑)
- pure DDPG에서 얻은 policy (빨강)
- IL → DDPG를 거치는 policy (노랑)
5. References
[1] S. Shah, D. Dey, C. Lovett, and A. Kapoor, “AirSim:High-Fidelity Visual and Physical Simulation for Autonomous Vehicles,” Field and Service Robotics conference 2017 (FSR 2017), 2017.
[2] K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,’’ arXiv preprint arXiv:1512.03385, 2015.
[3] T. P. Lillicrap, J. J. Hunt, A. Pritzel, N. Heess, T. Erez, Y. Tassa, D. Silver, and D. Wierstra, “Continuous control with deep reinforcement learning,” arXiv preprint arXiv:1509.02971, 2015.
[4] F. Sadeghi and S. Levine, “CAD2RL: Real Single-Image Flight without a Single Real Image,’’ arXiv preprint arXiv:1611.04201, 2016.
[5] L. Chen, W. Wang, and J. Zhu, “Learning Transferable UAV for Forest Visual Perception,’’ arXiv preprint arXiv:1806.03626, 2018.
[6] M. Samy, K. Amer, M. Shaker, and M. ElHelw, “Drone Path-Following in GPS-Denied Environments using Convolutional Networks,’’ arXiv preprint arXiv:1905.01658, 2019.
[7] S. Hecker, D. Dai, and L. V. Gool, “Learning Accurate, Comfortable and Human-like Driving,’’ arXiv preprint arXiv:1903.10995, 2019.
[8] K. Kersandt, G. Munoz, and C. Barrado, “Selftraining by Reinforcement Learning for Full-autonomous Drones of the Future,’’ 2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC), 2018.
[9] L. Xie, S. Wang, A. Markham, and N. Trigoni, “Towards Monocular Vision based Obstacle Avoidance through Deep Reinforcement Learning,’’ arXiv preprint arXiv:1706.09829, 2017.
[10] K. Simonyan and A. Zisserman, “Very Deep Convolutional Networks for Large-Scale Image Recognition,’’ arXiv preprint arXiv:1409.1556, 2014.
[11] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,’’ arXiv preprint arXiv:1311.2524, 2013.
[12] J. Hu, L. Shen, S. Albanie, G. Sun, and E. Wu, “Squeeze-and-Excitation Networks,’’ arXiv preprint arXiv:1709.01507, 2017.
[13] J. Park, S. Woo, J. Lee, and I. S. Kweon, “BAM: Bottleneck Attention Module,’’ arXiv preprint arXiv:1807.06514, 2018.
[14] S. Woo, J. Park, J. Lee, and I. S. Kweon, “CBAM: Convolutional Block Attention Module,’’ arXiv preprint arXiv:1807.06521, 2018.
[15] A. L. Caterini and D. E. Chang, “Deep Neural Networks in a Mathematical Framework,’’ Springer Publishing Company, Incorporated, 1st edition, 2018.
최근댓글