經(jīng)常有人告訴我他們使用人工智能取得了多么令人矚目的成就。其實,這里面有99%的東西都很蠢。
這篇文章可能會被認(rèn)為夸夸其談,但這并不是它的本意,它只想指出為什么以前人工智能專家很少,現(xiàn)在突然涌現(xiàn)出如此多的專家。
大多數(shù)專家貌似都很專業(yè),這是因為很少有人知道他們是怎么操縱AI的。本文就旨在“揭露”他們的內(nèi)幕。
1.從零開始建立一個神經(jīng)網(wǎng)絡(luò),并讓它在手機上運行
你如果能將這11行Python代碼輕松地轉(zhuǎn)換為Java、C或C++代碼,就已經(jīng)掌握了交叉編譯器在3秒內(nèi)可以完成的工作。
大多數(shù)人不知道神經(jīng)網(wǎng)絡(luò)如此簡單。他們認(rèn)為神經(jīng)網(wǎng)絡(luò)是超級復(fù)雜的。就像把復(fù)雜圖形分解成無數(shù)個簡單圖形一樣,神經(jīng)網(wǎng)絡(luò)也可以做一些看起來很復(fù)雜的事情,但是這種復(fù)雜性來自重復(fù)和隨機數(shù)發(fā)生器。
2.建立一個20層的神經(jīng)網(wǎng)絡(luò)
你拿了上面的代碼,然后再次循環(huán)。接下來比較難的是,決定把下一個“For”和“:”放在哪兒。
“深度學(xué)習(xí)”和深度的n層只是一個輸入輸出貫穿于自身的神經(jīng)網(wǎng)絡(luò)。因為你在不斷地循環(huán)再循環(huán),所以它被稱為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN:Recursive neural networks)。
這些不斷重復(fù)的動作與你學(xué)習(xí)駕駛有些類似,假如你只學(xué)會了右轉(zhuǎn)彎,上路后只要遇到路口你就右轉(zhuǎn),你就可以去自己想去的地方。雖然這樣做效率不高,但我們知道右轉(zhuǎn)彎比左轉(zhuǎn)彎更容易。
3.使用英偉達的GPU訓(xùn)練一個神經(jīng)網(wǎng)絡(luò),并移至手機
在上述11行代碼中,錯誤(或未實現(xiàn))的是種子沒有設(shè)置。沒有設(shè)置種子,就不能保證第二次循環(huán)會像第一次循環(huán)一樣獲得相同的隨機數(shù),也就不能保證出現(xiàn)明顯不同的結(jié)果。由于你的手機和電腦不能給出相同的隨機數(shù),而且不同的手機芯片之間可能都有不同的隨機數(shù),所以將基于GPU的訓(xùn)練移植到移動端很不現(xiàn)實。
這樣的訓(xùn)練要花費數(shù)以億計的時間,因此為手機建立一個神經(jīng)網(wǎng)絡(luò)幾乎是不可能的。設(shè)備之間也始終存在差異,對于語音識別來說,識別率增加或者減少5%不是什么大問題,而對癌癥檢測或診斷等事情來說,這就是一件大事了。
4.訓(xùn)練神經(jīng)網(wǎng)絡(luò)去做人類無法做到的事
神經(jīng)網(wǎng)絡(luò)其實就是個愚蠢的黑匣子。如果你有足夠的時間和精力運行它,就會得到比較合適的測試數(shù)據(jù),但你不會從隨機源測試中得到很好的結(jié)果。人工智能非常擅長偽關(guān)聯(lián),比如,把肯塔基州的結(jié)婚率和溺水率相關(guān)聯(lián)。
人們總希望人工智能可以創(chuàng)造奇跡,但大部分AI并不能做人類也做不到的事情。雖然有一些例外,但僅限于透明的AI,而神經(jīng)網(wǎng)絡(luò)是個黑匣子。
5. 使用TensorFlow
還記得上面的那十一行代碼嗎?TensorFlow只是這11行代碼的包裝品。它幫你可視化了這11行代碼中發(fā)生的事情。很多時候,它就像谷歌分析一樣。谷歌分析需要的數(shù)據(jù)都可以在服務(wù)器日志中找到,但是大多數(shù)人看不懂這些日志,他們只能看明白谷歌分析。與此同時,谷歌分析會告訴你,你的服務(wù)器速度很慢,但它不會告訴你原因。
我們這些了解神經(jīng)網(wǎng)絡(luò)的人不需要TensorFlow,因為我們不需要花哨的圖表和動畫來可視化數(shù)據(jù),我們需要看原始數(shù)據(jù)和代碼,才能找出服務(wù)器變慢等問題的原因。
6.把神經(jīng)網(wǎng)絡(luò)用于NLP/ NLU
關(guān)于人類一些常識性的東西,神經(jīng)網(wǎng)絡(luò)的模擬能力并不比鼻涕蟲的高多少。
為英語中的每個單詞構(gòu)建一個具有單一特征的神經(jīng)網(wǎng)絡(luò), 它需要的計算能力和谷歌擁有的計算能力一樣多。在英語中,若把每一個詞的每個意義都賦予一個特征,就需要地球上所有的云服務(wù)都來計算,這顯然是不可能的。人工智能可以做偉大的事情,但神經(jīng)網(wǎng)絡(luò)是有局限性的。
7.有一個自定義的神經(jīng)網(wǎng)絡(luò)
恭喜你, 你已經(jīng)知道如何將11行的神經(jīng)網(wǎng)絡(luò)代碼包裝在9行代碼中, 用于遺傳算法,或包裝在44行代碼中,用于分布式進化算法。你可以用55行代碼寫一篇新聞稿,等等。
8.訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)做事
你現(xiàn)在成了一個數(shù)據(jù)駕馭者,就如同一個訓(xùn)狗師一樣。只要你的狗長著一個鼻涕蟲腦袋,你就可以多次重復(fù)訓(xùn)練它。
同理,擁有一個數(shù)據(jù)訓(xùn)練集也沒有捷徑,只能靠這種單調(diào)笨拙的方法。雖然外界很難了解你的所作所為,但你不要欺騙自己(或者其他人),你只不過是一個鼻涕蟲訓(xùn)練師而已。
9.把神經(jīng)網(wǎng)絡(luò)和區(qū)塊鏈結(jié)合
恭喜你,你終于知道炒作堆棧了。不幸的是,哈希挖掘和神經(jīng)網(wǎng)絡(luò)沒有任何共同之處,并且,用區(qū)塊鏈節(jié)點運行所有數(shù)據(jù)集是行不通的。
當(dāng)你用正常大小的數(shù)據(jù)集以超過16種方式“切片”負(fù)載時,神經(jīng)網(wǎng)絡(luò)開始出現(xiàn)問題。如果你有數(shù)十億的數(shù)據(jù)記錄,或者你在做反向傳播,想要測試多種數(shù)據(jù)表示順序,是可以進行更大擴展的,但這些不能擴展到數(shù)百萬個節(jié)點中。
10.我不怎么用神經(jīng)網(wǎng)絡(luò)
在我使用的工具中,也有神經(jīng)網(wǎng)絡(luò)代碼。但它只是一種選擇,而不是整個產(chǎn)品的基礎(chǔ)。我所做的大部分工作,運用了一種自定義的啟發(fā)式方法。我把使用的各種技術(shù)的組合叫做心智模擬。
神經(jīng)網(wǎng)絡(luò)模擬的是大腦中的硬件,而心智模擬對大腦中的軟件進行模擬。心智模擬只有大約10年的歷史,而神經(jīng)網(wǎng)絡(luò)已經(jīng)有50多年歷史了。
心智模擬的另一個不同之處在于,它屬于透明的AI,需要數(shù)百萬行代碼才能發(fā)揮作用。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4734瀏覽量
100420 -
編譯器
+關(guān)注
關(guān)注
1文章
1617瀏覽量
49017 -
python
+關(guān)注
關(guān)注
55文章
4768瀏覽量
84376
發(fā)布評論請先 登錄
相關(guān)推薦
評論