機器學習介入控制系統,前途是否樂觀?(限於車輛控制這塊)

在我哥(同校CS博士生)的影響下對機器學習也有算是比較多的了解吧,然後也在努力點這一塊(包括人工智慧和數據挖掘)的技能點【我有修計算機院的相關課程】。

但是我目前接觸到的絕大多數機械學院的老師(車輛控制在我知道的好幾所學校都是歸ME管)對機器學習介入控制系統都持非常不樂觀的觀點,我認識的一個ME的教授甚至都有『機器學習的自動駕駛在室內能用室外不能用』的言論(不是我老闆,先澄清一下)。

以及,有一位外校的教授(做motor in wheel 控制的),我去聽他的講座的時候他講他用到了谷歌地圖的數據來制定控制決策,但是當我課後問到他是否準備引入機器學習進行實時調整控制系統時他飛快的顧左右而言他了。給人的感覺就是他只是用了谷歌地圖來調整控制系統,但是他們不太願意更進一步的動作。

我不知道是不是我取樣的範圍太小,還是真的機器學習介入控制系統是所謂「有生之年」系列呢?是我對機器學習(人工智慧)的前景太樂觀了嗎?

是不是我不該繼續對機器學習投入精力了呢?(雖然我特別喜歡做這些東西,做出來的東西也特別讓人有成就感,但是考慮到家裡的情況車輛控制仍然會是我以後的主要方向)

追加:

前提是暫時不考慮實時性和硬體計算性能的問題,機器學習介入控制系統,是否樂觀?

考慮實時性和硬體計算性能的問題呢?

那個外校的教授也不是安娜堡的啊!!!!!!!(是安娜堡死對頭之一的www


Robotics方向,好多都是機器學習介入控制系統。不僅有用機器學習做狀態估計的比如 University of Washington 的 Dieter Fox 的很多工作,還有直接用reinforcement learning 做控制的。

而後者幾乎是近幾年robotics方向的寵兒.

最有名的例子: Andrew Ng 和他的學生 Pieter Abbeel 用 reinforcement learning 控制直升飛機做特技動作。德國MPI 的 Jan Peters 承繼他導師 Stefan Schaal 做的 learning based control, dynamic motion primitive.

當然,在控制領域更受歡迎的reinforcement learning 並不是每本機器學習書籍里占篇幅最大的supervise/unsupervise learning. Reinforcement learning 更像是optimal control.

題主你真有心把learning和control結合起來就關注 Pieter Abbeel Jan Peters這些人在Robotics方向的工作. 這些人既懂control,又懂machine learning. 你去問ME系裡專門搞vehicle control的人是不會給你positive的答案的。搞車輛控制的人本身就比搞控制的人保守(因為他們控制的是上面坐著人的汽車),搞控制的人又比搞robotics的人保守。

至於你看不看得到learning 用在 vehicle control的那一天,反正這一天肯定比learning 用在robotics的那一天晚。


考慮自動駕駛的、帶active suspension的電動車。

中下層的控制,比如電機、active suspension,一般要求物理意義明確的控制演算法,可能性不是很大,但誰也不敢絕對地說。上層的控制,如果自動駕駛,那就要用容錯、自適應、自學習等,包括上坡下坡,雪地、雨地怎麼走,或許,只是或許啊,能用在這些容錯控制、自適應機制、自學習機制的調參上。

數據融合,有KF、PF等,物理意義都很明確,可能性也不是很大,但同樣誰也不敢絕對地說。視覺導航上,不知道,但不是也有BA等了嗎。也許所有這些要做到自適應的、自學習,可能,只是可能,調參能用到。

電池的優化使用,和剩餘電量估計,也許,只是也許,能用上。

路徑規劃,也有動態規劃、A*等方法了,不知道能不能用的上。

其實什麼神經網路PID啥的早就有了,沒成氣候。

而且機器學習概念太廣,馬爾可夫、Bayes、蒙特卡羅等,其實就是KF、PF啊。

以上純屬亂說,歡迎指正~

---

其實越是到底層,其控制演算法參數調節的『物理意味『越大。什麼意思呢,其實不僅是工程經驗還是理論都告訴我們,很多時候沒有好壞,只有trade-off。比如disturbance attenuation或叫disturbance rejection,即各個頻率點的干擾機制幅值,其平均值是大於等於一個常數的(不僅針對LTI的控制器,對任意causal的控制器也有類似結果)。這就意味著,再先進『花哨』的控制器,總是要滿足這個性能極限,不能做到所有頻段干擾抑制強,都是按下葫蘆起了瓢。也就是說,大多數時候不能說哪個控制方法更好:一個控制器高頻干擾抑制強低頻弱,一個低頻強高頻弱,怎麼比?這裡的干擾,包括確定的干擾,分析其各個頻率的分量;也包括隨機干擾,分析其功率譜。相比,機器學習就離物理、機理、機制有點遠。

還有比如快速的動態響應,往往意味更大的控制器信號輸出,也就意味著執行機構更高的能耗。這也是個trade-off,比如有的控制對快速性要求不高,但想降低能耗;有的則想盡辦法增加快速響應。

還有響應速度與精度的trade-off。其實這個很複雜。高頻干擾或雜訊時,當然直接trade-off,因為速度要求帶寬大(其實是頻譜更平),但高頻就進來了。但是如果幹擾在低頻,那就不存在矛盾了。或是如果在各個頻率很平均,那要降低方差,也須使得系統的頻率響應較平。而且這還是說的干擾或雜訊跟reference一個地方進來的,因為響應速度主要是說跟reference的響應。干擾或雜訊如果從其他位置進來,比如感測器,或執行機構,或直接在系統輸出上,分析就更複雜了。先不展開了,有感興趣的再說。

說到性能極限,岔開說狀態估計吧。卡爾曼濾波本質之一是,每一步,兩個兩個的,把預測值(基於之前的測量值)跟測量融合在一起,把能降低狀態估計方差的所有信息都用上了。用在數據融合,比如加速度計跟陀螺儀的融合,也是大概如此。在其假設下已經做到極限了。

性能極限還有另外一種用處。比如一個框架,EKF,經驗和理論都tell說,在某種問題,調來調去,也就這麼著了,到頂了。要想提升只有換另一個框架了,比如UKF。

控制中也有類似問題。知道了這個極限,那麼也就心裡有數了,比如調PID,什麼能做到,現狀離做到還有多遠。什麼不能做到,想要做到應該換什麼別的控制框架,或是在PID上面加什麼機制。

就現在來看,PID上面,真正能用的,應對不確定性的真正的魯棒性的控制機制,自適應控制機制,容錯控制機制,現實中都非常需要。還有真正能數據化的PID調參機制,什麼意思呢,就是把靠經驗的調參方法,是不是能『自動化』一點,即使一開始用專家系統或模糊。還有就是真正能用的故障診斷。

其實說到根本,這些控制演算法、估計演算法等,不過是某個框架下調參數。不管用什麼方法,找到了那個現實中好用的框架與參數,就可以用。最簡單的例子,只用PID中的K,有的人用工程經驗,有的人用理論等,最後找到的那個K可能差不多。參數越少的時候,接近物理的經驗方法其實越有優勢,PID本身三個參數,加上改進方法,多是有很強的物理『意味』。而且串級的話,可以PID一層層的調。但參數一多,離物理越遠,人的經驗可能很難顧的過來,這時候理論就有其價值了,但也要在整體上把物理搞清楚。

物理真正搞清楚了,剩下的就是數學、理論了,而且理論的分析會跟現實驚人的接近。否則的話,物理沒搞懂,不知道發生了什麼,效果好不知道為什麼好,也就不知道什麼時候會出問題,更別提出了問題該怎麼辦了,在這種情況下,說理論能用那只是一廂情願而已,頂多是瞎子碰上死耗子。

---

很多機器學習演算法,特別是偏向heulistic的,數學意義大於其物理意義的,離機理遠的,統計意味濃的,相關性大於因果性的,等等吧,多有個特點,就是分析可以,但用來設計往往會出問題。

什麼意思呢?舉個可能不大恰當的例子,大數據的相關性分析,杜撰一個吧,旅遊的頻率跟收入成正比,那為了提高收入,是不是提高旅遊頻率就行了呢?雖不恰當,但意思應該是明白的。


機器學習放在汽車控制系統里,最大的顧慮就是不能處理非常意外的情況,而這種情況的後果往往是性命攸關的。

也就是說,機器學習系統的失誤情況是無法驗證、至少很難驗證的。當然人工實現的決策、狀態機系統也有類似的缺陷,誰也不能保證自己設計的自動控制系統多麼完美,能徹底解放駕駛員。但後者除了故障,工程師或者晶元設計人員能迅速找出問題並修復問題,而機器學習就難以做到這一點了(至少目前為止)。

機器學習介入控制系統其實很多大廠都在做了,個人認為這種直接能盈利、又需要大量資金和人力投入、法律風險大的技術,學校的實驗室還是遠離為好。


從ML的角度來回答一下的話,結論是目前主流的技術,絕對不適合控制,起碼不適合Low Level的控制。

原因也很簡單,就是機器學習這個學科在發展之初,想要解決的問題,就不是控制問題,起碼不是那些僅靠先驗知識就可以數學建模的問題!

人工智慧發展三次winter,其實就是三次思路的大轉變。

在電子計算機剛發明之初,人們認為解決AI問題的終極之道是規則推理,即總結設計一套規則函數來實現智能。這其實就是希望對現實世界建立數學模型嘛。只不過,對複雜一些的問題,人類太笨了想不出來該如何建模。

所以,其實目前所謂的「機器學習」,就是為了針對那些難以進行數學建模的問題,希望通過數據和「學習」來隱式的建立模型進行決策。

回到控制上來說,問題是大量控制問題其實是可以建立一個十分近似的數學模型的,那為什麼要放棄顯式模型,去依賴相當不靠譜的機器學習呢。

那自然很容易想到,對於一些High Level的難以建立數學模型的任務上,是不是機器學習就有用武之地了。比如,在僅依賴雙目攝像頭的情況下,讓機器狗可以像真狗一樣追逐飛盤。起碼為了能識別飛盤,在視頻信號處理上,是要使用一些機器學習技術的。

再說樓上各位提到的Robust問題上,實際上這個問題可以算作ML下的另一個分支了,周志華老師稱之為「魯棒機器學習」,即如何設計一個機器學習演算法,使其能夠保證最壞情況不低於某個下限。不過由於目前IT業對這方面業務的需求不強,目前這個方向好像沒什麼研究。

不過我想做控制的人可能很多都學過自適應信號處理,實際上隨機信號處理和統計機器學習是有共同數學基礎的,都是基於概率論。比如最常用的卡爾曼濾波,其思想和HMM、EM等機器學習演算法是有共通之處的。只不過,似乎國內很少有計算機系會開信號處理的課。不知道有沒有大神對隨機信號處理和統計機器學習都有了解。

回到車輛控制上來,所以我覺得目前主流的機器學習技術並不適合車輛控制。最多可以在HiLevel的控制層面做一些安全的小應用,那些要求高魯棒性的場合還是算了吧。

但是長遠來看,我覺得機器學習和自動化控制不會是水火不容的兩個學科。大自然所有的動物,不都是用生物神經網路實現各種控制的么,有的效果甚至PID還做不到。

另一方面,自然界中任何動物又都可以通過學習來調整自己的控制系統以適應新環境,這不又像個增強學習的過程么。

所以,長遠來看無論是在控制,還是在機器學習領域,還有太多的問題值得研究了。深度學習,沒有現在媒體們吹的那麼神,但也有無數謎團等待破解。

也許最終,兩個方向會走到一起,甚至會不會最終發現某種通用控制演算法,這些都不好說。以前看過一個TED視頻就是國外某團隊研究通過遺傳演算法和增強學習的思路,讓八爪機器人可以自己進化出控制自己前進的能力,十分神奇。

但目前來看,還是有很多未解決的問題,離應用還有很大距離。


做輔助調參應該可行,在有嚴格穩定性保障的控制演算法下,長期運行中積累數據完成自動增益調節應該很不錯。

直接用這個做控制我覺得目前是不靠譜的,尤其是對於現在流行的這種動不動就上幾十個隱層加一堆參數狂調刷性能指標來解決問題的方法,歷史早有定論: With four parameters I can fit an elephant, and with five I can make him wiggle his trunk。先立幾個flag: 不關心魯棒性的控制方法屬於耍流氓,不注重可解釋性的方法沒有前途,不關心科學三大問題的理論沒有研究價值


整車控制方面,機器學習現階段很難實現,我看過的控制器代碼裡面,一個模糊 pid 和卡爾曼濾波就不得了了,可能我看過整車控制器代碼還是太少。

機器學習在車輛故障診斷方面,應該大有作為,整車廠和供應商能想到的故障類型畢竟有限,如果機器學習能快速準確,找出故障位置和類型,無疑會減少維修成本。


以前看到用CNN學習end-to-end controller方法的時候,驚呼控制已死。

後來發現一個問題,

Perception用機器學習是可以的,因為它是一個mapping問題,根據各種感測器數據來估計當前狀態。而Control是一個動態的迭代過程,誤差可能在迭代中放大,你可以用supervised learning來訓練出一個高維非線性端到端巨牛逼的blackbox,在訓練數據上精度很高,但是問題是這個blackbox用來控制的話,存在太多不可解釋性,一旦當前狀態超出了訓練數據集的範圍,那麼控制悲劇很可能發生。

PID為什麼好用,就是把模型簡化為單輸入單輸出線性模型,小學生都可以洞察它的物理原理。

深度神經網路用來無人駕駛的控制,雖然可能會有大數據支持,但是學習了好幾個月,這個深度網路如何去評估它?不知道有大神知道不?而且維度災難對於控制來說不僅僅是訓練問題,而且還有穩定性問題。


你所說的那個方向,最大的問題不在理論,而在於實現的問題。

想一想整車控制器的單片機能實現多少運算?能寫多少代碼?能采多少數據?

還有就是產業化的問題,你實驗室做台樣車可以,但是批量生產呢?每台車讓你訓練下?

但是

但是

但是

但是這些都不是問題,有了想法就去做,你不做永遠不知道到底會是怎麼樣。

想這想那,畏首畏尾,又想高收益又怕高風險,典型的中國知識分子,能成什麼大事?

一句話,大不了失敗了,又不會被砍頭,怕什麼?


謝邀。這個問題問的有趣。大家都有理有據地潑了冷水,讓我幾乎被說服了。我不懂車輛控制,但是鑒於這是一個比較成熟的機電產品,我就根據自己對別的機電系統控制的理解說兩句吧:)

對於底層的,比較簡單的系統建模控制估計等等,我同意大家的觀點,也覺得在這裡機器學習啥的是沒有什麼卵用的。對於要求高精度高帶寬的系統,最實用的辦法就是準確而完整的建模加上根據模型的feed forward,再加上一點點用來抵抗干擾的feed back。在這裡一切learning、adaptive、fuzzy控制方法在實際應用中都只能使系統變慢(請看要求高精度的機電產品中哪裡有真的用adaptive的)

但對於一些本身dynamics比較複雜的,dimension巨大的,建模十分困難的系統(在車輛控制中或許可以考慮流體對系統的影響?)的系統辨識,我卻覺得機器學習的方法會很有意義。建模是控制的基礎。字面上來看,做控制的人考慮的是dynamics,而統計是statistics(static),似乎是有距離的。但如果將dynamics離散化之後考慮每一個時間點和下一個時間點的數據的相關,統計的方法就可以在動力系統的建模和控制中使用。曾經讀過一些robotics和生物方向dynamics的文章用latent variable和回歸的方式來實時建模且設計控制,以及大量的用reinforced learning用於系統辨識控制文章。或許有一天也可以用於比較deterministic的,dynamics複雜的,感測器越來越多的機電系統吧。


我們可以試著從更大的視野看待機器學習與控制的關係。機器學習演算法,比如一些模式識別類的演算法,它的做法一般是先訓練好一個分類器,然後讓一個新的樣本進入分類器,最終輸出一個結果。

這個過程其實也是一個控制器工作過程。控制器本質上是要讓系統不管從哪個初始點出發,我的控制演算法都可以趨使它跑到我希望的狀態(一般為平衡點)。如果我們通過機器學習來識別N類事物,從控制的角度,它是要建立一個具有N個平衡點的系統,這樣當新來一個樣本,它就會跑到其中一個平衡點,也即輸出識別的種類。

總結地,機器學習某種程度上也是設計一個控制器的過程。你有機器學習的底子,對你理解控制很有好處,需要補充的功課是系統動力學建模及一些演算法的學習。


好問題。這個問題好就好在問到了一個不斷快速發展的領域。很多答案一不留神就過時了。

建議題主去看一下Mobileye 在CES2017上的新聞發布會。特別是那篇一帶而過的新發的論文。


我覺得某同學總結的很好,機器學習「不問因果性只問相關性, 只作歸納不作演譯」,換句話說,你的問題就是,我們可以放心一個自動控制系統可以在不問邏輯因果性和不舉一反三的情況下工作嗎?


其實機器學習在車上的應用面非常廣,只不過一般人都比較專註在自動駕駛這一個小範圍內罷了。

如果你說自動駕駛前景的話,目前來看是非常飄渺的,其實情況和5,6年前的新能源方向有些類似。在行業內看各個「行業領軍」OEM的情況才會知道這個方向的冷暖。前年到去年年初的時候自動駕駛真的是火得一塌糊塗,幾個月之內井噴了一樣:突然這個方向的項目數目,參與廠商之多,需要人才的數量之多,簡直讓我都懷疑人生了。但是到去年下旬整個市場又逐漸冷下來了,不少地方都大幅減少了投入。行情簡直和幾年前的新能源方向如出一轍。

但是說到底新能源能慢慢走上正軌,不管是在國外還是在國內,大部分還是靠的政府和政策的扶持,OEM不得不做,前幾年等的只不過是一個明確的政治信號。但是自動駕駛有誰來扶持?創業公司么?

而說到底自動駕駛方向目前吆喝大於效果倒也不是因為「技術不成熟」,做自動駕駛不行,你叫輔助駕駛不也可以么。實際上問題還是沒有被市場認可,廠商在這個技術上還沒有找到真的盈利點。目前大眾消費市場,別說經濟車型,就說中高端的C級,多少用戶又會把有沒有輔助駕駛作為購車的決策支持?又有多少人願意為這個功能買單?

歐洲做ADAS的人經常在說的一句話就是,這個技術目前還是"a pie in the sky",雷聲大雨點小,目前還沒有誰嘗到ADAS的真正甜頭。

為什麼去年年底突然很多項目投入緊縮了?因為第一輪跟風不能在「秀肌肉」上落後的投入已經結束了,VP們的年終獎畢竟要和最終的盈利掛鉤的,沒有人想做最差的一屆領導班子。

而且每年的研發預算就那麼多,每一個研發項目都要有兩個指標:一個是投入市場的周期指標,另一個是短期中期和遠期的盈利指標。除了政府投錢的,工業界大家都實際得很。所以現在這個方向喊得最凶的,還是創業公司們。

但是機器學習就沒有用了么?其實簡單的機器學習和其他控制系統的交互研發方向多得是。

隨便舉一個例子:

目前駕駛性非常優秀的豪華運動車型,可能控制系統搭載了上百張換檔圖(用來決定什麼時候升檔和降檔的時機),花費了標定工程師幾年的心血,為的就是在駕駛路況有輕微改變的時候也能自動切換做出最適合的換檔決策。

但是其實最適合的換檔決策完全是因人而異的,一款手動檔,兩個不同的老司機完全可以開出兩種風格。這裡隨便結合機器學習裡面對駕駛環境的學習以及一般經常駕駛路徑(上下班)個人駕駛習慣的學習,自動變速箱也可以「個性化」定製換檔策略來和駕駛員「人機合一」。

交叉學科方向永遠都是最熱門的方向,因為單一學科玩著玩著經常就會發現遇到創新瓶頸了。

所以題主,推薦你跟著興趣走,不過也要學著多去其他技術方向嘗試。因為玩交叉學科你就會一門怎麼交叉啊?


「機器學習介入控制系統」,那麼問題來了,怎麼「介入」?

就我自己的領域,車輛導航(SLAM),現在有用單攝像頭、立體攝像頭,外加深度、慣性、GPS、激光等各種感測器,已經很好用很強大了。一些機器學習演算法(不僅限於神經網路)實際上無論在精度還是速度上都不如傳統的EKF或者BA等常用演算法。

其他的呢,速度控制,動力系統,機器學習方法和傳統控制方法相比有任何提升嗎?沒有。

說到底,機器學習就是一套工具,而不是能解決所有問題的萬能鑰匙。


關鍵在於能否在理論上證明整個系統有良好的性質

比如演算法的完備性,演算法的複雜度,控制系統的穩定性,等等。

大部分時候,機器學習演算法即使按照正確的方法來設計,也只是保證了概率上的良好性質,換而言之,任然有少部分情況下機器學習的結果是非常離譜的。(更不用說ME的人大部分人既不懂控制理論也不懂人工智慧,都在瞎設計)。所以因該考慮的是怎麼把機器學習的結果和一個能嚴格證明良好性質的演算法相結合以提高性能,而非僅僅用機器學習。

話說 ,無人車本來就應該讓robotics或者CS的人來搞,據我所知全世界的汽車系,包括美國OSU, Umich, UMN的汽車系,在控制和人工智慧都完全不行,就更不用說德國和國內的了。


看到你的老師們都這樣我也就放心了。

有大量樣本覆蓋機器學習或許可以做到99%的正確率,

但汽車需要的是99.99999999...%


有前途呀。發paper的好的城鄉接合部


同對人工智慧用在汽車上感興趣,覺得很多老師做得有局限可以跟他們自身的知識體系有關,除非團隊里的人才足夠多元。不同的知識體系更能碰撞出新的東西


神經網路控制器很多啊,關鍵就是大家說的可靠性問題。不知道最近神經網路的理論進展,根據我好幾年前的知識,它裡面是一個黑箱,數學推導里用了很多近似的,不是完全嚴格的。很多有效性都是通過模擬說明的,所以不能保證系統在特殊情況下不會抽風。


介入是肯定的,但是也有一些問題,在控制學裡,狀態空間,和控制空間都是連續空間,CS里的學習大多數都是在離散有限空間里求解。還有控制要求嚴格的證明,learning based control 在這方面相對較難一點。這就可能是為什麼學習控制ME或者EE等其他工程做得比較多。

至於學習方法上,各有長短。在車輛行駛方面,強化學習就可能面對環境是否stationary的問題,衍生出包括多車輛同時學習,控制輸出的選擇上就涉及到非零和博弈等非常複雜的問題。有可能supervised learning會好一點,或者加強假設和限制。learning手段相結合也可以是一個研究方向。

最近看到很多做learning control的,開始有非常好的文章。控制和人工智慧的融合是不可避免的大方向。儘管學吧,挺有意思的。

以上輸入個人感受,歡迎探討


推薦閱讀:

如何從零開始系統的學習機電安裝工程?

TAG:人工智慧 | 機器學習 | 自動控制 | 車輛工程 | 機電工程 |