1. 程式人生 > >MIT 深度學習與自動駕駛公開課 Deep Learning for Self-Driving Cars 講義梗概

MIT 深度學習與自動駕駛公開課 Deep Learning for Self-Driving Cars 講義梗概

MIT今年的深度學習與自動駕駛課,課程比較短,只有五節課,是比較基礎的概述。

提綱整理如下:

  1. Introduction to Deep Learning and Self-Driving Cars
  2. Deep Reinforcement Learning for Motion Planning
  3. Learning to Drive: Convolutional Neural Networks for End-to-End Learning of the Driving Task
  4. Recurrent Neural Networks for Steering Through Time
  5. Deep Learning for Human-Centered Semi-Autonomous Vehicles

1. Introduction to Deep Learning and Self-Driving Cars

從AI的概念開始講起,對很多深度學習和自動駕駛領域裡面的概念做了一個簡要的說明。
首先介紹了自動駕駛汽車的各種感測器和自動駕駛車要執行的任務,介紹了DARPA無人車比賽,以及現在工業界的無人駕駛車輛,Google的Waymo, Uber, Tesla, noTonomy.

這裡寫圖片描述
如果將無人駕駛過程比作是對話,比較難的部分在於,如何利用已有的知識來回答問題和得到新的結論。於是引出了深度學習的基礎:神經元結構,感知機演算法,神經網路,然後引申到深度神經網路。
在介紹深度學習部分,概述了計算機視覺領域研究的難點,深度學習得以大規模發展的幾個原因,目前的幾個制約其發展的因素,深度學習的主要應用等。個人覺得這部分可以促進入門者對於深度學習的理解。
深度學習的主要應用領域:影象中的目標分類/識別,語義分割,物件檢測和定位,影象上色,圖片中的文字翻譯,得益與迴圈神經網路模型RNN,現在還可以從文字生成手寫體,字元級別的文字生成,影象字幕生成,關於影象的問題回答,視訊描述生成(視訊摘要),Modeling Attention Steering, Drawing with Selective Attention, 為無聲視訊新增聲音等等。
然後提到了Moravec悖論,也就是對於人來說很簡單不需要思考的事情對於機器來說需要龐大的計算量,而對於人來說需要進行復雜思考的事情,機器解決起來反而很簡單。

對於自動駕駛來說,還有很多挑戰
這裡寫圖片描述

然後介紹了一下深度學習的發展和未來的展望
這裡寫圖片描述
以及常用的一些框架/工具:TensorFlow,Keras,Torch,theano,cuDnn,mxnet,neon,Caffe,CNTK以及在瀏覽器端的Keras.js 和ConvNetJS.
第一課大概就是這樣。

2. Deep Reinforcement Learning for Motion Planning

這裡寫圖片描述

從機器學習的分類開始講起,概略地介紹了一下感知機。然後介紹了一下深度加強學習

這裡寫圖片描述
這裡寫圖片描述

加強學習,智慧體與環境的關係,馬爾科夫決策過程,一個RL智慧體主要由策略,值函式,模型組成。介紹了機器人在室內空間中導航的方法和優化策略。介紹了值函式和Q-Learning方法。
現在發展的趨勢是深度學習和加強學習相結合
這裡寫圖片描述

然後介紹了一下大熱的DQN,Deep Q learning的演算法。

這一課有一個小專案DeepTraffic,線上模擬汽車在車流中的駕駛情況,目標是使車達到最快速度。
又介紹了一下ConvNetJS.

3. Learning to Drive: Convolutional Neural Networks for End-to-End Learning of the Driving Task

介紹了一下卷積神經網路的基本知識。
這裡寫圖片描述

半自動駕駛的任務

這裡寫圖片描述

  1. Localization and Mapping
    6-DOF視覺里程計,SLAM,端到端的使用神經網路的VO
  2. Scene Understanding
    目標檢測,駕駛全場景分割(Tensorflow-SegNet),路面紋理特徵以及從聲音得到路況資訊。
  3. Movement Planning
    這裡寫圖片描述
  4. Driver State
    用深度學習的方法檢測司機的注視區域以及面部微表情(是否已經疲勞駕駛等)

端到端深度學習用於自動駕駛
介紹了一下NVIDIA2016年的重磅論文End-to-End Learning for Self-Driving Cars
這節課有一個動手的專案DeepTesla
詳細介紹了ConvNetJS

4. Recurrent Neural Networks for Steering Through Time

主要介紹了RNN和LSTM(RNN的一種特殊形式)。
迴圈神經網路可以提取到跟時間有關的資訊。Sequence-to-Sequence.
從反向傳播的原理開始介紹,簡單易懂(整個課程對於基本概念的講解用的都是很經典的示例和圖片,是很簡單明瞭的總結)。
這裡寫圖片描述
這裡寫圖片描述
RNN和LSTM可以應用於機器翻譯,從文字生成手寫字型,字元級別的文字生成,回答根據影象提出的問題,影象描述生成,視訊描述生成,Modeling Attention Steering,Drawing with Selective Attention,為無聲電影新增音訊,醫療診斷,股票市場預測,音訊生成,音訊分類等。
Udacity舉辦的端到端駕駛比賽中,第一名和第三名都使用了RNN,Sequence-to-sequence mapping from images to steering angles.

5. Deep Learning for Human-Centered Semi-Autonomous Vehicles

深度學習用於駕駛員狀態的檢測
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述