深度學習在路徑規划上有哪些應用?
本題已收錄至知乎圓桌:人工智慧 · 機器感知,更多「人工智慧」相關話題歡迎關注討論
終於來了個自己研究方向的題目~
PS:路徑規劃(Path Planning)與運動規劃(Motion Planning)在數學上是同一個問題,所以我在文中就直接混用了。
首先,我們要先明確路徑規劃/運動規劃的定義:
簡單地說,就是給定環境、機器人模型,指定規劃目標(如無碰撞到達目的點),自動計算出機器人的運動路徑(可以是一序列離散狀態,也可以是運動策略)。
當然,傳統的運動規劃方法可以看我之前發過的兩篇文章(運動規劃 | 簡介篇,運動規劃 | 視頻篇),這裡就不展開了。所以,如 @Pickles Husky 所說,如果想將機器學習直接塞到現有的運動規劃,似乎並不是一個好方法。於是,只能想辦法發明新的運動規劃框架了。
第一種,當然就是監督學習(Supervised Learning )的形式了。
這個其實很簡單,Andrew Ng 的機器學習公開課(https://www.youtube.com/watch?v=_2zt4yVCkGk )里就提到了這樣的一個例子
如上圖所示,無人車通過輸入前方圖像,在人類駕駛員的標記動作下訓練一段時間後,即可實現汽車的自主駕駛。
當然,上面這個例子的還是很簡單的,所能應對的應用場景也極其有限;深度學習出來後,當然也有人做了類似的工作(前面的答主也有提到過這篇文章):
Pfeiffer, Mark, et al. "From Perception to Decision: A Data-driven Approach to End-to-end Motion Planning for Autonomous Ground Robots." arXiv preprint arXiv:1609.07910 (2016).
這篇文章的意思大概就是利用 CNN 解析激光信息,然後利用 A* 演算法作為標記信息,進行監督學習。所以,這篇論文的工作其實跟前面那個自動駕駛的例子沒什麼太大區別。
目前看來,用監督學習的框架做運動規劃,在環境變化不大的情況下,有可能實現;但是這種方法強烈依賴於標記演算法(平面還好,有A*;高維機械臂的話,沒什麼好的『最優』演算法),而且對環境變化的泛化能力比較弱。
第二種框架就是強化學習(Reinforcement Learning)了。這裡我就先不詳細展開強化學習的內容了,有興趣的可以先去刷一遍 Sutton 的書:
Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. Vol. 1. No. 1. Cambridge: MIT press, 1998.
簡而言之,路徑規劃就是一個標準的 MDP 問題,強化學習可以通過值迭代(value iteration)等方法建立一個表格,用以存儲狀態 s (如機器人當前位置)到動作 a (控制指令)的映射。這樣,把機器人放在地圖中任何一個位置,它都能迅速地確定自己下一時刻的動作,而這個動作將引導機器人運動到目標點。
當然,如果目標點不同、障礙物位置不同,我只需生成多張表格即可。但是,這樣就是造成表格太大,佔用內存太多的問題。
後來,深度學習出現了,它有可能地完成兩件事:1)從感測器觀測數據 o 中提取出狀態 s;2)擬合出狀態 s 與動作 a 的映射關係(就是前面說的表格)。
大名鼎鼎的 DQN 就可以簡單地認為在做這兩件事(當然,它就是 End-to-End 的結構,實際上並不能簡單地分為這樣的兩個步驟):
Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529-533.
深度強化學習的好處是我們不依賴於人工標記的軌跡,只需要指定規劃目標(無碰撞、到達目的地、路徑最短等),讓機器人不斷嘗試、迭代更新網路即可。
當然,這一塊用在路徑規劃的工作也已經有了:
Tai, Lei, and Ming Liu. "Towards cognitive exploration through deep reinforcement learning for mobile robots." arXiv preprint arXiv:1610.01733(2016).
Tai, Lei, Giuseppe Paolo, and Ming Liu. "Virtual-to-real Deep Reinforcement Learning: Continuous Control of Mobile Robots for Mapless Navigation." arXiv preprint arXiv:1703.00420 (2017).
這篇文章就是讓移動機器人在模擬環境中不斷嘗試學習、訓練 DQN,最終得到一個較好的路徑規劃結果。
畢竟,現在 Planning-from-scratch 的規劃方法總是給我一種『人類不是這樣規劃的呀』的感覺;深度強化學習又跟人類的技能學習方法很相似;如果成功,規劃時間很短(一次前向傳播的時間)。所以,我感覺,深度強化學習有希望成為徹底解決機器人運動規劃問題的途徑,未來幾年應該也會湧現出一大堆 paper。
PS:從個人角度而言,如果還只是剛開始做路徑規劃的小夥伴,極度不建議直接上深度學習;我還是比較建議先至少把傳統的規劃演算法體系都搞清楚,之後,如有可能,再去嘗試深度學習。理由的話,以後有機會再聊吧。
機器人小白的一點淺見,目前路徑規劃中使用深度學習的工作還比較少。
這個問題和自己所做的research有關,也和一部分的人討論過,包括一些做深度學習和路徑規劃的大牛。兩個領域的大牛們看法都比較一致,深度學習工具在路徑規劃(至少是傳統路徑規劃)上幫助不大。
深度學習說到底仍然是一種機器學習框架,在某問題中使用深度學習的大前提仍然是將問題描述為機器學習問題,supervised learning或者unsupervised learning,並需要提供相應的數據集以共訓練。而目前路徑規劃問題更多的被轉化為搜索或者能量優化問題來解決,所以在路徑規劃中使用機器學習的工作都較少,或者機器學習並沒有被使用在解決路徑規劃的核心問題上。
相對於傳統機器學習,深度學習最大的特點是能夠自行學習特徵(feature),不依賴於人類設計的特徵,也就是深度學習能夠學習較好的系統的representation。這對於一些機器學習問題非常重要,例如計算機視覺中的物體識別,人類設計的feature與representation遠遜於深度學習所能學習到的。但是在路徑規劃問題中,無論是軌跡還是環境(二維或三維)的representation均是非常明確地,比如occupency grid。所以在路徑規劃問題中深度學習的優勢進一步不明確。
當然以上的討論僅僅限於狹義的路徑規劃(motion planning)領域。從更廣的機器人領域來看,機器人架構並不是被僅僅限於傳統的感知-規劃-執行(sense-plan-act)。目前很多的工作都在嘗試端到端(end-to-end)架構,也就是跳過傳統的規劃,直接有輸入確定輸出(sense-act)。這方面的工作更多是通過增強學習來實現。這方面的工作非常多,包括最有名的Berkeley的Peter Abbeel和Sergey Levine組等等等。使用end-to-end架構可以通過學習來直接使用圖像輸入控制機器人,避免了複雜的三維重建與感知(SLAM問題)與路徑規劃問題。可以說如果end-to-end最終被工程界證實可行的話,三維感知與路徑規劃問題就變得沒有意義,某種程度上也算是被解決了吧。。。。(到時候就失業了。。。)
目前看到聲稱使用深度學習的motion planning工作的僅有一篇:https://arxiv.org/pdf/1609.07910.pdf
從網路結構中我們也可以看到也是end-to-end的方式,其實並不是傳統的路徑規劃。
機器人小白的淺見,尤其機器學習方面一竅不通,大佬們輕拍~
分享一篇論文:Value Iteration Networks([1602.02867] Value Iteration Networks)。這篇文章發在了16年nips上。大致思路就是把2d navigation的問題轉化成一個MDP問題來求解。我覺得比較新穎的地方是巧妙的運用CNN框架裡面的max pooling來實現強化學習裡面value iteration演算法,從而用訓練CNN的方法來實現強化學習的目的。
不過個人感覺強化學慣用在路徑規劃裡面都有種強行套模型的感覺,沒看出比傳統的路徑規劃的優勢體現在何處。這一點歡迎大家來討論
暗中觀察。
目前正在做路徑規劃,大約1.5年路徑規劃領域經驗。細節不能說。
1、整個路徑規劃、甚至GIS領域,估計還在機器學習化的初級階段。
目前看來路徑規劃至少有兩個關鍵問題:
1)全城路況的分布如何有效的建模/降維。
2)路線本身缺乏一個有業務意義且能微分的表示方式,這決定了很難直接通過NN類方案來一步解決。
總的來說就是在前幾層網路上還缺乏圖像中CNN這樣的突破,最後輸出層也缺乏CTC這樣的改進。
2、目前除了傳統A*演算法,一般是用ML的方案做路線好壞排序,這個相對可操作性大一些,不過這個和GIS關係其實就不是很大了。
例行廣告:我們在招人,路徑規劃目前是互聯網地圖領域裡最難的問題,歡迎有興趣的同學前來共同攻關。
探討深度學習應用於路徑規劃的思路兼談它的困難。
運動規劃以前的想法比如A*和visual servoing,本身是一個通過建模在靜態模型上的靜態演算法。數據結構與演算法——CNN在視覺上成功應用的深層原因還是它對數據進行了稀疏表示,而Deep Reinforcement Learning要改良的是演算法,不是數據。這也就是「深度學習的路徑規劃」目前的困難所在。
演算法以及演算法定義的空間並沒有什麼數據稀疏性可言,Deep RL學習出來的value function也好,policy也好,往往不得不對連續的狀態空間進行離散化。經典RL一直面臨一個高維狀態空間因為採樣密度而爆炸的困難。Deep RL也沒有解決這個問題。大數據長時間的學習,終於學到了牛頓定律,形而上的角度來看這種方式是有問題的。
在用Deep RL做運動規劃的領軍人物是 Pieter Abbeel 和 Sergey Levine (當然,規劃的主要是機械臂)。我聽過Abbeel的講座,極有趣的想法,但是實現都是toy example,視頻都是16x的(打比方),Abbeel的頂會文章極多,但是都不太深入,有點灌水的意思。說明這方面工作還有很長的路要走。
總之我依稀感覺到,讓深度視覺成功的稀疏性並不能複製到運動規劃這裡,運動規劃的演算法本質是對數據中規律的抽象而不是數據表達,不是一個universal approximation的問題。如果問題本身沒有稀疏性的話,用deep learning跟brute force有什麼區別呢?拙見拋磚引玉。
打算學習路徑規劃,留個標記
不可否認,深度學習正改變越來越多的人工智慧領域
一方面,深度學習在圖像和語音識別等領域快速滲透,比如圖像處理類應用、視頻歸納、智能客服,以及延伸的服務機器人領域、車載助手等等。隨著訓練方法和網路結構的優化,相比 15 年前,視覺神經網路模型的價格便宜了5到10倍,處理的參數少了 15 倍,但卻表現更好;而越來越多的開源演算法也使得深度學習的門檻大大降低,行業投資邏輯進入應用場景深化結合階段。
在日益增多的多結構數據問題中深度學習都逐漸得到廣泛應用,比如 Deep Instinct 將其應用於安全領域等。未來,神經網路可能會成為 NLP、機器人任務的標準解決方案,並在各個領域扮演重要角色,比如基因行為預測、數據挖掘、翻譯機、機器人、網路安全等等,就好像一個軟體工具包。
過於專註深度學習,也可能無法解決錯綜複雜的計算機視覺問題
在近期召開的計算機視覺國際頂尖會議 CVPR2016 上,深度學習無疑再次成為會議的熱點。不過,也有學者指出,目前的計算機視覺領域太過關注深度學習,且大部分人將目標聚焦在搭建更複雜和精密的神經網路框架,且這些框架基本都是不可擴展的。其實早在 2015 年的 CVPR 會議上, Yann LeCun 就曾談及深度學習存在的問題,比如缺乏理論和論證等。而人們過於聚焦深度學習,導致的一個現象是目前計算機視覺研究理論深度變淺。
計算機視覺問題是一系列錯綜複雜的問題,不僅是判定圖像特徵或運動狀態等問題,在保證一定深度的同時,更需要達到足夠的廣度。那麼,如果只沿著深度學習這條路走下去,且更多地追求搭建更大、更複雜的神經網路,會否出現後續基礎理論支撐跟不上,效率提升在達到某個程度後遇到瓶頸,最終無法解決各種各樣的計算機視覺問題?這就讓時間來檢驗吧。
深度學習在人工智慧領域的應用舉例
從人工智慧發展的階段來看,可以劃分為計算智能、感知智能和認知智能。
在「聽說讀寫」識別類的應用方面 :從基本的人工智慧技術來看有文本識別、語音識別、語義分析、圖像識別、視頻分析等。具體應用上則表現為文字識別儀、語音控制產品、機器翻譯、智能在線客服、人臉識別應用以及智能安防產品等。
在「思考決策」類的應用方面:主要可以對散落在不同場景下碎片化、非結構化的文字、圖片、聲音、視頻等數據應用深度學習方法,對目標對象的特徵進行刻畫。例如可以了解消費者其當前需求甚至挖掘潛在需求,推薦相應的產品或服務,實現精準營銷;或者監控大型複雜設備的實時狀態並對未來的狀態進行預測,實施預測性維護保養等。
一、金融:深度學習融入量化分析,人臉識別助力身份驗證
人工智慧目前在金融領域的應用主要集中在身份驗證、客戶服務、市場分析、客戶關係管理、內容分析、風險控制和商業智能等。人工智慧在金融領域的已有應用。
量化分析:在傳統的投資研究中,基金經理及研究員對財務、交易、市場等數據進行建模,利用回歸分析等傳統方式作出交易策略,而在人工融入量化分析之後,這些工作均由計算機完成。而人工智慧運用於量化投資,在規避市場波動下的非理性選擇、迴避非系統性風險、獲取確定性收益方面等更勝一籌。
深度學習和圖像識別推動人工智慧進入量化分析領域。人工智慧在量化分析領域的應用主要分為兩種模式:第一,深度學習演算法建立模型或模仿專家決策輔助預測,代表公司主要有 Rebellion Research、Castilium 和Alpaca;第二,圖像識別輔助分析外匯交易圖表,代表公司主要有 Alpaca。
人臉識別支付 :人臉識別支付系統是基於臉部識別系統的支付平台,,支付時不需要錢包、信用卡或手機,只需要面對 POS 機屏幕上的攝像頭,系統會自動將消費者面部信息與個人賬戶相關聯。
二、無人駕駛
深度學習在無人駕駛領域的應用主要包括幾個環節:
1、人車交互:自然語言處理(包括語音識別、語義理解等)
目前,深度學習演算法已經在語音識別領域得到廣泛應用,目前語音識別的準確率高達 90%以上,甚至接近 100%,主要得益於深度學習演算法的應用。而深度學習在語音處理領域的應用主要在於機器翻譯以及語義挖掘等方面。我們認為,深度學習演算法的應用加快人與車高效交互的實現。而目前我們已經看到四維圖新聯手普強已經開發出一款前裝語音助手產品。普強的汽車語音產品基本經歷了三個階段:第一步實現車內自然語音識別和理解;第二步成為更接近自然對話的語音助手,可以多輪對話和隨機打斷;第三步做多模態人機交互。
2、環境感知環節:計算機視覺
視覺攝像頭通過不斷獲取周圍環境圖片來實現對環境的感知,而對圖片的計算處理能力的提升很重要的一個途徑就是採用深度學習的演算法,目前卷積神經網路演算法(CNNs)已經大規模應用在圖像識別領域,演算法已經相當成熟。另外,通過其他感測器獲取的環境大數據,同樣可以使用深度學習演算法來提高數據計算能力,這也是 IBM 沃森在無人駕駛中重大價值體現。
3、路徑規劃路況處理:機器學習讓汽車像人一樣思考
人們追求的無人駕駛最終效果是,車輛能夠像車主一樣在面對複雜路況、複雜交通環境時,做出像正常車主一樣的理性判斷和處理。這就需要無人駕駛系統具備自我學習能力,不斷根據與外界交互的數據進行自我反饋、自我學習,最終達到真正的無人駕駛。而這需要無人駕駛車輛不斷積累各樣的交通狀況數據、不停的學習各種突髮狀況的處理。例如,谷歌的無人駕駛汽車目前每天都在接受訓練,目前已經累計行駛 265 萬公里。除此之外,谷歌也會通過本身數據中心資源,以軟體形式讓無人車系統持續以模擬路況方式學習正確駕駛模式,以及在不同狀況如何迅速應對等。
三、醫療:深度學習助力製藥與治療,圖像識別融入醫學影像
人工智慧在醫療健康領域的應用分為八類,分別是健康管理、醫療風險分析、虛擬護士助理、藥物挖掘、診斷、醫學研究和營養學。從 2015年醫療健康領域人工智慧的投資分布來看, 健康管理、醫學影像、醫療風險分析是人工智慧與醫療健康融合最受資本關注的三大領域。
藥物挖掘:深度學習助力藥物挖掘。人工智慧與藥物挖掘的結合極大地提高研發效率,降低企業成本。目前在北美地區已經出現了數家技術領先的初創企業藉助深度學習,與默克等傳統葯企及醫藥研究機構合作,在心血管藥物、抗腫瘤藥物等多領域取得新突破。
醫學影像:醫學影像領域人工智慧的核心技術為圖像識別,即利用人工智讀懂醫學影像的內容。藉助圖像識別技術,醫師可以更高效地做出專業判斷,患者能夠更快速地獲得醫療服務,而醫療機構也可節省成本。在分級診療的大背景下,人工智慧與醫學影像的市場空間在不斷增長。
虛擬醫生:自然語言處理與深度學習使虛擬醫生成為可能。2015 年 12月,生物製藥公司諾和諾德將與 IBM 旗下沃森健康(Watson Health)合作為糖尿病人開發「虛擬醫生」,為患者提供胰島素用量等治療建議。2016年初,谷歌 Deep mind 首席執行官向英國的初創公司「巴比倫」投資 2,500萬美元。巴比倫正在開發醫生或患者說出癥狀後,在互聯網上搜索醫療信息、尋找診斷和處方的人工智慧 APP。
本文轉自藍馳創投BlueRun
Deep Reinforcement Learning 大有可為
(先佔個坑,改天有時間再慢慢道來)
推薦閱讀:
※如何看待 Nervana 被 Intel 收購?
※計算機方向學生 MacBook Pro 128GiB 是否夠用?
※如何評價中科院山世光老師開源的Seetaface人臉識別引擎?
※arxiv只能查看最近一周的論文嗎?
※使用深度學習演算法實現圖像目標跟蹤,該怎麼做?機器學習剛入門,完全沒頭緒。?
TAG:機器人 | 演算法 | 自動駕駛 | 深度學習DeepLearning | 最優路徑 |