책 커버 표지
니케이로보틱스_2019/04_딥러닝 베이스의 자율주행 차 제어, 구글Waymo
  • 저자 : 日経テクノロジーオンライン
  • 발행일 : 20190310
  • 페이지수/크기 : 39page/28cm

요약

Nikkei Robotics_2019.4 Sexy Technology 요약 (p5-13)

딥러닝 베이스의 자율주행 차 제어
구글 Waymo, 실제 차량에도 적용


구글에서 스핀 아웃한 알파벳 산하의 자율주행차 개발 기업 웨이모. 2018년, 웨이모의 자율주행 테스트 코스를 딥러닝 베이스의 자율주행 차 ‘Chrysler Pacifica’가 주행하였다.

딥러닝 베이스이기는 하지만 다른 차량이나 보행자의 이미지 인식에 Deep Neural Network(DNN, 심층신경망)를 사용한 것은 아니다. 숙련 드라이버의 운전 조작 데이터 60일치를 흉내 내도록 학습시킨 DNN이 일종의 ‘가상 드라이버’로서 이 미니밴을 제어한 것이다. 구글의 테스트 코스에는 공공도로 못지 않은 도로나 신호, 표식, 가로수 등이 재현되어 있다. DNN 베이스의 자율주행 차는 이들 신호나 차선을 정확하게 인식하며 우회전이나 정지 등의 작업을 부드럽게 구현하였다.

웨이모는 2016년에 설립되었다. 본사가 있는 캘리포니아뿐 아니라 텍사스주 오스틴이나 애리조나주 피닉스 등 전미 각 도시에서 총 500만 마일(800만km)에 달하는 공공도로 시험을 이미 마쳤다. 자율주행 기술에 대해 세계에서 가장 앞서 있는 기업이라고 할 수 있다.

그리고 모회사인 구글은 딥러닝 기술에서 세계 최고 수준이다. 로봇용 심층강화학습의 권위자인 Sergey Levine 씨, 생성 모델 ‘GAN’의 고안자인 Ian Goodfellow 씨 등 유명 연구자가 소속되어 있다. 또한 산하의 영국 DeepMind에도 Timothy Lillicrap 씨를 비롯한 심층강화학습의 저명 연구자가 많이 있다.

-- 드디어 심층학습 베이스로 --
딥러닝이나 심층강화학습에 대해 그렇게 높은 기술을 보유하고 있으면서도 자율주행 차의 조작 및 제어에 DNN을 이용하고 있는지 여부는 지금까지 명확하지 않았다. 차선이나 선행 차량, 보행자 등 자율주행 차의 인식 부분에 DNN을 사용하는 것은 현재로서는 자연스러운 선택이며, 웨이모도 많이 사용하고 있다고 밝혔다. 그러나 인식만이 아니라 자동차의 물리적인 운전 조작에도 기계학습 베이스의 DNN을 사용하고 있는지는 불명확했다. 이번 발표는 웨이모가 운전 조작에도 딥러닝 베이스 기술을 적용하기 시작했다는 의미로 큰 임팩트가 있다. 구글은 로봇 연구에서는 딥러닝 베이스의 행동 생성∙제어를 이미 많이 실시하고 있다.

자율주행 기술에 정통한 기술자들 사이에서는 “구글 웨이모는 딥러닝 기술이 붐이 일기 훨씬 전부터 자율주행 차를 전개해 왔기 때문에 운전 조작 부분에는 DNN은 거의 이용하지 않을 것이다”라는 관측이 있었다. 본지가 2017년 12월호에서 소개한 일본의 자율주행 AI 스타트업 기업 Ascent Robotics 창업자인 Fred Almeida 씨도 그러한 견해를 보였다. “때문에 당사와 같은 스타트업 기업이 심층 생성 모델과 같은 최신 기술을 자율주행 영역에서 활용할 여지가 있다”.

-- AlexNet의 개발자가 담당 --
실제로 웨이모의 자율주행 차의 경우, 행동 생성 부분에는 기계학습 베이스가 아닌 웨이모가 ‘planner’라고 부르는 모듈이 사용되고 있었다. 전통적인 경로 계획 기술을 베이스로 하고 있는 것으로 보인다. 이번에는 이 경로 계획 기술의 베이스인 planner를 DNN 베이스의 모듈 ‘ChauffeurNet’로 교체하여 테스트 코스를 주행시켜 시험하였다.

이 ChauffeurNet 논문에는 유명한 ‘AlexNet’의 고안자 Alex Krizhevsky 씨가 제2저자로서 참여하였다. AlexNet은 현재의 딥러닝 붐의 발화 역할이 된 DNN모델의 아키텍쳐다. 2012년에 개최된 이미지인식콘테스트 ‘ImageNet(ILSVRC)’에서, Geoffrey Hinton 씨가 이끄는 캐나다 토론토대학 팀이 2위 이하에 10% 가까운 큰 차이를 벌리며 우승했을 때 사용된 것이다.

당시에 Hinton 씨의 연구실에서 그 DNN 개발을 주도한 Alex Krizhevsky 씨의 이름을 따서 ‘AlexNet’이라고 부르게 되었다. Krizhevsky 씨는 그 후에 구글에 입사하여 딥러닝 관련 연구를 진행하였고, 최근에는 웨이모의 자율주행 차용 딥러닝 기술에 관여했다.

-- 지도학습으로 어디까지 가능할까? --
웨이모는 과연 어떠한 딥러닝 기술을 이용했을까? 자동차나 로봇을 기계학습으로 움직인다고 하면 심층강화학습(Deep Reinforcement Learning)이 우선 떠오를지도 모르지만 웨이모가 이번에 사용한 것은 심층강화학습이 아니다. 정통적인 지도학습이다.

건설기계 등의 자동화에 딥러닝 기술을 사용하는 벤처기업 DeepX는 기계학습 기술을 사용하는데 있어서 처음에는 사용하기 쉬운 지도학습을 사용하고, 그 후에 지도학습으로는 실현할 수 없는 용도에 대해서만 심층강화학습을 적용한다는 스탠스를 취하고 있다. 웨이모도 거의 같은 스탠스다. 복잡한 운전 조작에 대해서는 장기적으로 심층강화학습도 전망하고 있지만 우선 이번에는 지도학습을 제1단계로 시험하여 실제 차량에 적용하였다.

웨이모의 테마는 ‘정통적인 지도학습으로 어디까지 가능할까?’를 찾아내는 것이다. 준비한 것은 숙련 드라이버에 의한 2,600만개의 실제 환경에서의 운전 조작 데이터다. 60일간(1,440시간) 분량에 상당하는 데이터 양이다. 단, 데이터 양 자체는 방대하지만 이 학습 데이터에는 다른 차량과의 충돌을 회피하거나 차도에서 벗어나는 것을 방지하는 등의 샘플은 명시적으로는 포함되어 있지 않다. 다른 차량과 충동할 것 같은 상황은 실제 환경에서는 위험하기 때문에 숙련자의 조작 데이터로서는 대량 수집이 어렵기 때문이다. 웨이모는 이러한 제약이 있는 학습 데이터를 이용해 지도학습만으로 어디까지 실용적인 운전 조작을 도출할 수 있을지 찾으려고 하였다.

결과적으로 학습방법으로서는 정통적인 지도학습을 이용하면서도 정차해 있는 차량은 감지하여 차선을 변경하여 회피하는 등의 동작을 도출할 수 있었다. 학습한 DNN을 실제 차량에 탑재하여 테스트 코스를 주행해도 부드러운 운전 조작을 실현할 수 있었다.

-- 학습데이터에 인공적인 외부 교란 부여 --
웨이모의 시도에서 중핵적인 역할을 담당한 것이 학습 데이터에 인공적인 외부 교란(Perturbation)을 부여하는 아이디어다. 60일분의 학습 데이터는 방대하지만 그것 만으로는 정차 중인 차량을 피하는 등의 행동을 도출하는 것은 불가능하다. 웨이모는 이러한 동작을 실현하기 위해서는 60일분의 학습 데이터로도 충분하지 않고 대량의 데이터가 더 필요하다고 한다.

그래서 웨이모는 숙련 드라이버에 의한 60일분의 학습 데이터를 가공하기로 하였다. 학습 데이터 속의, 숙련 드라이버가 운전하고 있는 자차의 궤도 데이터에 가상적인 외부 교란을 추가한 것이다. 예를 들면, 숙련 드라이버의 조작으로는 차선 중앙을 정상으로 주행하고 있는 상태라도, 그 궤도 데이터를 일부러 랜덤으로 좌우 방향 ±0.5m만 벗어나도록 하여, 외부 교란을 추가한 가공된 데이터로 DNN을 학습시켰다. 자차의 방향에 대해서도 ±π/3의 범위에서 랜덤한 외부 교란을 추가하였다. 숙련 드라이버에 의한 운전 동작을 베이스로 하면서도 그 궤도만을 지나치게 학습하지 않도록 잡음을 통해 불규칙하게 만들었다.

이처럼 학습 데이터를 인공적으로 가공하는 것은 이미지 인식용 DNN 학습에서 학습 이미지에 아핀 변환 등의 가공을 추가하는 ‘data augmentation(데이터 확대)’와 비슷한 것이라고 말할 수 있다. 단, 다른 것은 가공하는 데이터의 추상도다. 이미지 인식용 DNN의 일반적인 data augmentation에서는 센서의 미가공 데이터(raw data)인 카메라 이미지에 대해 직접 아핀 변환 등의 가공을 한다. 이에 대해 웨이모는 센서의 미가공 데이터가 아니라 보다 추상도가 높은 궤도 데이터를 가공하고 있다.

로봇이나 자동차를 DNN으로 자동화하려고 할 때, 카메라 이미지 등의 센서 데이터를 직접 DNN에 입력하여 모터의 토크 지령이나 자동차의 액셀 개도(Accelerator Opening) 등을 직접 출력하는 ‘end-to-end(E2E)’ 구성을 취하는 경우가 있다. 이 경우에 센서 데이터의 전처리 등이 불필요하고 모든 것을 DNN 학습에 맡길 수 있다는 이점은 있다. 그러나 학습 데이터를 가공하기에는 부적합하다. 입력 데이터의 추상도가 낮기 때문에 가공에 수고가 들기 때문이다.

웨이모의 자율주행 차 시스템에서는 원래 센서 데이터를 인식하는 모듈, 목표 궤도를 생성하는 모듈, 목표 궤도에 따라 액셀이나 스티어링 등의 조작 양을 산출하는 모듈이 각각 명확하게 분리된 아키텍처가 되어 있었다. 때문에 목표 궤도를 생성하는 모듈에 DNN을 채용했다고 하더라도 그 입력 데이터는 한번 인식 모듈을 거쳐 정보의 추상도가 향상된 상태가 된다. 자기 위치나 다른 차량의 위치 등이 명시적으로 되어 있어 학습 데이터 가공도 쉬웠던 것이다. 웨이모는 DNN에 중간 정도 추상도의 정보가 입출력된다는 의미에서 이를 ‘mid-to-mid’ 구성이라고 부른다.

-- 입력은 상공에서 보는 부감도 --
웨이모의 ChauffeurNet의 구체적인 구성을 살펴 보자. 앞에서 말한 대로 ChauffeurNet은 기존의 경로 계획 모듈(planner)에 상당하는 존재다. 다른 차량의 위치나 자기 위치, 신호 상황, 도로 지도나 교통 규제와 같은 운전에 필요한 각종 정보를 입력으로 파악하여 자차가 진행해야 될 궤도를 산출한다. 시계열 데이터를 취급하기 때문에 ChauffeurNet에는 내부 메모리가 있으며 콘텍스트를 기억할 수 있는 RNN(Recurrent Neural Network)을 채용하였다. ChauffeurNet이 생성한 궤도는 ‘제어 최적화 모듈(control optimizer)’에 입력되어 실제 액셀 개도나 스티어링 조타량, 브레이크 양 등을 산출한다.

ChauffeurNet으로 연구한 것이 입력 데이터의 표현 형식(representation)이다. 입력에는 다른 차량의 위치나 자기 위치, 교통 규제 등 다양한 정보가 있다. 그러나 그들 정보는 좌표치로서 수치로 주는 것이 아니라 자차의 주위 80m 사방을 상공에서 부감하여 래스터 이미지 형식으로 하였다. 차량이나 보행자 등의 위치만이 아니라 신호 상태나 도로 별 속도 제어, 목적지로 향하는 대국적인 루트 등 모든 정보를 이 부감도의 이미지 형식으로 나타낸다.

이미지 형식으로 함으로써 차량 등의 오브젝트 위치를 1점으로 정하는 것이 아니라 히트맵(Heat Map)과 같이 광범위한 확률 분포로서 표현할 수 있다. 추가 형식이 있는 경우라도 입력을 이미지 형식으로 해 두면 ChauffeurNet 내부의 CNN으로 통일적으로 다루기 쉽다. 차도 영역을 나타내는 정보(도로 지도)나 신호 상태, 속도 규제 등 확률적으로 나타낼 필연성이 없는 것은 해당 화소 영역에 필요한 파라미터를 넣는다. 예를 들면, 신호 상태에 대해서는 교차점 영역에 있는 해당 차선의 중앙에 선을 그려 넣어 표현하였다. 루트 정보에 대해서는 이진수로 표현하고 있다. 또한 화소수는 400ⅹ400이다. 1화소가 0.2m에 상당하는 분해능이다.

-- CNN과 RNN의 2단 구성 --
ChauffeurNet의 내부는 입력 데이터에서 특징을 추출하는 CNN ‘FeatureNet’과, 자차의 궤도를 생성하는 RNN ‘AgentRNN’이 있다. 자기 위치에 대해서는 과거 8초간의 궤적을, 선행 차량이나 보행자 등 환경 속의 다른 오브젝트에 대해서는 과거 1초간의 궤적을 입력하였다. 또한 CNN의 FeatureNet은 어디까지나 부감 이미지의 특징을 추출하는 것으로, 카메라 등 센서의 미가공 데이터를 다루는 인식 모듈과는 다르다.

AgentRNN이 출력하는 것은 다음 시각의 자차의 위치, 방향, 속도, 자차가 부감 이미지 안에서 2차원적으로 차지하는 공간의 히트맵의 4종류다. 숙련 드라이버의 조작 데이터도 이들 4종류에 대해 60일 분량이 준비되어 있다. 때문에 ChauffeurNet의 학습은 AgentRNN의 출력 데이터와 교사 데이터와의 오차를 가지고 이루어진다. ‘모방 학습’의 단순한 형식이라고 할 수 있다. 방향이나 속도와 같은 스칼라량은 단순하게 교사 데이터와의 오차를 취한다. 그러나 자차 위치나 히트맵과 같은 확률 분석에 대해서는 2개의 분포 사이의 차이를 나타내는 cross entropy(교차 엔트로피)를 손실 관수로서 이용하였다.

단, 숙련 드라이버의 동작을 단순하게 ‘behavioral cloning’으로서 모방하는 것 만으로는, 바람직하지 않은 사태를 시스템에 명시적으로 지정할 수 없다. 그래서 웨이모는 ChauffeurNet의 손실 관수를 연구하였다. 드라이버의 조작과의 오차를 취하는 ‘모방 상의 손실 관수(imitation loss)’에 추가하여, 다른 차량과의 충돌이나 궤도에서의 일탈 등 바람직하지 않은 사태에 대해서도 개별적으로 전용 패널티항을 마련하기로 하였다. ‘환경과의 상호 작용 상의 손실 관수(environment loss)’를 설정한 것이다. 심층강화학습에서 바람직하지 않은 사태를 보수 관수에 패널티항으로서 추가하는 것과 같다.

-- 예측 학습으로 특징 표현을 훈련한다 --
-- 실제 차량에서도 유연한 움직임 --


 -- 끝 --

목차