2 個(gè)月從零開(kāi)始入門(mén) AI ,我是如何做到的?
編者按:人工智能正在成為像“電力”一樣的東西,每一個(gè)關(guān)系未來(lái)發(fā)展的人都應(yīng)該對(duì)其有所了解。尤其是開(kāi)發(fā)者,不懂人工智能,競(jìng)爭(zhēng)力將會(huì)在將來(lái)大幅度下降。在Shival Gupta發(fā)表在Hacker Noon上的一篇文章中,他介紹了自己怎樣在2個(gè)月入門(mén)學(xué)習(xí)人工智能的歷程。文章由36氪編譯。
現(xiàn)在這個(gè)時(shí)代,每個(gè)人都很忙。人們的個(gè)人生活和職業(yè)生涯都在發(fā)生著巨大的變化。最重要的是,隨著像人工智能這樣的技術(shù)開(kāi)始變得越來(lái)越流行,你會(huì)發(fā)現(xiàn)在接下來(lái)的兩年里,你所掌握的技能會(huì)變得過(guò)時(shí)。
當(dāng)我關(guān)閉我的創(chuàng)業(yè)公司Zeading時(shí),我猛然醒悟過(guò)來(lái)。感覺(jué)自己錯(cuò)過(guò)了一些非常獨(dú)特的東西。
在不斷變化的情況下,作為一名傳統(tǒng)意義上的全棧工程師是不夠的。在接下來(lái)的兩年里,如果沒(méi)有掌握人工智能技術(shù),全棧工程師將不再是全棧工程師了。
是時(shí)候采取行動(dòng)了。我做出了我認(rèn)為現(xiàn)在唯一能做的行動(dòng) —— 更新了我作為一名開(kāi)發(fā)者的技能,并以產(chǎn)品經(jīng)理一樣的心態(tài)和企業(yè)家一樣的理念來(lái)面對(duì)數(shù)據(jù),并以數(shù)據(jù)為導(dǎo)向。
正如著名的風(fēng)險(xiǎn)投資家、人工智能和金融科技行業(yè)的思想***Spiros Margaris對(duì)我說(shuō)的那樣:
如果創(chuàng)業(yè)公司和企業(yè)只依靠先進(jìn)的人工智能和機(jī)器學(xué)習(xí)算法來(lái)展開(kāi)競(jìng)爭(zhēng),是遠(yuǎn)遠(yuǎn)不夠的。人工智能將不再是一項(xiàng)競(jìng)爭(zhēng)優(yōu)勢(shì),而是一項(xiàng)基本要求。你聽(tīng)到有人把“用電”作為競(jìng)爭(zhēng)優(yōu)勢(shì)嗎?
構(gòu)建我的***個(gè)神經(jīng)網(wǎng)絡(luò)
一個(gè)非常常見(jiàn)的建議是在Coursera上聽(tīng)Andrew Ng(吳恩達(dá))的課程。這是一個(gè)非常好的入門(mén)方式,但我發(fā)現(xiàn),我很難長(zhǎng)時(shí)間保持清醒。我并不是說(shuō)這門(mén)課很糟糕,但我真的很難在課堂上保持專(zhuān)注。我的學(xué)習(xí)模式一直都是實(shí)踐,從實(shí)踐中獲取新的知識(shí)。所以我想,我為什么不自己來(lái)打造一個(gè)神經(jīng)網(wǎng)絡(luò)呢?
但我沒(méi)有直接去著手構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),因?yàn)樗且粋€(gè)更加高級(jí)的學(xué)習(xí)方法。我剛開(kāi)始先去試著熟悉這個(gè)領(lǐng)域里的所有的術(shù)語(yǔ),這樣我就能對(duì)這個(gè)領(lǐng)域有所了解。
***個(gè)任務(wù)不是學(xué)習(xí)。而是熟悉。
我是純Javascript和Node js出身,當(dāng)時(shí)并不想換成其他的編程語(yǔ)言。因此,我搜索了一個(gè)名為“nn”的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)模塊,然后通過(guò)模擬輸入用它來(lái)實(shí)現(xiàn)一個(gè)“AND”操作。受一個(gè)教程的啟發(fā)(傳送門(mén)),我選擇了這么一個(gè)問(wèn)題:對(duì)于任意的輸入 X,Y,Z,輸出結(jié)果都是 X AND Y。相應(yīng)的代碼如下:
當(dāng)?shù)玫降慕Y(jié)果是0.9971時(shí),我意識(shí)到,這個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)學(xué)會(huì)了如何做一個(gè)AND操作,并且忽略了附加的輸入。這樣的結(jié)果極大地增強(qiáng)了我的自信心。
這就是機(jī)器學(xué)習(xí)的要點(diǎn)。你給計(jì)算機(jī)程序一組數(shù)據(jù),它能夠自動(dòng)調(diào)整內(nèi)部參數(shù),使其能夠在新數(shù)據(jù)上回答問(wèn)題,而原始數(shù)據(jù)中的誤差也在減少。
這種方法,正如我后來(lái)了解到的,也被稱(chēng)為梯度下降(gradient descent)。
補(bǔ)充人工智能相關(guān)的知識(shí)
在我完成了***個(gè)人工智能程序后,我充滿了信心,我想知道作為一名開(kāi)發(fā)人員,我還能做些什么。
-
我解決了一些監(jiān)督學(xué)習(xí)的問(wèn)題,如回歸和分類(lèi)。
-
我通過(guò)一個(gè)有限的數(shù)據(jù)集,嘗試用多元線性回歸預(yù)測(cè)哪支隊(duì)伍將取得比賽勝利(雖然當(dāng)時(shí)的預(yù)測(cè)很不準(zhǔn)確,但確實(shí)很酷)。
-
我在Google機(jī)器學(xué)習(xí)云的上做了一些演示,看看現(xiàn)在人工智能能做什么(作為一款SaaS工具,Google已經(jīng)做得非常好了)。
-
我偶然發(fā)現(xiàn)了AI Playbook,這是一個(gè)很棒的資源,由著名的風(fēng)險(xiǎn)投資基金Andreessen-Horowitz收集組織。對(duì)于開(kāi)發(fā)者和創(chuàng)業(yè)者來(lái)說(shuō),這的確是最方便的資源之一。
-
我開(kāi)始在Youtube上觀看以深度學(xué)習(xí)和機(jī)器學(xué)習(xí)為核心的Siraj Rawal的精彩頻道。
-
我讀了一篇發(fā)表在Hacker Noon上的精彩文章,內(nèi)容是關(guān)于硅谷的展示者如何打造Not Hotdog的應(yīng)用程序。這是我們能做的、且最容易理解的深度學(xué)習(xí)的例子之一。
-
我開(kāi)始閱讀特斯拉的人工智能主管Andrej Karpathy的博客。雖然說(shuō)我很難理解其中的內(nèi)容,讓我很頭疼。但我發(fā)現(xiàn),在嘗試了更多的時(shí)間之后,我開(kāi)始理解其中的一些概念了。
-
帶著一些勇氣,我開(kāi)始逐字地(復(fù)制和粘貼)來(lái)執(zhí)行一些深度學(xué)習(xí)教程,并試圖訓(xùn)練模型,并在我的本地機(jī)器上運(yùn)行代碼。大多數(shù)情況下,結(jié)果都不容樂(lè)觀,因?yàn)榇蠖鄶?shù)模型需要的訓(xùn)練時(shí)間很長(zhǎng),而且我也沒(méi)有 GPU。
逐漸地,我從JavaScript切換到了Python,并在我的Windows機(jī)器上安裝了Tensorflow。
整個(gè)過(guò)程,我都是在被動(dòng)地消化內(nèi)容,并在腦海里建立了一些相關(guān)的認(rèn)知,當(dāng)以后遇到真正的問(wèn)題時(shí),就可以使用這些知識(shí)了。
正如Steve Jobs在斯坦福大學(xué)演講時(shí)所說(shuō)的,你在向未來(lái)展望的時(shí)候不可能將這些片斷串連起來(lái),你只能在回顧的時(shí)候串起它們。
做一個(gè)聊天機(jī)器人
作為電影《Her》的忠實(shí)粉絲,我也想要打造一個(gè)聊天機(jī)器人。我接受了這個(gè)挑戰(zhàn),然后用Tensorflow在不到兩小時(shí)內(nèi)完成了這項(xiàng)舉動(dòng)。并在幾天前的一篇文章中概述了我是怎么完成的以及它的商業(yè)需求。
幸運(yùn)的是,這篇文章廣受好評(píng),在網(wǎng)上瘋傳(傳送門(mén),36氪編譯文章)。這對(duì)我個(gè)人而言,這是一個(gè)非常好的現(xiàn)象,畢竟我才剛開(kāi)始寫(xiě)技術(shù)博客。我認(rèn)為這篇文章是我人工智能學(xué)習(xí)之旅的一個(gè)里程碑。
它讓我在Twitter和LinkedIn上結(jié)交了很多朋友,我可以和他們深入地討論人工智能開(kāi)發(fā),發(fā)現(xiàn)自己的不足,甚至在我遇到問(wèn)題時(shí),他們也能夠伸出援手。我也收到了一些咨詢(xún)項(xiàng)目的offer。最重要的是,年輕的開(kāi)發(fā)者和人工智能初學(xué)者開(kāi)始問(wèn)我,我是如何開(kāi)始學(xué)習(xí)人工智能的。
這就是我寫(xiě)這篇文章的原因。幫助更多的人從我的學(xué)習(xí)過(guò)程中獲得靈感,開(kāi)始他們自己的學(xué)習(xí)過(guò)程。
萬(wàn)事開(kāi)頭難,入門(mén)是任何過(guò)程中***挑戰(zhàn)性的部分。
結(jié)語(yǔ)
這絕對(duì)不是一個(gè)容易的事情。當(dāng)我開(kāi)始被Javascript卡住的時(shí)候,我?guī)缀踉谝灰怪g就開(kāi)始用上了Python,并學(xué)會(huì)了如何用其編寫(xiě)代碼。當(dāng)我的模型無(wú)法在我的i7機(jī)器上進(jìn)行訓(xùn)練時(shí),我開(kāi)始變得煩躁,甚至在經(jīng)過(guò)數(shù)小時(shí)的訓(xùn)練后,它們也會(huì)返回一個(gè)很顯然是錯(cuò)誤的結(jié)果,即球隊(duì)贏得板球比賽的概率是50/50。學(xué)習(xí)人工智能不像學(xué)習(xí)一個(gè)Web框架。
這是一項(xiàng)技能,你需要了解計(jì)算的微觀層面上發(fā)生了什么,并找出對(duì)輸出結(jié)果產(chǎn)生極大影響的部分——代碼或數(shù)據(jù)。
同樣,人工智能也不僅僅是一個(gè)學(xué)科。它是一個(gè)“從簡(jiǎn)單的回歸問(wèn)題到總有一天會(huì)殺了我們的致命機(jī)器人”的統(tǒng)稱(chēng)。就像你所從事的其他學(xué)科一樣,你可能會(huì)想要在人工智能領(lǐng)域挑選出你想要擅長(zhǎng)的東西,比如計(jì)算機(jī)視覺(jué)或自然語(yǔ)言處理等等。
在與人工智能、金融科技和加密技術(shù)領(lǐng)域的***Gaurav Sharma的對(duì)話中,他向我表示:
在人工智能時(shí)代,“聰明”(being smart)將意味著完全不同的東西。我們需要人們?nèi)?zhí)行更高層次的、批判性的、創(chuàng)造性的,或其他需要更多情感投入的工作。
想要開(kāi)始這段學(xué)習(xí)過(guò)程,你必須讓自己沉迷于計(jì)算機(jī)如何突然學(xué)會(huì)用它們的方式來(lái)做事情。耐心和好奇心是你應(yīng)該堅(jiān)持的兩個(gè)關(guān)鍵原則。
這是一次重大的旅行。非常累人,也非常煩人,而且特別耗費(fèi)時(shí)間。但值得慶幸的是,它和世界上其他的旅行一樣,也需要從一個(gè)簡(jiǎn)單的步伐開(kāi)始。
原文鏈接:https://hackernoon.com/how-i-started-with-learning-ai-in-the-last-2-months-251d19b23597
編譯組出品。編輯:郝鵬程


































