當前位置:
首頁 > 最新 > 兩個月入門深度學習,全靠動手實踐!一位前端小哥的經驗分享

兩個月入門深度學習,全靠動手實踐!一位前端小哥的經驗分享

王新民 編譯自 Hackernoon

量子位 出品 | 公眾號 QbitAI

在當前社會,技術日新月異,一個全棧工程師不及時學習新知識,掌握AI技能,再過兩年就算不上「全棧」了。

產品發燒友、前端小哥Shival Gupta在意識到這一點後,通過兩個多月的探索,掌握了基本的AI技能,並在Hackernoon上發文分享了自己的學習歷程。

量子位搬運過來,各位可以參考他的學習思路。

建立第一個神經網路

大家給初學者的建議,通常是通過吳恩達的Coursera課程來入門。

這樣開始很好,但是我在聽課時很難保持專註。不是說這個課程不好或存在其他問題,而是我真的非常討厭專心聽課。我習慣於通過實踐來學習,所以為什麼不這麼做呢?

讓我們開始動手實現神經網路吧。

我沒有直接跳到神經網路,因為還需要熟悉一些基礎內容。我先嘗試熟悉這個領域的所有專有名詞,為下一步的語言學習作鋪墊。

也就是說,第一項任務不是學習,而是熟悉這個領域。

我是個用JavaScript和Nodejs做開發的前端工程師,暫時也不想轉後端,於是就找到了一個叫做nn的簡單神經網路模塊,並用它來實現一個帶有虛擬輸入的「與」門。

我選擇了這樣一個問題:對於任意三個輸入X、Y和Z,輸出為X和Y的「與」運算結果。

以下是實現代碼:

選擇這個問題,是受一份9行代碼構建神經網路教程的啟發。地址:https://medium.com/technology-invention-and-more/how-to-build-a-simple-neural-network-in-9-lines-of-python-code-cc8f23647ca1

在我看來,上面的構建過程讓我對接下來的學習充滿了信心。當輸出值為0.9971時,我意識到這個網路學會了如何實現一個「與」運算,並忽略無關的額外輸入。

這正是機器學習的主旨。通過向計算機程序輸入一組數據,並調整程序的內部參數,使它能夠以從訓練集觀察到的誤差減小方式,來得到對新問題的答案。

後來我才知道,這種方法也被稱為梯度下降(gradient descent)。

梯度下降示意圖

開始AI之路

在我實現了我的第一個AI程序後,我充滿信心,想知道作為一個開發人員,還可以用機器學習來做什麼。

1.我解決了若干個關於監督學習的問題,如回歸和分類。

2.基於非常有限的數據集,我嘗試使用多變數線性回歸來預測哪個團隊將贏得某場給定的IPL電子競技比賽,實際的預測效果很差,但是我覺得很酷。

3.我試用了Google機器學習雲的一些demo,了解當前AI可以做什麼。

地址:https://cloud.google.com/products/machine-learning/

4.我偶然發現了AI Playbook(文末鏈接5),這是一個由安德森-霍洛維茨風險基金整理的乾貨網站,確實是針對開發人員和創業者的最方便資源之一。

5.我開始在Youtube上觀看Siraj Rawal的精彩視頻,這是一個以深度學習和機器學習為核心的專欄。

視頻地址:

https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A

6.我讀了HackerNoon上一篇講《矽谷》劇組怎樣用Tensorflow做劇中那個Not Hotdog應用的。這是深度學習中我們最容易上手的一個例子。

HBO真的做了這個App(限美國、加拿大):

https://www.seefoodtechnologies.com/nothotdog/

文章地址:

https://medium.com/@timanglade/how-hbos-silicon-valley-built-not-hotdog-with-mobile-tensorflow-keras-react-native-ef03260747f3

7.我讀了Andrej Karpathy的博客(https://karpathy.github.io/),他是特斯拉的AI主管。雖然我無法理解裡面的一些內容,這讓我很頭疼,但是我發現,在多花一些時間以後,我對這些概念有了一定理解。

8.帶著信心,我開始通過複製和粘貼來逐行實現一些深度學習教程中的代碼,並在我自己的電腦上運行代碼,嘗試訓練相關模型。很卡……因為大多數模型需要很長的訓練時間,我也沒有GPU。

漸漸地,我將編程語言從Javascript轉換到了Python,並在Windows機器上安裝了Tensorflow。

這整個過程集中在被動地接受知識和建立知識庫上,因此當我遇到一個實際的用戶問題時,可以利用已有知識來解決。

正如喬布斯說過,你只能通過回溯過去理解其中的關聯。

抓住chatbot的熱潮

作為電影「Her」的狂熱粉絲,我想構建一個聊天機器人。我設法在兩個小時內學會了Tensorflow的使用,並將這個經歷和我對用戶需求的理解整理成了一篇文章。

在做這個聊天機器人之前,我對NLP的了解僅僅限於概念層面。

嘗試了市面上眾多聊天機器人之後,我發現,它們在本質上只是圖形用戶界面的替代品。如果在圖形用戶界面上操作超過兩步點擊,用聊天機器人的用戶體驗會比較好,反之,用聊天的形式就顯得多餘了。

開始構建聊天機器人的時候,我先給自己確定了兩條原則:

1.聊天機器人應該說人話,也就是說它得理解自然語言;

2.要用聊天機器人解決圖形UI中需要兩步以上操作的問題。

經過分析,我選擇構建一個通過自然語言命令找到正確日期的聊天機器人。比如說你可以問它「6天以後是幾號?」、「下個9月過完之後再過5周」之類的。

架構是這樣的:

然後,我跟著網上的一份教程,(地址:https://chatbotsmagazine.com/contextual-chat-bots-with-tensorflow-4391749d0077),用基礎的NLP技能和基於softmax的神經網路,不到兩小時就構建了一個查詢意圖分類器。

在確定了用戶的意圖之後,系統會對字元串進行語法分析並輸入,然後返回我想要查詢的日期。

說真的,並不難。如果你用Facebook Messenger Platform、Telegram的Bot Platform,或者api.ai、wit.ai、recast.ai等等工具,可能比我還快。

更多關於構建聊天機器人的心得,見這個鏈接::

https://hackernoon.com/i-built-a-chatbot-in-2-hours-and-this-is-what-i-learned-f5dbb4ba5fcc

在我的AI學習之旅中,這篇文章具有里程碑式的意義。

它讓我在Twitter和LinkedIn上交到了很多朋友,他們長期深入地和我討論AI技術的發展,甚至可以在我遇到困難時幫我一把。我收到了一些關於諮詢項目的Offer,更讓我開心是,開始有一些年輕的開發人員和AI初學者來問我是如何入門AI的。

這也促使了我寫下這篇文章,希望能幫助更多的人從我的經歷中得到線索,並開始他們的學習之路。

萬事開頭難。

一些理解

這絕不是一件簡單的事。

我最開始時用的是Javascript,後來突然換成Python,並學會如何用Python編程。

當我的模型在i7電腦無法訓練,或是經過數小時訓練,只返回一個無用結果時,我會感到煩躁。

學習AI的過程與學習一個Web框架不同。

這項技能要求你明白在微觀層面計算是如何進行的,並確定最為影響輸出結果的內容是代碼還是數據。

AI也不只是一個學科。這是一個總括性術語,其適用範圍可從簡單的回歸問題到未來的殺手機器人。與其他學科一樣,你可能要選擇AI中比較熱門的領域,如計算機視覺、自然語言處理,或者其他具有潛在發展空間的方向。

在和AI金融公司Atlantis Capital的Gaurav Sharma的交流中,他對我說:

在人工智慧時代,「聰明」意味著某些完全不同的東西。我們要求人們去完成非常關鍵、具備創造性和有個人見解的任務,和那些需要高情感投入的工作。

對於計算機是如何突然學會自主決策的,你要為之著迷。你應該堅持的兩個關鍵原則是耐心和求知慾。

這是一個非常漫長的旅程,很累也很刺激。

但最重要的是,所有旅程都是相同的,千里之行始於足下,想上手AI就開始動手吧。

原文地址:https://hackernoon.com/how-i-started-with-learning-ai-in-the-last-2-months-251d19b23597

加入社群

量子位AI社群10群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot3入群;

此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。

進群請加小助手微信號qbitbot3,並務必備註相應群的關鍵詞~通過審核後我們將邀請進群。(專業群審核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

量子位QbitAI

? ? ? 追蹤AI技術和產品新動態


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量子位 的精彩文章:

一文看懂搜狗招股書:90次提到AI,王小川持股5%,凈利3.7億
英特爾生產17個量子位超導晶元,現已交付合作夥伴
AI如何變革阿里電商?iDST首席科學家任小楓首次公開演講
Facebook悄悄參加星際AI大賽,然後輸了
講道理,我覺得TensorFlow太遜了

TAG:量子位 |