자동차에 관한 관심이 높아지고 있다. 사용자의 편의성을 위해 스마트 자동차가 나오고, 이제는 운전대에 손을 놓고도 자유롭게 운전할 수 있는 자동차가 나왔다. 자율 주행 자동차는 도로에서 보이는 표지판이나 도로 양옆에 있는 라인을 스스로 확인하여 따로 운전자가 운전할 필요 없이 자동차 스스로 주행한다. 특히, 자율 주행 자동차는 머신러닝 기법을 응용하여 만든 최근 주목받는 기술로, 전 세계는 자율 주행 자동차가 정식으로 운행되도록 준비하고 있다.[1] 자율 주행 자동차 주행을 시범 삼아 운행할 수 있는 장소를 정하여 법을 만들고, 규제를 풀고, 연구에 박차를 가하였다.[2] 자율 주행 자동차는 분명하게도 사용자에게 편의를 제공하고 앞으로 다가올 미래에 가장 큰 변화이지만[3] 과연 이대로 괜찮은가에 대해 2부작으로 이야기해볼까 한다. 오늘은 자율 주행 자동차에 대해 알아보겠다.
일반적으로 자율 주행 자동차는 4단계로 분류한다. 먼저, 자율주행이라고 말도 못할 레벨 0이 있다. 레벨 0은 자동차에 자율 주행이라는 것이 전혀 존재하지 않는 것으로, 우리가 생각하는 일반적인 자동차라고 보면 된다. 자율 주행 티가 나기 시작하는 것은 ‘크루즈 컨트롤’ 기능 즉, 차선 이탈 경보장치가 있으면 레벨 1로 취급한다. 크루즈 컨트롤 기능은 차선을 유지하려는 자동차의 기능을 선택적으로 가져와 능동적으로 제어하는 시스템이기도 하다. 보통 최근 굴러다니는 자동차는 크루즈 컨트롤 기능이 웬만해서는 적용되어 있다고 보면 된다. 레벨 2서부터는 핸들이 스스로 움직이며 본격적으로 자율 주행 자동차다워진다. 이제는 차가 선택적인 기능을 취하지 않고, 완전하게 능동적으로 제어하는 단계에 들어선 것이다. 드라마 태양의 후예에서 잡으라는 핸들은 잡지 않고 여자의 목덜미를 잡은 장면에서도 그 차는 레벨 2에 해당하는 기술이다. 레벨 3은 막히는 길을 자동차 스스로 뚫고 달린다면 레벨 3의 기술로 보고 있다. 이제는 사람이 계속 운전대에 붙어있을 필요가 없어진 것이다. 물론 100% 신뢰가 가는 완성도는 아니다. 어느 정도 믿을 만하다는 것으로, 현재 이 정도의 자동차 자율 주행 연구 단계는 여러 연구소에서도 성과를 이뤄냈다.[4] 이어서 그 누구도 도달하지 못한 레벨 4에서는 목적지를 입력하면서 차가 스스로 운전을 하는 단계를 말한다. 즉, 완전한 의미의 자율 주행 자동차다. 현재 이런 식의 연구 단계를 거치면서 자율 주행 자동차의 완성도가 더욱 높아지고 있으며, 이를 통해 교통체증이 사라지고, 카페 같은 휴식이 되는 도로 주행을 기대해보고 있다.[5]
그렇다면 어떻게 자동차는 자율 주행이 되는 것일까. 차량에 여러 개의 카메라와 센서를 앞, 뒤 양 옆에 부착하여 이를 통해 자동차가 어떤 환경에 놓여 있는지 파악한다.[6] 이런 식의 카메라와 센서에서 얻은 정보는 자동차 내부에 있는 초소형 이미지 프로세서를 통해 분석된다. 이미지를 분석하는 기술, 명령을 내리는 기술에서 프로세서는 두뇌처럼 사용되는데, 분석은 카메라를 통해 보이는 주변의 환경들을 작은 단위로 나뉘어 분석에 활용된다.[7] 즉, 이는 어떤 사물이 있으면 이 사물의 특징을 뽑아내어 이 사물이 무엇인지 분석해나간 다는 것이다. 특히나, 도로에서 얻는 정보가 많을수록 추가되는 정보는 더 큰데, 이런 것을 머신러닝이라고 한다.
카메라나 센서를 통해 도로 주변 상황이나 자동차 주변 상황이 전달되고, 관련 데이터를 처리하는 것은 자동차에 들어있는 부품의 성능만 뛰어나면 어느 정도 해결될 일이다. 즉, 프로세서 성능이 향상되면 처리하는 양은 많아지고 가져온 정보를 빠르게 처리할 수 있다. 하지만 문제는 운전이 혼자 한다고 해서 되는 것이 아니라는 것이다. 운전은 나 혼자가 아니라 여러 운전자가 동시에 도로 위를 함께 달린다. 따라서 내가 하는 행동은 예상할 수 있다지만, 그 외에 일은 어떤 일이 벌어질지 알 수가 없다. 즉, 변수가 한 두 가지가 아니라는 것이다. 이 때문에 수많은 변수를 예측하고 처리할 방안으로 떠올린 것이 바로 딥 러닝(Deep Learning)이다.[8] 딥 러닝이란 인간의 뇌 신경망을 본떠 만든 것으로, 데이터에 포함된 다양한 변수를 파악하지 못하는 머신러닝의 한계를 보완한 방법이다.[9] 즉, 딥러닝은 완전한 머신러닝 기술을 구현하는 기술인 것이다.
초기 머신러닝 연구자들은 인간의 뇌 신경망, 특히 뉴런의 연결구조를 본떠 만든 알고리즘인 인공 신경망(artificial neural network)을 만들었다.[10] 딥 러닝은 인공신경망에서 발전한 형태로 나온 인공 지능으로, 뇌의 뉴런과 유사한 데이터 수집으로 학습한다. 따라서, 컴퓨터가 가지고 있는 데이터 안에서만 결과를 도출하는 머신러닝의 한계를 넘기 위해 자율 주행 자동차 연구에는 딥 러닝이 쓰인다. 자동차에서 딥 러닝은 없어서 안될 중요한 핵심 포인트다. 자동차에 달린 센서는 차의 위치나 거리 정보를 안다고 하더라도, 카메라를 통해 가져오는 정보는 철저히 분석하고 검증할 필요가 있다. 예를 들어, 프로세서는 도로 위에서 다른 자동차의 모습을 읽어 그것이 '자동차'라는 것을 알아야 한다. 도로 역시 달릴 수 있는 도로를 정확히 인지해야 혼돈과 사고 없이 주행할 수 있다.
그렇다면 자율 주행 자동차에는 어떤 식의 딥 러닝이 쓰여졌을까. 먼저, 비지도 학습방법이다. 비지도 학습방법은 사람이 알려주는 것이 아닌 스스로 알려지지 않는 데이터를 학습하는 것이다. 이 과정에서 새롭게 나타나는 변수를 줄이고 특이한 케이스를 스스로 필터링할 수 있는 효과를 얻는다. 두 번째로는 CNN(Convolutional Neural Network)다. CNN은 사물을 인식하기 위해 2차원 이미지의 픽셀값에서 먼저 특징적인 선이나 색 분포를 추출한 다음에 이를 기반으로 실제 사물을 분류하는 방법을 사용한다. 즉, 들어오는 데이터가 이미지라는 가정 덕분에 이미지가 가지고 있는 특성들을 인코딩할 수 있다는 것이다. 이를 통해 포워드 함수 (forward function)을 더 효과적으로 구현할 수 있으며, 학습시키는데 필요한 모든 수를 크게 줄일 수 있다. 이러한 방식으로 딥러닝에서는 사람의 개입 없이 특징도 머신러닝으로 뽑기 때문에 데이터 수집과 학습 모두를 처리할 수 있다. RNN(Recurrent Neural Network)은 시간의 흐름에 따라 변화하는 음성, 문자, 등의 데이터를 처리하기 위해 사용되었다. RNN은 순간마다 인공신경망 구조를 쌓아 올리는 방식을 사용하는데, 과거 RNN은 인공신경망이 너무 깊기 때문에 오래 전 데이터를 잊어버리는 현상 때문에 학습이 어려운 문제가 있었다. 이 문제는 RNN에서 파생된 LSTM(Long-Short Term Memory)라는 게이트 유닛을 노드마다 배치하는 방법으로 이런 문제를 극복했다.[11] 이런 식의 여러 네트워크를 겹겹이 모아 데이터를 수집하는 심층신경망(Deep Neural Network)은 사물 감지, 인식, 추적 등의 분야에서 자율주행 자동차의 성능 구현에 중요한 요소, 기능이 되어준다.[12]
국내외 여러 자동차 제조사는 2020년에서 2030년까지 완전한 자율 주행 자동차를 내놓을 수 있을 것으로 보고 있다. 또한, 이러한 영향으로 반도체나 통신 업계와의 제휴도 활발해지는 분위기다. 과연 우리는 앞으로 4단계의 완벽한 자율 주행 자동차를 볼 수 있을지 의문이다. 더욱이, 과연 지금 발전해나가고 있는 방안에 앞으로의 자율 주행 자동차에 안전성 문제는 없을지, 기술의 발전에 보안은 어떻게 적용할지 많은 의문이 올라온다. 결국에는 딥러닝이 어떻게 발전하는가에 따라 그 승패가 갈리지 않을까 생각된다. 그렇다면 지금 올라오고 있는 안전성, 보안성 문제는 무엇이 있을 지 2부에서 이야기해보겠다.
=> 위기의 자율 주행 자동차 ①