brunch

You can make anything
by writing

C.S.Lewis

by 라인하트 Oct 30. 2020

앤드류 응의 머신러닝(9-8): 자율주행

   온라인 강의 플랫폼 코세라의 창립자인 앤드류 응 (Andrew Ng) 교수는 인공지능 업계의 거장입니다. 그가 스탠퍼드 대학에서 머신 러닝 입문자에게 한 강의를 그대로 코세라 온라인 강의 (Coursera.org)에서 무료로 배울 수 있습니다. 이 강의는 머신러닝 입문자들의 필수코스입니다. 인공지능과 머신러닝을 혼자 공부하면서 자연스럽게 만나게 되는 강의입니다. 


Neural Networks : Learning

인공 신경망 : 학습


Application of Neutal Networks  

(인공 신경망의 응용) 


Autonomous Driving (자율 주행)      


   In this video, I'd like to show you a fun and historically important example of neural networks learning of using a neural network for autonomous driving. That is getting a car to learn to drive itself.


   이번 강의에서 역사적으로 중요하고 재미있는 자율 주행에 관한 신경망 사례를 설명합니다. 자율 주행은 자동차가 스스로 운전하는 법을 배우는 것입니다. 


   The video that I'll showed a minute was something that I'd gotten from Dean Pomerleau, who was a colleague who works out in Carnegie Mellon University out on the east coast of the United States. 


    영상 하나를 보여드릴 것입니다. 미국 동부 해안에 있는 카네기 멜론 대학에 일하는 동료인 Dean Pomerleau가 보내준 영상입니다. 





   And in part of the video you see visualizations like this. And I want to tell what a visualization looks like before starting the video. Down here on the lower left is the view seen by the car of what's in front of it. And so here you kinda see a road that's maybe going a bit to the left, and then going a little bit to the right. 


   영상에서 머신 러닝을 시각화한 것을 볼 수 있습니다. 왼쪽 아래에 있는 영상은 자동차가 바라보는 모습입니다. 현재 왼쪽 옆으로 가는 길과  약간 오른쪽 위로 가는 길이 보입니다. 



   And up here on top, this first horizontal bar shows the direction selected by the human driver. And this location of this bright white band that shows the steering direction selected by the human driver where you know here far to the left corresponds to steering hard left, here corresponds to steering hard to the right. And so this location which is a little bit to the left, a little bit left of center means that the human driver at this point was steering slightly to the left. And this second bot here corresponds to the steering direction selected by the learning algorithm and again the location of this sort of white band means that the neural network was here selecting a steering direction that's slightly to the left. 


   And in fact before the neural network starts leaning initially, you see that the network outputs a grey band, like a grey, like a uniform grey band throughout this region and sort of a uniform gray fuzz corresponds to the neural network having been randomly initialized. And initially having no idea how to drive the car. Or initially having no idea of what direction to steer in. And is only after it has learned for a while, that will then start to output like a solid white band in just a small part of the region corresponding to choosing a particular steering direction. And that corresponds to when the neural network becomes more confident in selecting a band in one particular location, rather than outputting a sort of light gray fuzz, but instead outputting a white band that's more constantly selecting one's steering direction.


   왼쪽 상단에 있는 영상에서 첫 번째 가로 막대는 사람이 어디로 운전하는 지를 보여줍니다. 흰색 밴드는 운전자가 선택한 조향 방향을 보여줍니다. 운전대를 왼쪽으로 돌리면 흰색 밴드는 왼쪽으로 향하고, 오른쪽으로 돌리면 흰색 밴드는 오른쪽으로 향합니다. 그림에서 흰색 밴드는 약간 왼쪽에 치우친 위치에 있습니다. 운전대가 중앙에서 약간 왼쪽으로 돌렸다는 의미입니다. 그리고, 두 번째 막대는 학습 알고리즘이 선택한 운전 방향입니다. 현재 흰색 밴드의 위치는 인공 신경망이 여기서 약간 왼쪽으로  운전 방향을 선택했다는 의미입니다. 


   실제로 처음 학습을 시작하기 전에 신경망은 회색 밴드를 출력합니다. 전체 영역에 걸쳐 균일한 회색 밴드는 신경망이 랜덤 초기화가 되었다는 것을 의미합니다. 신경망은 처음에 차를 운전하는 방법을 모릅니다. 어떤 방향으로 가야 할지를 모릅니다. 잠시 동안 학습한 후 신경망은 특정 조향 방향을 선택하는 것을 의미하는 흰색 밴드를 출력합니다. 그것은 인공 신경망이 조향 방향을 선택하지 못하고 넓은 균일한 회색을 표시하는 것 대신에 특정 영역에 밴드를 선택하는 자신감을 가진다는 것입니다.



   ALVINN is a system of artificial neural networks that learns to steer by watching a person drive. ALVINN is designed to control the NAVLAB 2, a modified Army Humvee who had put sensors, computers, and actuators for autonomous navigation experiments.


   ALVINN은 Autonomous Land Vehicle In a Neural Network의 약어로 신경망을 활용한 자율형 육상 차량을 의미합니다. ALVINN은 사람이 운전하는 것을 보면서 조종하는 법을 배우는 인공 신경망 시스템입니다. ALVINN은 자율 항법 실험을 위해 센서, 컴퓨터 및 구동장치를 장착한 개조된 군용 험비인 NAVLAN 2를 제어하도록 설계되었습니다. 



   The initial step in configuring ALVINN is creating a network just here. During training, a person drives the vehicle while ALVINN watches. Once every two seconds, ALVINN digitizes a video image of the road ahead, and records the person's steering direction. 


    ALVINN의 초기 단계는 인공신경망을 만드는 것입니다. ALVINN은 학습을 하는 동안 사람이 운전하는 것을 지켜봅니다. 2초 당 한 번씩 ALVINN은 전방의 도로의 이미지를 디지털화하고 사람의 조향 방향을 기록합니다. 



   This training image is reduced in resolution to 30 by 32 pixels and provided as input to ALVINN's three layered network. Using the back propagation learning algorithm, ALVINN is training to output the same steering direction as the human driver for that image.


   ALVINN은 학습 이미지의 해상도를 30 X 32 픽셀로 축소하고 3 계층 인공 신경망에 전달합니다. 역전파 학습 알고리즘을 사용하여 ALVINN은 해당 이미지에 대해 사람과 동일한 조향 방향을 출력하도록 훈련합니다. 



   Initially the network steering response is random. After about two minutes of training the network learns to accurately imitate the steering reactions of the human driver. 


   처음에는 인공 신경망의 조향 반응은 랜덤입니다. 인공 신경망을 약 2 분간 훈련시킨 후 인공 신경망은 정확히 사람의 조향 반응을 정확하게 모방합니다. 다른 도로 유형에 대해서도 동일한 교육 절차를 반복합니다. 



   This same training procedure is repeated for other road types. After the networks have been trained the operator pushes the run switch and ALVINN begins driving. Twelve times per second, ALVINN digitizes the image and feeds it to its neural networks. Each network, running in parallel, produces a steering direction, and a measure of its' confidence in its' response. The steering direction, from the most confident network, in this network training for the one lane road, is used to control the vehicle.


   인공 신경망은 훈련을 마친 후 운영자가 실행 스위치를 누르면 ALVINN이 운전을 시작합니다. ALVINN은 초당 12번 이미지를 디지털화하여 인공 신경망에 정보를 제공합니다. 병렬로 실행되는 각 인공 신경망의 조향 방향과 응답에 대한 신뢰도 측정을 생성합니다.  가장 확실한 인공신경망의 조향 방향은 1차선 도로에서 움직이는 차량을 제어합니다. 







   Suddenly an intersection appears ahead of the vehicle. As the vehicle approaches the intersection the confidence of the lone lane network decreases. 


   갑자기 차량 앞에 교차로가 나타납니다. 차량이 교차로에 접근함에 따라 1 차선 인공 신경망의 신뢰도가 감소합니다. 



   As it crosses the intersection and the two lane road ahead comes into view, the confidence of the two lane network rises. When its' confidence rises the two lane network is selected to steer. Safely guiding the vehicle into its lane onto the two lane road.


   교차로를 건너고 전방 2차선 도로가 보이면 왼쪽 상단의 세 번째 막대인 2 차선 인공 신경망의 신뢰도가 크게 높아집니다. 신뢰도가 높아지면 2 차선 인공 신경망이 조종합니다. 2차선 도로에서 자챵을 차선으로 안전하게 안내합니다. 


   So that was autonomous driving using the neural network. Of course there are more recently more modern attempts to do autonomous driving. There are few projects in the US and Europe and so on, that are giving more robust driving controllers than this, but I think it's still pretty remarkable and pretty amazing how instant neural network trained with backpropagation can actually learn to drive a car somewhat well.


   이것이 인공 신경망을 사용하는 자율 주행입니다. 최근에는 보다 현대적인 자율 주행 시도가 있습니다. 미국과 유럽 등에서 이것보다 더 강력한 주행 컨트롤러를 제공하는 프로젝츠는 거의 없지만 역전파로 훈련된 인스턴트 신경망이 실제로 자동차를 잘 운전하는 법을 배울 수 있다는 것은 여전히 놀라운 일입니다. 



앤드류 응의 머신러닝 동영상 강의





정리하며

   ALVINN은 Autonomous Land Vehicle In a Neural Network의 약어로 인공 신경망을 활용한 자율주행 육상 차량을 의미합니다. ALVINN은 사람이 운전하는 것을 보면서 조종하는 법을 배우는 인공 신경망 시스템입니다. 


   인공 신경망은 사람이 운전하는 것을 2 분 동안 배운 후 사람의 조향 반응을 정확하게 모방합니다. 다른 도로 유형에 대해서도 동일한 교육 절차를 반복합니다. 1차선을 달리는 것을 학습한 인공 신경망과 2차선을 달리는 것을 학습한 인공 신경망이 병렬로 연산합니다. ALVINN은 각 상황에서 더 나은 신뢰도를 보여주는  인공 신경망을 선택하여 방향을 결정합니다.



매거진의 이전글 앤드류 응의 머신러닝(9-7): 인공 신경망 총정리
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari