AI代碼到底長什么樣?有美人痣?閑的?圓潤嗎?
虛竹在想念自己夢姑的時候,好歹還有夢境作為記憶碎片。而那些讓人許多AI公司爆火的、融資拿到手軟的AI代碼是不是也如某國公主一般呢?
直到筆者看到這兩張圖:
當然以上純屬玩笑,在QUORA上,一位畢業于印度理工學院人工智能與計算機科學專業、工作于Facebook的工程師Sriraman Madhavan。
寫了這么一個答案:
這是我寫的一個案列:根據名字來確定你是來自印度哪個地區的。根據你名字的不同狀態,可以判定你的家庭人員情況,以下是代碼片段:
下面這個代碼不是我寫的,這是個谷歌根據圖片生成描述文字的創新。下面是根據圖片生成描述的案例:
但等等!別高興得太早,就上面這個代碼也引發了啼笑皆非的笑話。
如果調教不好,AI可能有點愚蠢。
下面再看一個復雜的例子:
我們必須記住,AI主要只是一堆數學邏輯(尤其是在討論機器學習和深度學習時)。編碼的作用只是讓計算機去執行它,并從數據中得以學習。我認為要知道AI代碼長什么樣,并不是要了解背后代碼的外觀,和如何編寫代碼,而是要更多理解代碼中到底發生了什么。
比如,我們如何創建能夠識別MNIST數據庫中這些手寫數字的東西呢?
如下圖,只是一些Python代碼,背后有很多數學邏輯。[1]
是不是看完頭皮發麻?
我自己都覺得很難理解它。
這到底是個什么玩意兒?其實就是數學邏輯。
每個手寫數字由28*28像素組成,那么就共有784個像素。且每個像素都被用作神經網絡的輸入,我們用它來訓練網絡。每個像素都被認作為一個輸入,并通過中間隱藏層,也就是下圖中的15個神經元。經過那里,我們將得到最有可能的數字估計。
即我們就會得出哪個數字的激活率最高。這種感覺就如同下圖:[2]
那么我們在執行代碼時會發生什么?我們所建立的網絡類型稱為前饋神經網絡,這意味著所有數據都在一個方向上。我們使用反向傳播算法來計算我們當前數據的誤差,通過更改設置并在此運行神經網絡。
我們得出這樣的輸出:
從中可以看出,在第一輪中,我們神經網絡能夠正確地對51%的數字進行分類,通過訓練最終正確率能達到81%。相當不錯的改進吧?隨機猜測數字會給你10%的準確率!精度還可以進一步提高,只需要更多的計算能力。此外,對代碼的更改還可以優化學習速度。使用普通計算機,你可能就會獲得低于4%的錯誤率,而最佳結果是錯誤率低于1%。[3]
我們在這里做了什么?
這行代碼中,我們告訴網絡:
1,784個輸入神經元;
2,30個隱藏層;
3,10個輸出神經元。
其次,我們使用一種隨機梯度下降的方法來訓練我們的網絡,并“降低我們的成本”。
(備注:關于隨機梯度下降法,各位看官請自行搜索。)
-
AI
+關注
關注
87文章
30763瀏覽量
268909 -
代碼
+關注
關注
30文章
4780瀏覽量
68539
原文標題:人工智能代碼到底長什么樣?
文章出處:【微信號:TechSugar,微信公眾號:TechSugar】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論