contributed by <Tim096>
前言
此篇為《用資工的角度看特斯拉的自動駕駛(FSD Beta)上 #4》的下篇,如果還沒看過上篇的觀眾可以先去看一下,會更容易了解此篇喔~當然,如果是只對《用資工的角度看特斯拉、小鵬汽車隔空吵架,自動駕駛未來誰更強?#3》下面幾個問題有興趣的人,直接看這篇就可以囉。以上都放好超連結,方便大家參閱~
最近 Elon Musk 晉升成全球第二大富豪,真是一個可怕的男人,從 2019 年的瀕臨破產,到現在全球第二大富豪,我相信是沒有人預測到的結果,讓人超級期待 Tesla 和 SpaceX 的未來究竟可以對我們的生活的造成什麼影響?
上篇《用資工的角度看特斯拉的自動駕駛(FSD Beta)上 #4》大部分都在講硬體如何支援軟體,下篇就讓我繼續回答問題,來探討軟體的部分吧~
以下分成 5 大點來討論
1. 特斯拉的 Software 2.0 是什麼?
2. 神經網路又是什麼?是如何幫助訓練 AI 的?
3. 特斯拉是怎麼讓車子和人一樣,軟硬體都不更新的情況下,學習並進步?
4. 特斯拉詳細是透過何種方式,利用車主來幫忙訓練 AI 的?
5. Tim096 對 FSD Beta 的總結
特斯拉的 Software 2.0 是什麼?
大家可能會以為特斯拉說的 Software 2.0 是什麼特斯拉自己發明的黑科技,其實不然。Software 2.0 其實在神經網路的領域已經存在一段時間了,至於 Software 2.0 詳細解釋又可以開另一篇文章,因此在此稍微簡略一點說明特斯拉用它來幹嘛?
既然有 Software 2.0,當然會有 Software 1.0 的存在,Software 1.0 大家可以把它看成一台電腦,它的所有功能,都是由開發者「先」做好而使用者才能夠使用。但 Software 2.0 就完全不一樣了,它是一個會寫程式的機器人,它不僅會吸收 Software 1.0 的所有功能,Software 2.0 甚至可以繼續學習變強,把原本的功能變得更完善更強大。至於 Software 1.0 如何進化變成 Software 2.0?詳細過程較難理解,因此筆者把文章已放到超連結了,有興趣的人可以去看一下~
神經網路又是什麼?是如何幫助訓練 AI 的?
神經網路又是什麼?
神經網路又稱類神經網路(英文:Artificial Neural Network,ANN),是一套具有學習功能的系統,就像是模仿人類學習過程一樣。小時候,你最一開始是如何分辨每個人的性別的呢?可能是頭髮、皮膚,但是接下來長大一點,你可能會開始用聲音、喉結等,來幫忙一起判斷這個人的性別,而神經網路也是一樣,對於判斷性別這件事,藉由這一些特徵不同的權重來判斷此人的性別。這就是神經網路的想法。
神經網路又是如何幫助訓練 AI ?
上述簡單提到神經網路是如何進行判斷的。但神經網路又要如何知曉有哪些特徵呢?這邊就會提到為什麼會有一群人說特斯拉的自動駕駛遙遙領先其他廠商的自動駕駛了,因為神經網路理論上就像是人類一樣,你看得越多,就越知道哪些事情(特徵)是重要的,哪些事情(特徵)是不重要的。現在全世界每一台在路上跑的特斯拉,都在幫忙 Elon Musk 教導這一個小孩(神經網路)更準確地判斷路上的一切狀況。人類天生就有視覺,但並非天生會開車,而從不會到會的過程,其實腦袋裡主要增加了兩個大方向的能力:1. 對道路環境的認知和預判、2. 逐漸熟練的駕駛邏輯。而現在神經網路正在透過每一個車主,急速地讓這個系統學會這兩項能力(目前特斯拉已累積至少 30 億英里)。
神經網路不是無敵的
簡單來說,收集的素材越多,素材覆蓋的場景越全,訓練後的神經網絡就越見多識廣,它能應對的場景自然也就越多。通常大部分的素材差異性都不大,也就是說即使素材再多,但場景狀況都很類似的話,那麼神經網路也不會進步的,就像是人一樣「不經一事,不長一智」。神經網絡不會平白無故掌握新技能,只有提供與之前不一樣的「單元測試」素材給它,它才能學到新東西。這些素材通常很罕見,稱為「corner case」。因此各家電動車廠商才會不斷的強調行駛里程的重要性,因為行駛里程較少,那麼自動駕駛能夠適用場景就越少,這也特斯拉目前和其他家自動駕駛最大的差異性。
p.s. 這邊大家可以思考一個問題,即使今天有了這麼多的素材給神經網路訓練,但素材越多代表所需要的算力就越強大,那麼問題就是,這些算力怎麼來的呢?
特斯拉是怎麼讓車子和人一樣,軟硬體都不更新的情況下,學習並進步?
上述有提到 Software 2.0 就像是一個機器人,而且會寫程式。在資工領域,可以拿來寫程式的又稱「編譯器」,而 Software 2.0 就可以當成一個編譯器來使用,因此所有 Software 1.0 死程式碼都可以在 Software 2.0 上面執行。那麼重點就來了,若今天神經網路發現一個彎,它第一次彎失敗了,它會重新的調整,下一次再失敗也沒有關係,它又會重新調整一點,因此理論上,只要給 Software 2.0 夠多的次數嘗試同一個彎道,那麼總有一天,它會可以調整並學習到如何正確的彎過這一個彎道,就像是人類在學開車一樣,任何開車的技巧,不過是熟能生巧罷了。
特斯拉詳細是透過何種方式,利用車主來幫忙訓練 AI 的?
特斯拉就真的直接把車主當實驗品?罔顧車主安全?
大家可能會想一件事情,那這樣特斯拉的車子系統隨時都在改變不會很危險嗎?
當然不是啦,這邊還有兩個東西要特別介紹一下,一個是「隊列」,另一個是「影子模式」。(特斯拉的專利)
隊列:主要大腦,系統可以採集大量且多樣化的道路數據,並且上面放的是正式版的自動駕駛,做出正確的判斷。
影子模式:分身大腦,而這一個大腦上面放的就是測試版的自動駕駛,但它做出的預測和各類指令不會用於車輛的控制。所以即便這個測試版神經網路的預測和指令出錯了也沒關係,反正系統不執行。 不過系統還是會記錄「分身大腦」產出的預測和指令的實際正確率,並用此判斷測試版神經網路的好壞。而其中高錯誤率預測,系統會記錄下相關素材用於後續的神經網路訓練和測試。 這樣特斯拉就可以,通過「影子模式」高效且安全地得到測試版神經網路的實際上路效果啦。
Tim096 對 FSD Beta 的總結
關於 FSD Beta 筆者想聊的真的太多了,但篇幅有限,還是希望透過上下篇,能讓大家對於特斯拉的自動駕駛技術能有更進一步的了解,當然還有許多技術細節,但用資工的角度看這個世界系列文章,不是每一個人都是工程師,可是筆者希望每一人都可以透過這一系列文章,多了解一些自己正在用的技術,以及投資的公司。
筆者在看完這麼多的資料後,真心佩服馬斯克的遠見。FSD Beta 看下來絕對不是一個可以一蹴而成的東西,甚至到現在都還在前進當中(筆者寫稿的 2020/11/26 當天,馬斯克在推特發佈了過幾天又會有一個大更新,如果有機會我們再一起來談談吧~),雖然大家都說馬斯克就單純只是為了成本考量而選擇相機,但其實以目前來看,馬斯克的方案在現階段是更燒錢的,在前一年瀕臨破產的壓力下,馬斯克依舊選擇了這一條路,讓人深感不得不佩服他。
特斯拉
1. 車配備了相機,讓車有了眼睛
2. 特斯拉研發了 HW 3.0,給車裝上了強大的腦
3. FSD Beta 帶來了視覺,讓大腦中有了能看見多維世界的視神經
4. 而 Software 2.0 則在不斷循環訓練中,持續地學習增加駕駛經驗
就目前來看,筆者相信者馬斯克選擇的道路是正確的,未來就是 AI、神經網路的時代,沒有理由現在大家都用眼睛看、用大腦判斷,可以讓我們交通順利運行,在未來就不可以。
當然是否可以達到真正的完全自動駕駛,這又是另一個值得探討的議題,用資工的角度去看是不可能,希望未來有機會能和大家聊聊。