실제 주행 환경에서 주행 관련 변수의 범위는 무한대에 가깝기 때문에, 인공지능 차량 개발 시 자동차가 스스로 주행하도록 모든 변수들에 관해 일일이 프로그래밍하는 것은 거의 불가능합니다.
그러나 인공지능을 활용해 자동차에 주행 방법을 학습시키는 것은 가능해졌으며, 이러한 학습 과정에서 자동차가 어떤 요소들에 주목하고 있는지도 확인할 수 있게 되었습니다.
엔비디아는 운전자들의 행동을 관찰해 차량 주행을 학습하는 뉴럴 네트워크 기반 시스템 ‘파일럿넷(PilotNet)’을 고안했는데요. 여기서 멈추지 않고 나아가, 본 뉴럴 네트워크 시스템이 운전 중 의사 결정 시에 어떤 요소들에 우선순위를 부여하고 있는지를 확인할 수 있는 도구 또한 개발했습니다.
이를 활용해 일일이 프로그래밍 할 수 없는 영역을 차량 스스로 학습하도록 하는 시스템을 구축했을 뿐만 아니라, 해당 시스템이 어떻게 의사 결정을 내리는지도 확인할 수 있게 되었답니다.
엔비디아의 자율주행차 소프트웨어 개발 책임자인 어스 뮬러(Urs Muller)는 “사람이 사진에서 얼굴을 얼굴로 인식하게 만드는 요소가 무엇인지를 파악해 이를 구체적인 규칙으로 세세히 나열해 프로그래밍 하는 것은 불가능합니다”라고 이야기하며 “따라서 우리는 규칙을 통해 정의 내릴 수 있는 영역으로만 솔루션을 국한시키고 있는 것은 아닌지에 대한 의문을 제기해보아야 합니다”라고 설명했습니다.
사람의 주행 방식을 관찰해 주행을 학습하는 인공지능
엔비디아는 엔비디아 드라이브웍스(DriveWorks) 소프트웨어 개발 및 테스트에 자체 인공지능차량인 BB8을 활용하고 있습니다. 엔비디아는 현재까지 BB8에 포드 링컨과 아우디의 차량들을 활용한 바 있으며 추후 타사 차량을 사용할 예정으로, 차량 제조사 및 모델 정보는 본 인공지능차량 개발에 주요 요소가 아닙니다. BB8이 인공지능차로서 딥 러닝의 힘을 선보일 수 있도록 만드는 요소는 전방 카메라의 이미지를 해석해 주행 명령을 내리는 딥 뉴럴 네트워크에 있습니다.
엔비디아는 딥 뉴럴 네트워크가 운전자의 운전행동을 학습해 차량을 스스로 주행할 수 있도록 하는 트레이닝을 실시했습니다. 네트워크는 차량에 탑재된 카메라를 활용해 운전자가 주시하는 것을 기록한 후, 해당 이미지를 운전자가 주행 중에 내린 의사 결정 데이터와 연관 짓는 작업을 실시했습니다. 엔비디아는 다양한 환경에서의 상당한 분량의 주행 과정을 기록했습니다. 차선 표시가 있는 도로와 없는 도로, 비포장 도로와 고속도로 등 도로 환경을 다양하게 하는 것은 물론, 하루 중에도 시간대를 달리해 각기 다른 조도 상태에서 기록했으며, 날씨 상태도 다양하게 안배했지요.
트레닝을 받은 네트워크는 그 어떤 코드 기반의 명령 없이, 관찰을 통해 BB8의 주행을 위한 학습을 스스로 진행했는데요. 그 결과, 트레이닝을 거친 네트워크는 새로운 환경에서도 실시간 주행 명령을 내릴 수 있게 됐습니다. 실제 작동 중인 모습을 다음 동영상을 통해 확인해 보세요.
인공지능의 사고 과정
파일럿넷이 작동에 들어가면서 엔비디아는 파일럿넷의 의사 결정 과정에 대해 알아보기 위해, 파일럿넷이 하나의 이미지를 주시할 때 어떤 요소에 중요도를 부여하는지 확인할 수 있는 시각화 맵을 개발했습니다.
본 시각화 맵을 통해 엔비디아는 파일럿넷이 차량용 카메라에서 새로운 정보를 입력 받을 때 가장 우선순위로 두는 것이 무엇인지를 아래와 같이 파악할 수 있었습니다. 아래의 예시는 차량의 카메라에 기록된 이미지 위로 시각화 작업이 덧입혀진 것으로, 파일럿넷이 우선순위를 높게 두는 지점은 초록색으로 표시됐습니다.
이러한 시각화를 통해 엔비디아는 파일럿넷이 차선 표시, 도로 모서리 및 다른 차량 등, 운전자가 집중하는 요소와 동일한 요소들에 집중하고 있음을 확인할 수 있었습니다. 여기에서 한 가지 놀라운 것은 엔비디아는 파일럿넷에 이러한 요소들을 우선적으로 고려하도록 직접적으로 명령한 적이 없다는 점인데요. 파일럿넷이 실제 사람들이 운정을 배우는 것과 같이, 관찰을 통해 주행 중인 환경에서 의사 결정시 어떤 요소들이 중요한지를 학습했기 때문에 가능한 일이었답니다.
뮬러 개발 책임자는 “딥 뉴럴 네트워크의 사용이 주는 장점은 차량이 스스로 상황을 파악한다는 점이지만, 개발자들이 이러한 네트워크가 의사결정을 내리는 방식에 대해 이해하지 못한다면 실질적인 발전을 이뤄내기 어렵습니다”라고 말하면서 “네트워크의 의사 결정 과정을 확인하기 위해 개발한 본 수단을 통해, 엔비디아는 시스템을 개선하는데 필요한 정보를 파악할 수 있습니다. 개발자들은 차량이 무엇을 해야 하는지 일일이 설명할 순 없지만 차량이 스스로 학습할 수 있도록 운전자의 운전 행동을 보여줄 수 있으며, 차량은 스스로 무엇을 학습했는지 개발자들에게 보여 줄 수 있게 되었습니다”라고 설명했습니다.
자율주행차량이 양산에 들어간다면, 다양한 인공지능 뉴럴 네트워크와 그에 상응하는 여러 기술들이 차량 운행에 활용될 것입니다. 주행을 제어하는 파일럿넷 외에도, 보행자 감지, 차선 감지, 표지판 인식, 충돌 방지 등 구체적인 과제에 초점을 맞춰 트레이닝을 거친 다양한 네트워크가 차량에 탑재될 것입니다.
인공지능 차를 통한 스타벅스까지의 여정
특정 전문 분야를 담당하는 다양한 인공지능 네트워크를 활용하면, 자율주행차량의 안전성 및 안정성을 증가시킬 수 있습니다. 엔비디아의 개발 작업은 주행이라는 복잡한 상황에 이러한 첨단 인공지능을 도입한 것입니다. 이에 따라, 언젠가 사람들은 아래 BB8 자율주행차 시연 동영상에 나타난 것 같은 드라이브 여정을 즐길 수 있습니다.
인공지능 자율주행 슈퍼컴퓨터인 드라이브 PX 2 (DRIVE PX 2) 및 개발자용 오픈 플랫폼인 엔비디아 드라이브웍스 (NVIDIA DriveWorks) 등 엔비디아의 자동화 솔루션에 대한 자세한 정보는 다음 링크(NVIDIA.com/drive)에서 확인할 수 있습니다. 딥 뉴럴 네트워크의 우선순위 부여 과정을 파악한 방법에 관한 연구 자료는 다음 백서에서 확인해 보세요.