강화학습으로 다양한 세팅과 업무에 적응 가능한 실내 자율주행 알고리즘 학습 시키기

모바일 로봇이 점점 다양한 서비스와 일상 공간에 들어오고 있습니다. 이에 따라 단순히 목적지까지 장애물에 충돌하지 않고 도착하는 것이 아닌, 보다 다양하고 복합적인 문제들을 극복할 수 있는 로봇의 자율주행 소프트웨어를 연구해야 합니다. 

아이들에 둘러싸인 AROUND C. 생활공간에 배치된 모바일 로봇이 흔히 겪는 상황입니다.

예를 들어 사람이 없고 구조가 변하지 않는 창고와 같은 환경에서는 장애물과 물리적으로 충돌하지 않는 범위에서 최단거리를 찾아 이동하면 됩니다. 비교적 간단하죠. 그러나 위의 영상과 같이 식당이나 카페의 서빙 로봇의 경우에는 서있거나 이동하는 사람들이 많기 때문에 시시각각 장애물의 크기와 모양, 위치가 바뀌는 것을 고려해 주행할 수 있어야 합니다.

무엇보다도 ‘사람’은 일상 공간의 로봇에게 가장 까다로운 장애물입니다. 마주치는 사람들에게 빠른 속도로 가까이 다가가면 충돌하지 않더라도 불안감을 줄 수 있기 때문에 사람은 다른 장애물보다 더 거리를 두고 조심스럽게 피해야 합니다. 이런 문제를 해결하기 위해 생활공간에 배치되는 대다수의 로봇들이 느린 속도로 주행하며 예상하지 못한 장애물이 나타난 경우 제자리에 멈춰서 장애물(사람)이 사라질 때까지 기다리는 전략을 사용합니다. 그러나 조심성이 너무 과할 경우에는 배달과 같은 로봇의 본래 임무 수행이 느려져 사용자들이 답답함을 느끼게 되죠.

소프트웨어 엔지니어의 입장에서 이런 ‘불안감’, ‘답답함’과 같은 주관적인 요소들 사이의 중요도(가중치)를 조절해 균형을 맞추며 자율주행 알고리즘을 만드는 것은 매우 어려운 일입니다. 많은 사람들이 만족할 수 있는 가중치는 로봇이 있는 공간과 수행하는 업무, 상대하는 사용자에 따라서 달라질 수밖에 없기 때문에 좋은 가중치를 찾는 것도 수많은 시행착오를 거쳐야 하고, 찾는다고 하더라도 주행 알고리즘이 해당 가중치를 입력했을 때 정상적으로 작동한다는 보장이 없기 때문입니다.

네이버랩스에서는 이런 복잡한 문제를 해결하고 여러 공간과 임무에 빠르게 투입할 수 있는 로봇을 만들기 위해 Meta deep reinforcement learning과 Bayesian active learning을 사용했습니다.

Meta deep reinforcement learning

1) Deep reinforcement learning

강화학습(Reinforcement learning)은 환경과 상호작용하는 에이전트(로봇)가 환경의 state를 관찰하고 action을 통해 환경에 영향을 미치고, 거기에 따른 reward를 경험하면서 현재 시점으로부터 앞으로 얻게 될 누적 reward를 최대화하기 위해 에이전트가 어떤 state에서 어떤 action을 해야 하는지 결정하는 함수인 policy를 학습하는 과정입니다.

최근 딥 러닝을 강화학습에 접목한 연구들이 Decision making이나 Control 분야에서 큰 성과를 내면서 알파고[1], OpenAI Five[2] 등의 결과물을 내고 있고, 로봇의 행동 제어에도 적용하기 위해 많은 연구가 이루어지고 있습니다. 네이버랩스에서도 AROUND로봇의 자율주행을 위해 Deep reinforcement learning을 연구해 CES[3], ICRA[4] 등에서 공개해 왔습니다.

Deep reinforcement learning을 사용한 자율주행 알고리즘은 정확한 지도를 필요로 하지 않고, GPU의 도움을 받아 매우 빠른 속도로 현재와 미래의 reward를 모두 고려한 최적의 action을 예측할 수 있지만 학습에 매우 많은 데이터와 시간이 필요하고, 로봇이나 reward 등의 세팅이 바뀌는 경우 추가적인 학습 없이는 적응할 수 없다는 문제점이 있어 장소나 업무, 사용자의 특성에 따라 다른 방식으로 행동해야 하는 모바일 서비스 로봇에는 사용할 수 없었습니다.

예를 들어 0.4m/s의 속도로 움직일 수 있고 사람에게 가까이 가면 -1의 reward를 받는 환경에서 학습된 에이전트가 사용자들의 마음에 들지 않아 최고속도를 0.6m/s로, 사람에게 가까이 가면 -3의 reward를 받도록 수정하면 수백만 번의 iteration을 거쳐 다시 처음부터 학습을 해야 해서 만족스러운 에이전트가 나오기 까지 매우 오랜 시간이 걸립니다.

2) Meta reinforcement learning

이 문제를 해결하기 위해 네이버랩스에서는 Meta reinforcement learning을 사용했습니다. Meta learning은 '학습하는 방법을 학습하는' 기계학습의 분야로, AI 에이전트가 특정한 분포에 속하는 수많은 종류의 문제들을 해결하도록 학습을 진행하고 학습된 에이전트에게 해당 분포에 속하는 새로운 문제가 주어졌을 때 신속하게 적응할 수 있도록 하는 방식을 사용합니다.

절차적 생성 기술을 사용한 시뮬레이터

네이버랩스에서는 AROUND로봇이 다양한 로봇 세팅(최고속력, 회전속도, 가속도 등)과 환경 세팅(공간의 구조와 크기, 최단거리를 택할 때의 reward, 장애물에 충돌했을 때의 reward, 사람에 너무 가까이 갔을 때의 reward 등)에 즉시 적응할 수 있도록 하기 위해 시뮬레이터 안에서 매번 새로운 실내 환경을 생성하고, random한 로봇과 reward 세팅을 샘플링하는 방식을 사용했습니다. 뿐만 아니라 한 환경 내에 10대 이상의 로봇을 풀어놓고 동시에 학습을 진행해서 학습에 사용할 수 있는 데이터의 양을 크게 늘리고 서로를 회피하면서 움직이는 장애물에 대처할 수 있는 능력을 기르도록 했습니다.

학습된 에이전트의 주행 영상

Meta reinforcement learning을 사용한 결과, 학습된 범위 내의 세팅을 지정할 경우 즉시 그에 맞는 행동방식을 조정하고, 해당 세팅만을 사용해 학습된 에이전트와 동등한 성능을 낼 수 있는 에이전트를 얻을 수 있었습니다.

다양한 세팅에 대해 해당 세팅 만을 사용해 학습된 에이전트와 Meta reinforcement learning 에이전트의 성능 비교 (자세한 내용은 논문 참조)

3) Bayesian active learning

Meta deep reinforcement learning을 활용해 여러 세팅에 적응할 수 있는 에이전트를 얻었지만 로봇을 사용하려고 하는 공간, 업무, 사용자에 대해 어떤 세팅이 가장 좋은 세팅인지 알아내는 것은 여전히 어려운 문제였습니다. 많은 경우 엔지니어들이 스스로 생각하기에 적당한 세팅을 고르고 사용자나 기획자의 피드백을 받아 조금씩 수정해나가는 trial and error 방식을 사용해 인력과 시간이 많이 들게 됩니다. 이 과정을 빠르고 효율적으로 만들기 위해 네이버랩스에서는 네이버랩스 유럽과의 공동 연구를 통해 시뮬레이션 상에서 다양한 세팅에 대한 선호도를 조사하고 이 결과를 Bayesian neural network[5]로 학습해 최적의 세팅 후보들을 효율적으로 추려내는 방식을 개발했습니다.

Bayesian neural network는 neural network의 parameter들을 고정된 값이 아닌 확률 분포로 나타내는 모델로, 학습에 사용 가능한 데이터의 수가 적은 경우에도 좋은 성능을 낼 수 있고 예측한 값에 대한 불확실성의 척도를 제공한다는 장점이 있습니다. 이런 특성을 사용해 적은 수의 선호도 조사 데이터로부터 어떤 세팅의 선호도가 높을 것인지를 예측하고, 선호도가 높을 것으로 예상되지만 불확실성이 높은 세팅들을 다음 번 선호도 조사에서 설문으로 사용함으로써 최적의 세팅을 찾는데 필요한 선호도 조사의 수를 기존 방식에 비해 줄일 수 있었습니다.

시뮬레이션을 사용한 설문조사 영상

AROUND C Pilot service

우리는 새로 개발된 알고리즘의 성능을 테스트하기 위해 2019년 11월부터 12월까지 네이버 그린팩토리 사옥 1층에 위치한 베어베터 카페에서 로봇이 음료를 배달하는 서비스 테스트를 진행했습니다.

네이버랩스 로보틱스 팀과 UX팀에서 선호도 조사를 통해 카페 서비스에 어울리는 세팅을 찾았고, 해당 세팅을 Meta reinforcement learning 에이전트에 적용해 로봇이 자율주행 하도록 했습니다. 테스트 결과, 일반적인 서비스 로봇들이 활동하기 거의 불가능한 혼란하고 복잡한 상황에서도 AROUND C는 인파를 헤치며 빠르고 안전하게 음료를 배달하는 것을 확인할 수 있었습니다.

혼란하고 복잡한 상황에서 음료를 배달하는 AROUND C

마치며

AROUND C에 사용된 Meta reinforcement learning과 Bayesian active learning 기술에 대한 논문은 세계 최대의 로보틱스 학회인 ICRA 2020에 채택되어 발표를 앞두고 있습니다.[6]

네이버랩스에서는 파일럿 테스트를 성공적으로 마친 후, 서비스 테스트에서 발견된 문제점들을 해결하고 더 높은 성능을 낼 수 있도록 강화학습 연구를 계속 진행하고 있습니다. 더욱 업그레이드된 성능의 자율주행 알고리즘을 탑재한 AROUND 로봇들이 네이버 신사옥 곳곳에 적용될 예정입니다. 앞으로 더 많은 문제에 강화학습을 적용하기 위해 Deep reinforcement learning engineer를 채용하고 있습니다. State-of-the-art 강화학습 연구에 관심이 있는 많은 분들의 지원 바랍니다.

 

References
[1] Silver, David, et al. "Mastering the game of go without human knowledge." Nature 550.7676 (2017): 354-359.
[2] Berner, Christopher, et al. "Dota 2 with Large Scale Deep Reinforcement Learning." arXiv preprint arXiv:1912.06680 (2019).
[3] https://www.youtube.com/watch?v=jqSztRdd-mc
[4] Choi, Jinyoung, et al. "Deep reinforcement learning of navigation in a complex and crowded environment with a limited field of view." 2019 International Conference on Robotics and Automation (ICRA). IEEE, 2019.
[5] Blundell, Charles, et al. "Weight uncertainty in neural networks." arXiv preprint arXiv:1505.05424 (2015).
[6] Choi, Jinyoung, et al. "Fast Adaptation of Deep Reinforcement Learning-Based Navigation Skills to Human Preference."

Related Articles

VIDEOS