增強學習與無人駕駛
增強學習簡介
增強學習是最近幾年機器學習領域的最新進展。增強學習的目的是通過和環境交互學習到如何在相應的觀測中采取最優行為。行為的好壞可以通過環境給的獎勵確定。不同的環境有不同的觀測和獎勵。例如,駕駛中環境的觀測是攝像頭和激光雷達采集到的周圍環境的圖像和點雲,以及其他傳感器的輸出(如行駛速度、GPS定位和行駛方向)。駕駛中的環境的獎勵根據任務的不同,可以通過到達終點的速度、舒適度和安全性等指標確定。
增強學習和傳統機器學習的最大區別是增強學習是一個閉環學習的係統,增強學習算法選取的行為會直接影響環境,進而影響該算法之後從環境中得到的觀測。傳統的機器學習把收集訓練數據和模型學習作為兩個獨立的過程。以學習一個人臉分類的模型為例,傳統機器學習的方法首先需要我們雇傭標注者標注一批人臉圖像的數據,然後我們在這些數據中學習模型,最後我們可以把訓練出來的人臉識別模型在現實的應用中進行測試。如果發現測試的結果不理想,那麼我們需要分析模型中存在的問題,並且試著從數據收集或者模型訓練中尋找問題的原因,然後從這些步驟中解決這些問題。對於同樣的問題,增強學習采用的方法是通過在人臉識別的係統中嚐試進行預測,並且通過用戶反饋的滿意程度調整自己的預測,從而統一收集訓練數據和模型學習的過程。增強學習和環境交互過程的框圖如下。
增強學習存在著很多傳統機器學習不具備的挑戰。首先,因為在增強學習中沒有確定的在每一個時刻應該采取哪個行為的信息,所以增強學習算法必須通過探索各種可能的行為才能判斷出最優的行為。如何在可能行為數量較多的情況下有效地進行探索是增強學習中最重要的問題之一。其次,在增強學習中一個行為不僅可能影響到當前時刻的獎勵,而且還可能影響到之後所有時刻的獎勵。在最壞的情況下,一個好行為不會在當前時刻獲得獎勵,而會在很多步都執行正確後才能得到獎勵。在這種情況下,增強學習判斷出獎勵和很多步之前的行為有關是非常難的。
無人駕駛的人工智能包含了感知、決策和控製三個方麵。感知指的是如何通過攝像頭和其他傳感器的輸入解析出周圍環境的信息,例如有哪些障礙物、障礙物的速度和距離、道路的寬度和曲率等。而感知模塊不可能做到完全可靠。Tesla的無人駕駛事故就是在強光的環境中感知模塊失效導致的。增強學習可以做到,即使在某些模塊失效的情況下也能做出穩妥的行為。增強學習可以比較容易地學習到一係列的行為。無人駕駛中需要執行一係列正確的行為才能成功的駕駛。如果隻有標注數據,學習到的模型每個時刻偏移了一點,到最後可能會偏移非常多,產生毀滅性的後果。增強學習能夠學會自動修正偏移。
無人駕駛決策與增強學習
無人駕駛的決策是指給定感知模塊解析出的環境信息如何控製汽車的行為達到駕駛的目標。例如,汽車加速、減速、左轉、右轉、換道、超車都是決策模塊的輸出。決策模塊不僅需要考慮到汽車的安全性和舒適性,保證盡快到達目標地點,還需要在旁邊的車輛惡意的情況下保證乘客的安全。因此,決策模塊一方麵需要對行車的計劃進行長期規劃,另一方麵需要對周圍車輛和行人的行為進行預測。而且,無人駕駛中的決策模塊對安全性和可靠性有嚴格的要求。現有的無人駕駛的決策模塊一般是根據規則構建的。雖然基於規則的構建可以應付大部分的駕駛情況,對於駕駛中可能出現的各種各樣的突發情況,基於規則的決策係統不可能枚舉到所有突發情況。我們需要一種自適應的係統來應對駕駛環境中出現的各種突發情況。
基於規則的決策係統大部分可以用有限狀態機表示。例如,無人駕駛的高層行為可以分為向左換道、向右換道、跟隨和緊急停車。決策係統根據目標可以決定執行高層行為。根據需要執行的高層行為,決策係統可以用相應的規則生成底層行為。基於規則的決策係統的主要缺點是缺乏靈活性。對於所有的突發情況,基於規則的決策係統都需要寫一個決策。這種方式很難對所有的突發係統麵麵俱到。
1 . 無人駕駛模擬器
無人駕駛的決策過程中,模擬器起著非常重要的作用。決策模擬器負責對環境中常見的場景進行模擬,例如車道情況、路麵情況、障礙物分布和行為、天氣等。同時還可以將真實場景中采集到的數據進行回放。決策模擬器的接口和真車的接口保持一致,這樣可以保證在真車上使用的決策算法可以直接在模擬器上運行。
無人駕駛模擬器的第一個重要的功能是驗證功能。在迭代決策算法的過程中,我們需要比較容易地衡量算法的性能。例如,我們需要確保新的決策算法能夠在常見的場景中正確安全地運行。我們還需要對新的決策算法在常見場景的安全性、快捷性、舒適性進行打分。我們不可能每次更新算法時都在實際的場景中進行測試,這時有一個能可靠反映真實場景的無人駕駛模擬器是非常重要的。
模擬器的另一個重要功能是進行增強學習。通過在模擬器裏模擬出各種突發情況,增強學習算法可以利用其在這些突發情況中獲得的獎勵學習如何應對這些突發情況。這樣,我們隻要能夠模擬出足夠的突發情況,我們的增強學習算法就可以學習到對應的突發情況的處理方法,而不用每種突發情況都單獨寫規則處理。而且,我們的模擬器也可以根據之前增強學習對於突發情況的處理結果,盡量產生出當前的增強學習算法無法解決的突發情況,從而增強學習的效率。
綜上所述,無人駕駛模擬器對決策模塊的驗證和學習都有著至關重要的作用,是無人駕駛領域的核心技術。如何創建出能夠模擬出真實場景、覆蓋大部分突發情況,並且和真實的汽車接口兼容的模擬器是無人駕駛研發的難點之一。
2 . 增強學習在無人駕駛中的應用和展望
增強學習在無人駕駛中有很高的前景。我們在TORCS模擬器中使用增強學習進行了探索性的工作。TORCS是一個賽車的模擬器。玩家在這個模擬器中的任務是超過其他的AI車,以最快的速度達到終點。雖然TORCS中的任務和真實的無人駕駛的任務還有很大的區別,但是由於其中算法的評估非常容易進行,TORCS現在常用於研究無人駕駛中的增強學習算法。增強學習算法一般可以以前方和後方看到的圖像作為輸入,也可以以環境的狀態作為輸入(例如自己的速度、離賽道邊緣的距離和跟其他車的距離)。
我們這裏使用了環境的狀態作為輸入,使用Deep Q-Learning作為學習算法學習。(關注微信:bvbooks,回複“DQL”獲取“增強學習算法”資訊)環境的獎勵定義為在單位時刻車輛沿跑道的前進距離。另外,如果車出了跑道或者和其他車輛相撞,會得到額外的懲罰。環境的狀態包括了車輛的速度、加速度、離跑道的左右邊緣的距離、和跑道的切線的夾角、在各個方向上最近的車的距離等。車的行為包括向上換擋、向下換擋、加速、減速、向左打方向盤、向右打方向盤等。
與普通的Deep Q-Learning相比,我們做了以下改進。首先,我們使用了多步的TD算法進行更新。多步的TD算法能夠比單步的算法每次學習時看到更多的執行步數,因此也能夠更快地收斂。其次,我們使用了Actor-Critic的架構。Actor-Critic將算法的策略函數和值函數分別用兩個網絡表示,這樣的表示有兩個優點。
(1)策略函數可以使用監督學習的方式進行初始化學習。
(2)在環境比較複雜時,學習值函數非常困難。把策略函數和值函數分開學習可以降低策略函數學習的難度。
使用了改進後的Deep Q-Learning算法,我們學習到的策略在TORCS中可以實現沿跑道行走、換道、超車等行為。基本達到TORCS環境中的基本駕駛的需要。Google DeepMind直接使用圖像作為輸入,也獲得了很好的效果,但是訓練的過程要慢很多。
現有的增強學習算法在無人駕駛的模擬環境中獲得了很有希望的結果,但是可以看到,如果需要增強學習真正能夠在無人駕駛的場景下應用,增強學習算法還需要有很多改進。
第一個改進方向是增強學習的自適應能力。現有的增強學習算法在環境的性質發生改變時,需要試錯很多次才能學習到正確的行為。而人在環境發生改變的情況下,隻需要很少的試錯就可以學習到正確的行為。如何隻用非常少量的樣本學習到正確的行為是增強學習能夠實用的重要條件。
第二個重要的改進方向是模型的可解釋性。現在的增強學習中的策略函數和值函數都是由深度神經網絡表示的。深度神經網絡的可解釋性比較差。由於可解釋性差,在實際使用中出了問題很難找到問題的原因,也比較難排查。在無人駕駛這種人命關天的任務中,無法找到問題的原因是完全無法接受的。
第三個重要的改進方向是推理和想象的能力。很多時候,人在學習的過程中不需要有一定的推理和想象的能力。例如,在駕駛時,人們不用自己真正嚐試,也知道危險的行為會帶來毀滅性的後果,這是因為人類對這個世界有一個足夠好的模型來推理和想象出相應行文可能會發生的後果。這種能力不僅對增強學習算法在存在危險行為環境中的表現非常重要,在安全的環境中也可以大大加快算法收斂的速度。
隻有在這些方向做出了實質性的突破,增強學習才能真正使用到無人駕駛或者是機器人這種重要的任務場景中。希望更多的有誌之士能夠投身於增強學習的研究,為人工智能的發展貢獻出自己的力量。
本文選自《第一本無人駕駛技術書》,點此鏈接可在博文視點官網查看此書。
想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
最後更新:2017-06-20 17:02:29