AI模型與人腦在數學機制上並沒有什麼不同。
只要模型夠大、樣本夠多,AI就可以變得更聰明!
chatGPT的出現,其實已經證明了這一點。
邏輯運算,是產生智慧的基礎運算。
程式語言的基本邏輯是if else,它會根據條件運算式把程式碼分成兩個分支。
在這個基礎上,程式設計師可以寫出非常複雜的程式碼,實現各種各樣的業務邏輯。
人腦的基本邏輯也是if else,if else這兩個字就來自英語,對應的中文詞彙是如果...否則...
人腦在思考問題時也是這麼一個邏輯思路,這點上跟電腦沒有差別。
if else語句,邏輯的核心
#AI模型的「if else語句」就是啟動函數!
AI模型的一個運算節點,我們也可以叫它「神經元」。
它有一個輸入向量X,一個權值矩陣W,一個偏移向量b,還有一個激活函數。
激活函數的作用實際上就是if else語句,而WX b這個線性運算就是條件式。
在啟動之後,AI模型的程式碼相當於在 if分支,而不啟動時相當於執行在else分支。
多層神經網路的不同活化狀態,其實也是對樣本資訊的二元編碼。
深度學習也是對樣本資訊的二進位編碼
AI模型對樣本資訊的編碼是動態的、平行的,而不是和CPU程式碼一樣是靜態的、串列的,但它們的底層基礎都是if else。
在電路層面要實現if else並不難,一個三極管就可以實現。
人腦每時每刻都在獲取外界的信息,每時每刻都在更新自己的“樣本資料庫”,但程式碼無法自我更新,這是很多人能做到的事而電腦做不到的原因。
人腦的程式碼是活的,電腦的程式碼是死的。
「死程式碼」當然不可能比「活碼」更聰明,因為「活碼」可以主動找「死碼」的BUG。
而根據實數的連續性,只要「死代碼」編碼的資訊是可數的,那麼它就總存在編碼不到的BUG點。
這在數學上可以用康托三分集來佐證。
不管我們用多少位的三進位小數去編碼[0, 1]區間上的實數,總有至少1個點是沒法編碼進去的。
所以當兩個人抬槓的時候,總是能找到可抬槓的點
但是電腦的程式碼一旦寫好就沒辦法主動更新了,所以程式設計師可以想出各種辦法欺騙CPU。
例如,intel的CPU本來要求在進程切換時要切換任務門的,但Linux就想出了一個辦法只切換頁目錄和RSP寄存器
在intel CPU看來,Linux系統一直在運行同一個進程,但實際上不是。這就是所謂的進程軟切換。
所以,只要CPU的電路固定了,那麼CPU編碼的資訊也就固定了。
CPU編碼的資訊固定了,那麼它編碼不到的資訊就是無限的,就是可以被程式設計師利用的。
而程式設計師之所以可以利用這種訊息,是因為程式設計師的大腦是活的,可以動態的更新樣本。
神經網路真是一個偉大的發明,它在固定的電路上實現了動態的資訊更新。
所有寫好的程式能處理的資訊都是固定的,包括CPU電路,也包含各種系統的程式碼。
但神經網路不是這樣,它的程式碼雖然是寫好的,但它只需要更新權值數據,就可以改變模型的邏輯脈絡。
實際上只要不斷地輸入新樣本,AI模型就可以不斷地用BP演算法(梯度下降演算法)更新權值數據,從而適應新的業務場景。
AI模型的更新不需要修改程式碼,而只需要修改數據,所以同樣的CNN模型用不同的樣本訓練,它就可以辨識不同的物體。
在這個過程中,不管是tensorflow框架的程式碼,或是AI模型的網路結構都是不變的,變的是每個節點的權值資料。
理論上來說,只要AI模型可以透過網路抓取數據,它就可以變得更聰明。
這跟人們透過瀏覽器看東西(從而變得更聰明),有本質的區別嗎?好像也沒有。
人腦有150億個神經元,而且人的眼睛和耳朵每時每刻都在給它新的數據,AI模型當然也可以做到這一點。
或許比起AI來,人類的優勢在於「產業鏈」更短
一個嬰兒的出生只需要Ta父母,但一個AI模型的誕生顯然不是一兩個程序員可以做到的。
光是GPU的製造業就不只幾萬人。
GPU上的CUDA程式並不難寫,但GPU製造的產業鏈太長了,遠不如人類的出生和成長。
這或許是AI相對於人的真正劣勢。
以上是只要模型夠大、樣本夠多,AI就可以變得更聰明!的詳細內容。更多資訊請關注PHP中文網其他相關文章!