【AI 入門懶人包】從 0 開始學 AI,線上課程、精選實例先儲存連結吧!

2 個月從零開始入門 AI ,我是如何做到的?

【我們為什麼挑選這篇文章】AI,人工智慧,好像是個超難學的項目,許多人就算想學也不知道從何著手。

本文原文作者原本也是 AI 門外漢,不過他花了兩個月的時間,從無到有的學會了 AI 的基礎,並且將這個過程記錄了下來,相信這些紀錄──或我們稱為 AI 學習懶人包,可以幫助到想跨入 AI 領域學習的大家。(責任編輯:林厚勳)

現在這個時代,每個人都很忙。人們的個人生活和職業生涯都在發生著巨大的變化。最重要的是,隨著像人工智慧這樣的技術開始變得越來越流行,你會發現在接下來的兩年裡,你所掌握的技能會變得過時。

當我關閉我的創業公司 Zeading 時,我猛然醒悟過來。感覺自己錯過了一些非常獨特的東西。

在不斷變化的情況下,作為一名傳統意義上的全端工程師是不夠的。在接下來的兩年裡,如果沒有掌握人工智慧技術,全端工程師將不再是全端工程師了。

TO 編按:全端工程師,一般泛指掌握多種技能,並且能利用這些技能獨立完成產品的工程師,與一般工程師相比,在比較單一技能項目時專精度會稍低,但可獨立完成一般需要多名工程師合作才能完成的項目。

是時候採取行動了。我做出了我認為現在唯一能做的行動 —— 更新了我作為一名開發者的技能,並以產品經理一樣的心態和企業家一樣的理念來面對數據,並以數據為導向。

正如著名的風險投資家、人工智慧和金融科技行業的思想領袖 Spiros Margaris 對我說的那樣:

如果創業公司和企業只依靠先進的人工智慧和機器學習算法來展開競爭,是遠遠不夠的。人工智慧將不再是一項競爭優勢,而是一項基本要求。你聽到有人把「用電」作為競爭優勢嗎?

構建我的第一個神經網路

一個非常常見的建議是 在 Coursera 上聽 Andrew Ng(吳恩達)的課程 。這是一個非常好的入門方式,但我發現,我很難長時間保持清醒。我並不是說這門課很糟糕,但我真的很難在課堂上保持專注。我的學習模式一直都是實踐,從實踐中獲取新的知識。所以我想,我為什麼不自己來打造一個神經網路呢?

但我沒有直接去著手構建一個神經網路,因為它是一個更加高級的學習方法。我剛開始先去試著熟悉這個領域裡的所有的術語,這樣我就能對這個領域有所瞭解。

第一個任務不是學習。而是熟悉。

我是純 Javascript 和 Node js 出身,當時並不想換成其他的程式語言。因此,我搜索了一個名為「nn」的簡單神經網路模組,然後通過模擬輸入用它來實現一個「AND」操作。受一個教程的啟發(傳送門),我選擇了這麼一個問題:對於任意的輸入 X,Y,Z,輸出結果都是 X AND Y。相應的代碼如下:

2 個月從零開始入門 AI ,我是如何做到的?圖為名為「nn」的簡單神經網絡模組。

當得到的結果是 0.9971 時,我意識到,這個神經網路已經學會了如何做一個 AND 操作,並且忽略了附加的輸入。這樣的結果大大地增強了我的自信心。

這就是機器學習的要點。你給電腦程式一組數據,它能夠自動調整內部參數,使其能夠在新數據上回答問題,而原始數據中的誤差也在減少。

這種方法,正如我後來瞭解到的,也被稱為梯度下降(gradient descent)。

2 個月從零開始入門 AI ,我是如何做到的?圖為梯度下降(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)將意味著完全不同的東西。我們需要人們去執行更高層次的、批判性的、創造性的,或其他需要更多情感投入的工作。

想要開始這段學習過程,你必須讓自己沉迷於電腦如何突然學會用它們的方式來做事情。 耐心和好奇心是你應該堅持的兩個關鍵原則。

這是一次重大的旅行。非常累人,也非常煩人,而且特別耗費時間。但值得慶幸的是,它和世界上其他的旅行一樣,也需要從一個簡單的步伐開始。

本文由 36 氪郝鵬程編譯,原文連結:https://hackernoon.com/how-i-started-with-learning-ai-in-the-last-2-months-251d19b23597

(本文經合作夥伴 36 氪 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 2 個月從零開始入門 AI ,我是如何做到的? 〉。)

想要更多學習 AI 的資訊?沒問題,TO 罩你

【選對自學平台,才有未來】程式語言入門必去 Udemy 、職場轉職必去 Udacity
【手刀收藏 AI 入門聖經】中國 AI 教父吳恩達、臉書研究院的 AI 影片寶典都在這
入門 AI 從「深度學習」開始,五本必讀的深度學習聖經書籍


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

點關鍵字看更多相關文章: