從蘋果店員到機器學習工程師:學習AI,我是這樣起步的
機器學習工程師的職位并不只是為 AI 博士準備的:通過網絡上公開的課程和視頻,人們可以學習人工智能領域的基礎知識、培養寫代碼的能力,最終找到 AI 領域的相關工作——只要你不輕言放棄。本文中,這位名為 Daniel Bourke 的小哥介紹了自己從零開始的心路歷程。
我曾經在蘋果商店工作,我想要改變,那么就從自己服務的技術入手吧。我開始學習機器學習和人工智能——這個領域非常熱門,每一周,谷歌、Facebook 這樣的科技公司都在推出新的 AI 技術,不斷改善我們的體驗。
現在也有數不清的自動駕駛汽車公司,雖然這項技術很好,但我并不喜歡駕駛,而且道路很危險。
即使看到了今天正在發生的一切,我們仍然無法給出「人工智能」一詞的明確定義。一些人認為深度學習可以被稱為 AI;另一些人則認為除非完全通過圖靈測試,否則就不算 AI。缺乏定義這一問題確實給我入門人工智能前期造成了很多麻煩,如果你在學的東西有很多種不同的定義,那么學習它真的很難起步。
所以我們先拋開定義。
我是如何起步的?
我和朋友想創建一家互聯網創業公司,結果失敗了。我們覺得做這件事沒有意義,所以就放棄了。但在這個過程中,我對 ML 和 AI 的了解越來越多。
「計算機可以為人類學習?」我覺得不可思議。
我偶然發現了優達學城(Udacity)的深度學習納米學位。宣傳片里有一個名叫 Siraj Raval 的有趣角色。他活力四射,非常具有感染力。盡管沒有達到基本要求(我一行 Python 代碼都沒寫過),我還是選擇了注冊。
距開課還有三周時間時,我給優達學城發了郵件,詢問退款相關事宜,因為我擔心自己無法完成課程。
我沒有拿到退款,因為我在指定時間內完成了整個課程。課很難,有時非常難。我的前兩個項目遲了四天才交上。但涉獵世界上最重要的技術帶來的興奮驅使我繼續走下去。
拿到深度學習納米學位之后,我就能繼續攻讀優達學城的 AI、自動駕駛汽車或機器人學納米學位。這些都是很好的選擇。
我感覺有點迷茫。「接下來要做什么呢?」
我需要一個課程表。深度學習納米學位為我打下了一點基礎,現在是時候構思下一步了。
我自己創建的 AI 碩士學位
我不打算回大學繼續讀書,畢竟我沒有 10 萬美元讀完碩士課程。所以我和以前一樣,向我的「導師」——谷歌求助。
我在事先對該領域沒有任何先驗知識的情況下,開始鉆研深度學習。我不是奮力攀爬至 AI 這座冰山的頂上的,而是乘坐直升機飛上去的。
在研究了一系列課程之后,我在 Trello 上列出了最感興趣的課程。

Trello 是我的個人助理/課程協調員
我知道在線課程的輟學率很高,我不想成為其中的一份子。我有一個使命。
為此,我開始在網上分享學習經歷。這樣我能在網上找到其他志同道合的人,并與之交流。當我進行 AI 冒險之旅時,我的朋友們都認為我瘋了。
我公開了我的 Trello board,并寫了一篇關于自己奮斗歷程的博客。
自從我***次寫了自己的經歷以后,課程略有變化,但仍然相關。我每周會查看幾次 Trello board,以跟蹤自己的進度。
找份工作
我買了一張去美國的單程機票。我已經學習了一年,現在是時候學以致用了。
我的計劃是飛到美國并找份工作。
然后 Ashlee 在領英上給我發消息說,「你好,我看過你的博客了,非常好,我覺得你應該去見見 Mike。」
于是我見了 Mike。
我告訴他我在線自學的經歷、我有多熱愛醫療技術,以及我計劃去美國。
「你***在這里待上一年左右,看看自己能找到什么,你可以去見 Cameron。」
我見到了 Cameron。
我和他的對話與和 Mike 的差不多,關于醫療、技術、在線學習、美國。
「我們正在研究一些醫療問題,你可以周四過來看看。」
周四到了,我有點緊張。但有人曾告訴過我,緊張和興奮是一樣的,然后我開始變得興奮。
那天我見到了 Max Kelsen 團隊,了解了他們正在研究的問題。
兩周后,***執行官 Nick、***機器學習工程師 Athon 和我去喝咖啡。
Nick 問我:「你要不要加入我們團隊?」
我說:「好啊」。
然后我的美國之旅推遲了幾個月,現在我還有了返程票。
分享你的工作
我知道在線學習是非常規的。我申請的所有職位都有碩士或某種技術學位的要求。
而我什么都沒有。但我確實從許多在線課程中學到了同樣的技能。
其間我在網上分享自己的工作。我的 GitHub 里存了我做過的所有項目,我的領英資料非常豐富。此外,我還練習了在 YouTube 和 Medium 上學到的溝通技巧。
我從沒有向 Max Kelsen 投過簡歷。「我們在領英上發現了你。」
我存的那些工作就是我的簡歷。
無論你是在線學習還是去讀碩士學位,將你做過的工作打包呈現給別人都是一種在游戲中創建皮膚的良好方式。
ML 和 AI 技能很搶手,但這不表示你不需要將它們展示出來。如果沒有貨架空間,再好的產品也賣不出去。
這個「貨架」可以是 GitHub、Kaggle、領英或博客,要找一個別人可以發現你的地方。再者,在互聯網上擁有一個自己的角落也很有意思。
如何開始?
去哪兒學習這些技能?哪些課程***?
沒有***答案。每個人要走的路都不同。有些人通過書本學習效果很好,而有些人通過視頻學習會更好。
比如何開始更重要的是你為什么要開始?
先問問自己為什么。
- 為什么你想學習這些技能?
- 你是想通過這些來賺錢嗎?
- 還是想構建一些東西?
- 還是想有所作為?
仍然沒有***答案。每個人的答案對自己來說都很重要。
先問清楚為什么,因為它比怎么做更重要。弄清楚為什么意味著,當你學習遇到困難時(一定會遇到的),這些答案能幫你撐過去。它們會提醒你為什么走上這條路。
了解了「為什么」?很好,現在學習一些比較難的技能吧。
我只能推薦一些自己嘗試過的東西。
我按順序完成了以下課程:
- Treehouse:Python 介紹
- Udacity:深度學習&AI 納米學位
- Coursera:吳恩達的深度學習課程
- fast.ai:目前還在 part1,很快進入 part2
這些課程都是***的。我是視頻學習者,通過看這些東西的出現過程和解說,我能學得更好。所有這些課程都是這樣的。
如果你完全是一個新手,可以從介紹 Python 的課程開始看,當你有了更多信心之后,可以向數據科學、機器學習和 AI 進軍了。
需要多少數學知識?
我最多只學到高中數學。其它知識都是通過可汗學院學習的。
投身機器學習和人工智能需要多少數學知識因人而異,下面是我的選擇。
如果你想應用機器學習和 AI 技術來解決某個問題,那么你不必深入了解數學也能取得好的結果。TensorFlow 和 PyTorch 等庫使僅具備一點 Python 經驗的人也能構建當前***的模型,而數學知識藏在幕后。
如果你想通過博士項目或者其它類似的項目來深入機器學習和 AI 研究,那么你需要具備深厚的數學知識。
就我本人而言,我不打算深入學習數學,留給比我聰明的人學吧~使用 TensorFlow 和 PyTorch 等庫來解決問題,我覺得更開心~
機器學習工程師做什么?
機器學習工程師真正做的事情可能和你想的并不相同。
盡管很多在線文章的封面照片中有紅眼睛的機器人,但這不代表你會研究機器人。
以下是機器學習工程師每天都要問自己的一些問題:
- 語境:如何利用機器學習幫助自己了解問題?
- 數據:是否需要更多數據?數據應該是什么格式?如果數據丟失,你要怎么做?
- 建模:應該使用哪個模型?該模型是否過于適應數據(過擬合)?或者為什么模型無法很好地適應數據(欠擬合)?
- 生產:如何將模型投入生產?它應該是在線模型還是隔一段時間不斷更新?
- Ongoing:模型崩潰了會發生什么?如何利用更多數據改進模型?是否存在更好的方式?
這些問題來自 fast.ai 聯合創始人 Rachel Thomas 的一篇文章(http://www.fast.ai/2018/07/12/auto-ml-1/)。
沒有既定道路
進入機器學習或 AI 領域的路沒有對錯之分。
該領域的美妙之處在于我們可以接觸到世界上最棒的技術,我們只需要去學習如何使用它們。
首先,你應該學習 Python、研究微積分和統計學、學習決策的哲學。
機器學習和 AI 是上述領域的交叉地帶,這使我非常著迷。我對此了解得越多,越意識到還需要學習更多。這讓我充滿動力。
有時代碼無法運行或者我不理解某個概念時也會覺得挫敗。這種時候我會暫時放下這個問題,休息一下或出去走走。再回來看這個問題時我好像換了一個角度,激情又回來了!
該領域每時每刻都在發生很多事情,開始本身令人畏懼。太多選擇導致沒有選擇。請忽略它。
從你感興趣的地方開始,然后沿著這條路繼續前進。如果它把你帶到了死胡同,很棒,你會發現自己對哪些事物不感興趣。重新找一條路!
計算機很智能,但是它們仍然無法自行學習。它們需要你的幫助。