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