如何拯救Uber?

最近優步汽車(Uber)導致一位自行車騎行者因車禍遇難的事件引發了多方關注。很多人認為,系統能力低下的責任應由優步公司承擔,但也有些人認為,事故本身並不值得大做文章。在筆者看來,此類事故確實可以通過技術方式加以避免。然而,為什麼這個問題對於自動駕駛系統而言相對更難以解決?那麼首先,讓我們回答這樣一個問題——“為何優步沒有在自己的汽車上,使用奔馳配備的夜視系統?”

首先需要強調,我並不清楚造成此次事故的具體原因,也不會將其認定為無法避免的狀況。此外,我也不打算在本文當中對任何人加以指責,或者對任何肇事原因作出證明。換言之,我只是在單純討論為什麼這個問題對於人工智能類系統而言,要比常規駕駛情況下更難以解決。

在幾乎所有新型車輛上,我們都能找到常規的碰撞迴避(“collision avoidance”,簡稱CA)系統。這套系統的作用非常單一,或者說只有一項目標——在車輛即將發生碰撞時剎車。這種“確定性”意味著其會在檢測到某種特定信號時,採取與之對應的動作(即制動)。對於同一種信號,其總是會產生同樣的反應。此外,還有一些碰撞迴避系統會根據環境採取一些基於概率的判斷,但總體來講,碰撞迴避系統通常非常簡單:當車輛以不合理的速度接近某個位置時,其會觸發剎車。您可以在程序代碼當中使用簡單的IF語句來實現這項功能。

那麼,為什麼人工智能型系統就做不到這一點?人工智能是系統展示其認知技能的一種能力,例如學習以及解決問題。換言之,人工智能並非依靠預編程方式來監測來自傳感器的已知輸入信號,從而採取預定義的行動。

這意味著,不同於以往對已知情況進行預定義的處理方式,如今我們需要為算法提供大量數據以實現人工智能訓練,並藉此引導其學會如何操作——這就是機器學習的基本原理。如果我們利用機器學習技術建立一套碰撞迴避系統,其完全能夠達到近乎完美的效果——但這也意味著其仍然屬於單一目的系統。它可以剎車,但卻學不會導航。

導航功能由感知並解釋環境、作出決策並採取行動這幾個部分組成。環境感知則包括路徑規劃(駛向何處)、障礙物檢測以及軌跡估算(探測到的物體如何移動)。除此之外還有很多。現在可以看到,避免碰撞只是其需要完成的眾多任務當中的一項。系統同時面對著很多問題:我要去哪裡在、我看到了什麼、如何解釋這些景象、是否有物體在移動、其移動速度有多快、我的軌跡是否會與他人的路線發生交叉等等。

這種自主導航問題太過複雜,無法簡單在程序代碼中使用IF-ELSE語句(IF-ELSE statements)並配合傳感器信號讀取加以解決。為什麼?因為要獲取完成這項任務所需要的一切數據,車輛當中必須包含數十個不同的傳感器。其目標,在於建立一套全面的視野,同時彌補單一傳感器所存在的不足。如果我們現在對這些傳感器所能產生的測量值組合數字進行估算,就會發現這套自動駕駛系統有多麼複雜。很明顯,模擬其中每一種可能的輸入組合已經遠遠超過人類大腦的處理能力。

此外,這種自我學習系統很可能以概率作為指導基礎。如果其在路上注意到某些事物,其會考慮所有的潛在選項併為其附加對應概率。舉例來說,物體為狗的概率為5%,物體為卡車的概率為95.7%,那麼其會將對方判斷為卡車。但是,如果傳感器給出的輸入內容存在矛盾,又該怎麼辦?

這種情況其實相當常見。舉例來說,普通的攝像機能夠清晰拍攝到近距離物體,但只能以二維方式呈現。激光雷達屬於一種激光發射器,其能夠在三維空間中看到同一個物體,但觀察結果卻缺乏細節——特別是色彩信息(詳見下圖)。因此,我們可以利用多臺攝像機從多個角度拍攝以重建三維場景,並將其與雷達“圖像”進行比較。如此得出的綜合結果顯然更為可靠。然而,攝像機對光照條件非常敏感——即使是少量陰影也可能干擾場景中的某些部分並導致輸出質量低下。作為一套出色的識別系統,其應該能夠在這種情況下更多依賴於雷達系統的輸入。而在其它情況下,則更多依賴於攝像機系統。而兩類傳感器得出共識性結論的部分,則屬於可信度最高的判斷。

如何拯救Uber?

圖:我坐在辦公室的椅子上(位於圖像中心位置)揮舞著Velodyne VLP-16雷達。自動駕駛汽車所使用的激光雷達擁有更高的分辨率,但仍然無法與攝像機相媲美。請注意,此圖像來自單一雷達掃描,我們可以進行多次雷達掃描以進一步提升圖像分辨率。

那麼,如果攝像機將目標識別為一輛卡車,但雷達認為這是一隻狗,且兩種結論的可信度對等,結果又將如何?這實際上是一種最為困難,且可能無法解決的狀況。現代碰撞迴避系統會使用記憶機制,其中包含車輛曾經看到過的地圖與寄存內容。其會追蹤圖像之間的記錄信息。如果兩秒鐘之間兩套傳感器(更準確地說,兩種解釋傳感器計數的算法)皆認為目標為卡車,而稍後其中一套認為其是狗,那麼目標仍會被視為卡車——直到出現更強有力的證據。請記住這個例子,我們將在稍後探討優步事件時再次提到。

這裡咱們回顧一下。之前我們已經講述了人工智能必須處理來自眾多不同傳感器的輸入內容,評估傳感器輸入內容的質量並構建場景認知結論。有時不同傳感器會給出不同的預測結果,而且並非所有傳感器在任意時間段內皆可提供信息。因此,該系統會建立一套影響判斷過程的記憶機制,這一點與人類一樣。此後,其需要將這些信息加以融合,從而對當前狀況作出一致的判斷進而驅動汽車行進。

聽起來不錯,那麼我們能否信任這樣的AI系統?系統的質量取決於其整體架構的組合水平(使用哪些傳感器、如何處理傳感器信息、如何融合信息、使用哪些算法以及如何評估決策等等)以及實際使用及訓練所用數據的性質與數量。即使架構完美,如果我們提供的數據量太少,其也有可能犯下嚴重錯誤。這就像是委派缺少經驗的工作人員執行一項艱鉅的任務。數據總量越大,意味著系統將擁有更多學習機會並作出更好的決策。與人類不同,人工智能可以彙集數百年來積累的經驗,並最終提供比任何個人都更為出色的駕駛能力。

那麼,這樣的系統為何還會引發傷亡事故?在接下來的文章中,我們將提到很多可能的情況,而其中錯誤的評估結論就有可能導致事故。我們還會探討哪些情況下,人工智能系統更有可能作出錯誤判斷。

  • 首先,如果系統未能看到充足的類似數據,則可能無法正確理解當前情況。

  • 第二,如果當前環境難以感知,且傳感器輸入內容的可信度不高或者信號混雜,則可能引發錯誤判斷。

  • 第三,如果對傳感器輸入內容的理解與基於系統記憶的理解相矛盾(例如在前一個時間步幅內將對象認定為卡車,但後一個步幅內傳感器將其判斷為狗),則可能引發錯誤判斷。

  • 最後,我們無法排除存在其它故障因素的可能性。

沒錯,任何擁有合理設計的系統都能夠單獨處理其中的一類問題,然而:

  • 解決矛盾需要時間;

  • 多項因素的共同作用可能導致錯誤的決策及行為。

在進一步研究具體情況之前,我們首先簡單介紹一下現代傳感器能做到什麼、又不能做到什麼。

理解傳感器技術

很多人表示,如今的技術已經如此先進,因此優步汽車應該能夠明確識別出正在過路的行人,包括那些因為走錯了路而繞轉回來、或者突然從暗處衝入照明區域的行人。那麼,傳感器能夠測量到哪些情況,又無法應對哪些場景?這裡,我談的單純只是測量,而非理解測量內容的能力。

  • 攝像機無法觀察到暗處的事物。攝像機是一種被動式傳感器,其只能記錄照明環境下的事物。我將這一條列在最前面,是因為目前已經有不少強大的攝像機能夠在黑暗環境中正常拍攝(例如HDR攝像機)。然而,這類設備所能適應的其實是弱光而非無光環境。而對於無光環境,雖然紅外及紅外輔助攝像機能夠切實解決問題,但自動駕駛汽車上採用雷達代替這類設備。因此大多數用於自動駕駛汽車的攝像機仍然無法“看”清暗處的事物。

  • 雷達能夠輕鬆檢測到移動的對象。

    其利用無線電波自物體處反射回來時,運動目標造成的反射波在多普勒頻移效應下出現的波長差異。然而,常規雷達很難測量體積較小、移動緩慢或者靜止的物體——因為從靜止物體反射回來的波,與從地面反射回來的波之間只存在極小的差別。

  • 激光雷達的工作原理與普通雷達相似,只是發射激光從而輕鬆在三維空間內繪製任何表面。為了增大三維成像範圍,大多數激光雷達會不斷旋轉,像複印機掃描紙張那樣持續掃描周邊環境。其不依賴於外部照明,在黑暗條件下也能夠準確發現目標。然而,雖然高端激光雷達擁有出色的分辨率水平,但其需要配合強大的計算機以重建三維圖像。因此如果有廠商聲稱其激光雷達能夠以10 Hz(即每秒進行10次三維掃描)的速率進行工作,記得問問他們能不能提供10 Hz的數據處理能力。雖然市場上幾乎所有自動駕駛系統皆使用激光雷達,但ElonMusk認為激光雷達僅具有短期意義,因此特斯拉公司並沒有使用這項技術。

  • 紅外線能夠通過溫度區分物體,因此其對溫度顯然非常敏感。

    如果陽光照下,其可能無法區分不同物體間的差別,因為紅外線在自動駕駛系統中作用有限。

  • 超聲波傳感器在低速條件下非常適合用於碰撞迴避系統。大多數停車傳感器都使用超聲波技術,但其工作範圍很小,因此如果利用其進行碰撞迴避,往往會導致在發現目標時已經來不及制動。正因為如此,特斯拉等希望將解決方案引入高速公路行駛環境的廠商更傾向於選擇雷達。

這套系統可能出現什麼問題?

1、我們首先來看看這張照片,大家在其中注意到了什麼?

如何拯救Uber?

圖:在摩天大樓高聳入雲的市區內,人們正在穿越人行橫道。

你有沒有注意到騎自行車的行人?他顯然並不打算跟汽車搶路,而是停下來靜等汽車通過後再繼續前進。

如何拯救Uber?

圖:來自上圖中的部分內容,騎自行車的行人。

因此第一種可能的解釋是,該算法看到很多騎自行車的人都會等待汽車經過後再繼續前進。很明顯,如果某套人工智能系統只要遇到騎行者就選擇剎車,那麼其質量水平絕對堪憂。那麼,其是否會認定某位陌生的騎行者有可能搶行——即不同於大部分等待汽車通過的騎行者?雖然這個假設非常重要,但卻沒有足夠的數據就這種狀況提醒AI系統。雖然Waymo曾經於兩年前(當時還被稱為谷歌汽車)宣佈其能夠準確識別騎行者甚至其手勢,但騎行者探測與預測仍是一個懸而未決的難題。

2、理解缺失。看看下面這張照片:

如何拯救Uber?

假設我們的系統能夠區分出讓路的騎行者與不讓路的騎行者,那麼優步事故中的騎行者無疑處於二者之間的盲區當中。這意味著只有激光雷達能夠及時檢測到其是否停車。也許當時雷達確實檢測到了正確結果,但從三維點雲當中正確識別出騎行者仍要比從拍攝圖像中將其檢測出來困難得多。系統是否將其識別為騎行者,或者其它朝著汽車移動而來的物體?也許沒有,因為參照另一條車道上的正常物體,系統決定繼續行駛。同樣,如果我就是圖中的行人,而且不太清楚駛過來的是什麼樣的汽車,那麼我有可能選擇繼續前進。當然,如果車輛繼續朝我衝來,很有可能引發事故。但根據生活經驗,在99.99%的情況下,這樣的假設並不合理。

照明之後發生了什麼?

關於系統為何沒有做好充分的碰撞迴避準備,我們還可以提出更多合情合理的解釋。然而,為什麼系統沒有在騎行者進入光照環境後剎車?對此,我們難以找到簡單的答案。在某些情況下,確定性系統會進行剎車(雖然未必能夠徹底避免碰撞)。如果我在常規街道上進行車輛測試,我可能會額外準備一套確定性系統作為補充。但現在,讓我們專注於AI系統的表現。

正如我之前所提到,現代自動駕駛系統都擁有記憶功能,並且要根據環境的不同而對各傳感器採取不同的採集標準。暗處是一類極具挑戰的條件,因為光照不足,因此其無法實時操作攝像機並對結果抱有足夠的信心。因此,AI系統在夜間環境下很可能更傾向於使用激光雷達。正如前文所述,激光雷達的感測輸出每秒進行10次,但處理能力則取決於具體系統——且一般達不到掃描的實際頻度。因此,比較強大的筆記本電腦可能每秒會處理一次掃描結果(包括將原始輸入內容轉換為三維圖像,再從圖像中查找對象並理解其含義)。利用特定硬件將能夠提升這一速度,但仍然不太可能達到10 Hz水平——至少在不影響分辨率的前提下不太可能。

現在,讓我們假定人工智能知識在暗處存在某個物體,並更傾向於相信激光雷達提供的數據。當騎行者行進至車前時,攝像機會及其它傳感器會識別到這一對象。而一旦信號解釋完成,確定性系統就會剎車。但在人工智能系統看來,這些信息可能還包括以下含義:

如何拯救Uber?

不明飛行物?大氣光暈?我們需要將其與自動駕駛AI進行比較。(1)一方面,該系統擁有值得依賴的傳感器,即激光雷達,其告知系統汽車前方沒有任何物體(由於處理速度較慢,其並未及時發現騎行者的行動)。(2)其有可能調用傳感器的測量歷史記錄,其中沒有任何信息表明將有物體可能與汽車相撞。(3)最後,一部分傳感器提到汽車前方存在障礙物。(4)也許算法能夠對該障礙物進行分類。現在,決定權就在AI手上。

我們必須考慮到,人工智能系統是以概率作為判斷基礎的。這意境豐每個傳感器都存在一些錯誤率,畢竟測量結果不可能100%準確。此外,來自傳感器數據的對應預測結論也存在錯誤。為什麼會出錯?如果攝像機與激光雷達給出的判斷不一致(或者尚未能匹配圖像),那麼系統將無法獲得精確的三維數據圖像,因此只能從攝像機二維圖像中進行重建。下面,讓我們看看優步事故當中騎行者的形象:

圖:亞利桑那州警方發佈的視頻截圖。

由於缺少三維信息,該系統只能依賴機器學習模型檢測當前目標——而且不清楚自身與目標間的距離。為什麼無法識別出騎行者?下面我們提出幾種假設:

如何拯救Uber?

  • 此人身著黑色夾克(參見黃色區域),與夜間環境融為一體。很多人認為現代攝像機完全能夠將黑色夾克與黑夜背景區分開來——沒錯,但大多數機器學習算法都無法使用200到300萬像素的圖像進行實時模型訓練。為了縮短處理過程,大多數模型所使用的圖像分辨率僅為1000 x 1000像素,甚至更低。儘管部分建模者表示能夠處理200萬x 100萬像素的圖像,但其仍然無法在夜間檢測到騎行者。這是因為大多數情況下,相關模型仍會使用分辨率較低的圖像,或者在某一區域內對像素值進行平均以構成超像素。因此,實際上這類圖像中只有部分物體能夠被準確識別出來。

  • 如果沒有合適的三維信息(提供距離數據),自行車可能會被錯誤分類——請參閱上圖中的綠色與粉紅色標記註釋。當我們人類看到整體圖像時,會立即注意到這個人。因為自行車框架(用粉紅色圓點標記)非常近似於汽車尾燈(同樣用粉紅色標記)。回到概率方面的討論——在夜間行駛時,算法認為在車前遇到汽車尾燈或者自行車車架的具體可能性,分別是多少?其很可能曾經看到過多種不同形狀的尾燈,但卻很少見到自行車車架橫在車前。因此,其傾向於將目標判斷為尾燈。

  • 最後,我在路燈下標記了一個橙色的點,你可以從圖片中找到與之相同的顏色及形狀。

所以,如果攝像機的錯誤率太高,自動駕駛系統可能不會對其輸入內容予以採信。也許系統將粉色區域判定為70%可能性為自行車,77%可能性為尾燈——考慮到實際情況,這樣的猜測其實相當合理。

說到這裡,我已經基本理清了思路:建立一套擁有自動駕駛能力的人工智能系統絕對是一項非常艱鉅且具有挑戰性的任務,特別是考慮到複雜性極高、可用數量較少且極易出錯的訓練數據集。此外,其中某些功能如果使用確定性算法來實現,難度將大大降低。為早期自動駕駛汽車配備一些確定性備用系統以實現碰撞迴避應該是個好主意。另外,可以完全肯定的是,沒人能夠純粹利用確定性方法建立自動駕駛汽車。

最後,我要再次重申,我並不清楚導致此次事故的具體原因,也許實際情況跟我的猜測完全不是一回事。但至少在閱讀本文之後,相信大家不會再被社交媒體上那些號稱在1、2、5甚至10年前就存在的事故預防技術比現有自動駕駛系統更出色的說法給忽悠。而且雖然我承認這樣的事實很難接受,但實際情況證明能夠避免此類事故的技術確實存在,只是人工智能系統還無法對其充分加以利用。換言之,在此次事故之後,已經有研究項目為人工智能制定了超過900種其必須有能力解釋的危害場景。

那麼,如果我為優步汽車編程,能夠拯救這位騎行者的生命?

答案是,沒人知道。現代人工智能系統的內部結構過於複雜,因此無法對優步汽車的數據處理機制進行評估。實際上,無論人工智能系統來自我、你、Waymo或者特斯拉,其同樣會基於概率作出判斷——否則這就不能算是一套人工智能系統。從另一個角度講,每套智能系統都將不可避免地犯下錯誤,並從中學習經驗。

最後,請務必將碰撞迴避系統作為備份方案納入自動駕駛汽車!目前的智能方案還遠遠稱不上完美,千萬不要操之過急!

編譯:科技行者


分享到:


相關文章: