1. 程式人生 > >從蘋果店員到機器學習工程師:學習AI,我是這樣起步的

從蘋果店員到機器學習工程師:學習AI,我是這樣起步的

機器學習工程師的職位並不只是為 AI 博士準備的:通過網路上公開的課程和視訊,人們可以學習人工智慧領域的基礎知識、培養寫程式碼的能力,最終找到 AI 領域的相關工作——只要你不輕言放棄。本文中,這位名為 Daniel Bourke 的小哥介紹了自己從零開始的心路歷程。

我曾經在蘋果商店工作,我想要改變,那麼就從自己服務的技術入手吧。我開始學習機器學習和人工智慧——這個領域非常熱門,每一週,谷歌、Facebook 這樣的科技公司都在推出新的 AI 技術,不斷改善我們的體驗。

現在也有數不清的自動駕駛汽車公司,雖然這項技術很好,但我並不喜歡駕駛,而且道路很危險。

即使看到了今天正在發生的一切,我們仍然無法給出「人工智慧」一詞的明確定義。一些人認為深度學習可以被稱為 AI;另一些人則認為除非完全通過圖靈測試,否則就不算 AI。缺乏定義這一問題確實給我入門人工智慧前期造成了很多麻煩,如果你在學的東西有很多種不同的定義,那麼學習它真的很難起步。

所以我們先拋開定義。

我是如何起步的?

我和朋友想建立一家網際網路創業公司,結果失敗了。我們覺得做這件事沒有意義,所以就放棄了。但在這個過程中,我對 ML 和 AI 的瞭解越來越多。

「計算機可以為人類學習?」我覺得不可思議。

我偶然發現了優達學城(Udacity)的深度學習納米學位。宣傳片裡有一個名叫 Siraj Raval 的有趣角色。他活力四射,非常具有感染力。儘管沒有達到基本要求(我一行 Python 程式碼都沒寫過),我還是選擇了註冊。

距開課還有三週時間時,我給優達學城發了郵件,詢問退款相關事宜,因為我擔心自己無法完成課程。

我沒有拿到退款,因為我在指定時間內完成了整個課程。課很難,有時非常難。我的前兩個專案遲了四天才交上。但涉獵世界上最重要的技術帶來的興奮驅使我繼續走下去。

拿到深度學習納米學位之後,我就能繼續攻讀優達學城的 AI、自動駕駛汽車或機器人學納米學位。這些都是很好的選擇。

我感覺有點迷茫。「接下來要做什麼呢?」

我需要一個課程表。深度學習納米學位為我打下了一點基礎,現在是時候構思下一步了。

我自己建立的 AI 碩士學位

我不打算回大學繼續讀書,畢竟我沒有 10 萬美元讀完碩士課程。所以我和以前一樣,向我的「導師」——谷歌求助。

我在事先對該領域沒有任何先驗知識的情況下,開始鑽研深度學習。我不是奮力攀爬至 AI 這座冰山的頂上的,而是乘坐直升機飛上去的。

在研究了一系列課程之後,我在 Trello 上列出了最感興趣的課程。

從蘋果店員到機器學習工程師:學習AI,我是這樣起步的

 

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:模型崩潰了會發生什麼?如何利用更多資料改進模型?是否存在更好的方式?