- PyTorch深度學習與企業級項目實戰
- 宋立桓 宋立林
- 1785字
- 2024-12-31 19:17:12
1.2 人工智能的本質
舉一個簡單的例子,如果我們需要讓機器具備識別狗的智能:第一種方式是將狗的特征(毛茸茸、四條腿、有尾巴……)告訴機器,機器將滿足這些規則的東西識別為狗;第二種方式是完全不告訴機器狗有什么特征,但我們“喂”給機器10萬幅狗的圖片,機器就會自己從已有的圖片中學習狗的特征,從而具備識別狗的智能。
其實,AI本質上是一個函數。AI其實就是我們“喂”給機器目前已有的數據,機器從這些數據中找出一個最能擬合(即最能滿足)這些數據的函數,當有新的數據需要預測的時候,機器就可以通過這個函數來預測這個新數據對應的結果是什么。
對于一個具備某種AI智能的模型而言,一般具備以下要素:“數據”+“算法”+“模型”,理解了這三個詞,AI的本質你也就搞清楚了。
我們用一個能夠區分貓和狗圖片的分類器模型來輔助理解一下這三個詞:
● “數據”就是我們需要準備大量標注過是“貓”還是“狗”的圖片。為什么要強調大量?因為只有數據量足夠大,模型才能夠學習到足夠多且準確的區分貓和狗的特征,才能在區分貓和狗這個任務上表現出足夠高的準確性;當然,在數據量不大的情況下,我們也可以訓練模型,不過在新數據集上預測出來的結果往往就會差很多。
● “算法”指的是構建模型時打算用淺層的網絡還是深層的網絡,如果是深層的網絡,我們要用多少層,每層有多少神經元,功能是什么,等等,也就是網絡架構的設計,相當于確定了我們的預測函數大致結構應該是什么樣的。
我們用Y=f(W,X,b)來表示這一函數,X是已有的用來訓練的數據(貓和狗的圖片),Y是已有的圖片數據的標簽(該圖片是貓還是狗)。聰明的你會問:W和b呢?問得好,函數里的W(權重)和b(偏差)我們還不知道,這兩個參數是需要機器學習后自己找出來的,找的過程也就是模型訓練的過程。
● “模型”指的我們把數據代入算法中進行訓練,機器就會不斷地學習,當機器找到最優W(權重)和b(偏差)后,我們就說這個模型訓練成功了,這個時候函數Y=f(W,X,b)就完全確定下來了。
然后就可以在已有的數據集外給模型一幅新的貓或狗的圖片,模型就能通過函數Y=f(W,X,b)計算出這幅圖的標簽究竟是貓還是狗,這也就是所謂的模型的預測功能。
至此,你應該已經能夠理解AI的本質了。我們再簡單總結一下:無論是最簡單的線性回歸模型還是較復雜的擁有幾十甚至上百個隱藏層的深度神經網絡模型,本質都是尋找一個能夠良好擬合目前已有數據的函數Y=f(W,X,b),并且希望這個函數在新的未知數據上能夠表現良好。
前面提到的科沃斯發布的DG70,只提供一個“眼睛”和有限個傳感器,但卻要求其可以識別日常家居物品,比如前方遇到的障礙物是拖鞋還是很重的家具腳,可不可以推過去?如果遇到了衣服、抹布這種奇形怪狀的軟布,機器還需要準確識別出來以避免纏繞。
讓掃地機器人完成圖像識別大致會經過以下幾個步驟:
步驟01 定義問題:就像剛剛說的,根據掃地機器人的使用場景,識別家居場景里面可能遇到的所有障礙物:家具、桌角、抹布、拖鞋等。有了這些類別定義,我們才可以訓練一個多分類模型,針對掃地機器人眼前看到的物體進行分類,并且采取相應的規避動作。對于很多不了解機器學習的同學來說,能夠理解到這一步其實已經是巨大的認知突破了。因為機器智能無法像人類一樣學習,自我進化,舉一反三。當前階段的機器智能永遠只能忠實執行人類交給他的任務。
步驟02 收集數據 & 訓練模型:接下來接著收集數據,并且標注數據。現在的深度神經網絡動不動就有幾百萬個參數,具有非常強大的表達能力。因此需要大量的數據,而且是標注數據。所謂標注數據,就是在收集了有關圖片后,需要人工標注員一個一個判斷這些圖片是否屬于上面已定義類別中的某一個。在工業界這個成本非常昂貴,一個任務一年可能要花費幾百萬美金,僅僅是為了做數據標注。有了高質量的標注數據,才有可能驅動深度神經網絡擬合真實世界問題。
步驟03 這么復雜的人工智能運算在這個具體案例上是在本地機器上運行的。一方面,要保護用戶隱私,不能將用戶數據上傳到云端;另一方面,掃地是一個動態過程,很多運算對時效性要求非常高,稍有延遲可能一不小心就撞到墻壁了。
綜上所述,連簡單的“識別拖鞋”都需要經過上面這么復雜的過程。因此,掃地機器人雖小,但其涉及的技術領域堪比自動駕駛。而對于自動駕駛汽車來說,其信號收集過程也跟上面差不多。不過為了保證信號的精確程度,現代的自動駕駛汽車除圖像視覺信號外,車身還會配備更多的傳感器,精確感知周圍環境。