Tag Archives: AWS DeepRacer

AWS DeepRacer 自動駕駛賽車模擬實驗營心得分享

以通訊軟體為核心,LINE持續發展圍繞用戶生活的各種服務,同時也抱持著開放的態度,積極與不同的平台或開發工具串聯。因此,我們鼓勵、更贊助LINE的工程師參與各式各樣的外部研討會,激發更多創意或合作的可能性,並於會後撰寫見聞,分享給LINE Engineering Blog的讀者們。 《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 >> 詳細職缺訊息 (Data Engineer, NLP Engineer) 參與機器學習開發後,能把模型放到真實機器上跑是一件很令人興奮的事,尤其是近年來很火紅的自駕車。因此一聽聞Amazon AWS舉辦機器學習戰鬥營,並透過AWS DeepRacer來實驗自動駕駛賽車模擬,幾乎是毫不猶豫就報名了。LINE的許多服務中,都使用到機器學習,更在今年優化”LINE客服小幫手”這個OA,使用自然語言處理與深度學習技術,開發可辨識語意的AI聊天機器人。因此公司一直鼓勵開發工程師可以參加外部的活動,即使活動辦在上班時間,還是可以請公假參加。 這個活動有三個很大的亮點,第一是使用AWS自家出的自動駕駛駕賽車;第二是使用不需要任何標記的強化學習模型(Reinforcement Learning, RL)來訓練;第三是完成模型訓練後,如果有不錯的成績,可以參加今年6/12, 6/13的2019 AWS Summit,把自己的模型放到usb帶到現場,用真實的AWS自動駕駛駕賽車來比賽,台灣區第一名還可以被贊助飛到拉斯維加斯參加決賽。 這次的活動比較像賽前暖身,教會你怎麼使用自動駕駛賽車模擬器,怎麼調整參數與寫強化學習中最重要的報酬函數(reward function),並使用AWS機器學習的平台來訓練與從log中發掘問題。沒有機會參加到實驗營但也很想玩玩看的人也可以參考這篇中”自駕車模擬實驗營實作”的手把手教學。 什麼是AWS DeepRacer? 大部分人可能都是第一次聽到AWS DeepRacer這個名詞,它其實是AWS出的一款1/18比例賽車,讓一般人可以透過很有趣的方式來學習”強化學習模型”(Reinforcement Learning, RL)。開發人員只要使用AWS的雲端平台,與3D模擬器中的虛擬汽車及賽道,就可以很快速的開發自駕車機器學習模型,並部署到DeepRacer上,就有機會與全球的高手一同較高下。 這部1/18比例的賽車(如下圖),目前只能在Amazon上預購,這次在會場難得有機會摸到實機(如下圖),講者特地把殼拆開,裡面由四輪驅動加裝引擎的底盤,加上搭載Intel處理器與一顆攝影鏡頭組成,其他感應器有整合式加速度器和陀螺儀。 出處 什麼是Reinforcement Learning? 目前的機器學習種類主要分為三種(如下圖): 監督式學習(Supervised Learning),非監督式學習(Unsupervised Learning)與強化學習(Reinforcement Learning),其中強化學習不同於監督式學習,不需要標記資料,又與非監督式不同,是一種互動式的學習。例如要教狗學坐下這個動作,可以透過給狗狗獎勵,讓狗狗自己去探索坐下可以得到獎勵,透過學習把獎勵(reward function)最大化的過程,就是強化學習的核心精神。 出處 即使之前沒有聽過強化學習,應該還是有聽過AlphaGo 或AutoML吧!這兩個厲害的產品背後都是用到強化學習的技術。所以它到底是怎麼運作的呢?這邊直接以DeepRacer當例子大家可以比較快進入狀況,首先來認識幾個詞:在這邊賽車代表agent,賽道代表environment,state是賽車在賽道中某一時刻的狀態,action則是賽車(agent)在目前state做出的反應,包含特定的速度與方向盤旋轉的角度的組合。最後reward會根據action算出一個回饋的分數。 簡單來說,整個任務是要訓練賽車(agent)去適應賽道(environment),這個agent會將每個時間點觀察到的集合當作環境的state,從環境的state跟reward再去選擇最好的一個action,稱作策略(policy)。強化學習的目的就是要找出一個最好的policy,可以讓reward最多。而強化學習的核心,就是需要去設計這個reward function。 出處 要了解學習的過程,可以把賽道簡化為下列圖表,每個格子給一個分數,愈接近中線分數愈高,當賽車跑完第一趟時(如圖一),可以計算出這趟的分數,學習結果希望分數愈高愈好,因此車子就會不斷的嘗試(如圖二),直到得到最高的分數(如圖三與圖四)。值得注意的是這邊有一個小陷阱,如果reward function設計只單純設愈高分愈好的話,車子最終也許會盡可能走遍所有的格子來達到目的,但實際上這樣卻會花更長的時間才能抵達終點,因此可能需要加入步數的判斷,設定愈少步分數愈高,則可解決這個問題。 出處 出處 出處 出處 DeepRacer其實已經把強化學習的模型部份實作好了,但開放給大家設計reward function的彈性來體會強化學習的精神,在這個任務中,有以下參數是可以加入reward function的: …