您正在使用IE低版瀏覽器,為了您的雷鋒網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能 正文
發私信給Jasper.T
發送

0

從0到1:我是如何在一年內無師自通機器學習的?

本文作者:Jasper.T 2016-09-13 14:54
導語:如何從機器學習菜鳥華麗轉變為大神?如果你對機器學習抱有好奇又心存敬畏,不妨看看這篇文章。

編者按:去年,Per Harald Borgen 寫了一篇名為《為期一周的機器學習研究》的文章,講述了他如何通過五天的努力開啟機器學習之旅。

接下來你看到的是此文的后續,Per Harald Borgen 將和我們分享他如何在一年內掌握機器學習知識的經歷,并在工作中完成了第一個機器學習項目,包括使用各種各樣的機器學習和自然語言處理技術,使 Xeneta 的潛在客戶達到合格標準。

在 Per Harald Borgen看來,他并不認為只有獲得博士或碩士學位的人才能在機器學習方面更加專業。“研究機器學習并不需要你數學學得很好,也不需要你一定要取得什么樣的學位。”

如果你對機器學習抱有好奇又心存敬畏,不妨看看這篇文章。

入門:Hacker News (黑客新聞)和 Udacity (優達學城)

我對機器學習的興趣開始于 2014 年。那時候我剛開始在 Hacker News 上閱讀有關它的一些文章。然后我就發現通過檢測數據來教會機器做一些事情,這種想法十分有趣。當時的我甚至連一個專業的開發員都不算,只能算是一個業余編碼員,但我還是想試一試。

所以我就開始看 Udacity 的監督學習課程的前幾章,并同時開始閱讀有關這方面的所有文章。

從0到1:我是如何在一年內無師自通機器學習的?


盡管沒有掌握到實踐技能,但我還是對機器學習的概念有了一定的認識。但由于我很少聽大規模在線開放課程,所以并沒有聽完。

“成功”掛掉Coursera 機器學習課程

2015 年 1 月,我參加了倫敦的“創始人和程序員”訓練營地(FAC bootcamp),想成為一名程序員。幾周過后,我想學習如何碼機器學習算法,于是我就和幾個同伴成立了一個學習小組。每周二晚上,我們都會在 Coursera 上觀看機器學習課程。

從0到1:我是如何在一年內無師自通機器學習的?

這個課程很棒,我也學到了很多。但是對于一個初學者來說,課程內容太難,因此我必須要一遍遍反復觀看才能掌握要點。

與此同時, Octave 編碼任務也同樣十分具有挑戰性,尤其是如果你不了解 Octave 的話。后來,因為難度太大,小伙伴們一個個都放棄了,再后來,我自己也最終放棄了。

事后,我意識到,我應該找一個適合我的課程來聽。要么是用機器學習圖書館來進行編碼任務,而不是從頭創建算法,又或者至少是用我了解的編程語言。

對于新手來說,學習一門新的語言,并同時編碼機器學習算法,實在是太難了。

如果我及時發現的話,我會選擇 Udacity 的《機器學習介紹》這門課程,因為它更加簡單并且采用 Python 和 Scikit 學法。用這種方法,我們可以盡快上手,獲得自信,同時也更加有趣。

習得:從簡單和實際的東西開始學,而不是困難和理論性的。

為期一周的機器學習

我在 FAC 最后進行的努力就是每周的機器學習匯演。我的目標是在此次訓練周即將結束的時候,能夠運用機器學習來解決一些實際問題。最終我成功了。

在這一周時間內我做了下列這些事情:

  • 逐步了解 Scikit 學習

  • 在真實的全球數據集上嘗試了機器學習

  • 從頭編碼了一個線性回歸算法(用 Python )

  • 做了一點點自然語言處理

這是到目前為止我所經歷過的最曲折的機器學習的學習曲線了。如果你想了解更多詳細情況的話,就請繼續讀這篇文章吧。

習得:用一周的時間讓自己完全沉浸于一個新的項目當中,這是極為有效的。

神經網絡?我也掛了

在結束了倫敦的 FAC 訓練營地之后,我又回到了挪威。我試圖復制之前在機器學習周所取得的成功,將其用于神經網絡,結果失敗了。

因為有太多的事情來分散我的精力,因此我無法每天花 10 個小時的時間來編碼和學習。我這才發現環境的重要性,因為之前在 FAC 訓練營地的時候,周圍都是機器學習的愛好者。

習得:在做這類學習的時候,讓自己處在一個積極向上的環境之中。

但是,至少我開始著手從事了神經網絡的研究,并且也慢慢掌握了要領。終于到了 7 月 1 日,我成功編寫了我的第一條網絡。它可能沒有什么價值,并且于我而言也沒什么可炫耀的,但這至少證明我了解了反向傳播和梯度下降的概念。

從0到1:我是如何在一年內無師自通機器學習的?

在后半年,由于我找了新的工作,因此項目進展開始緩慢下來。這一時期最重要的收獲就是從神經網絡非向量化到向量化實施的重大飛躍,這其中包括從大學就一直重復的線性代數。

在年底的時候,我寫了一篇文章來對我的學習進行總結。

測驗 Kaggle 競賽

在 2015 年圣誕假期的時候,我再一次鼓起勇氣,決定試驗 Kaggle 。因此我花了相當一段時間來試驗各種算法,用于測試 Kaggle 的住宅報價轉換,奧托集團產品分類,以及自行車共享需求競賽。

從0到1:我是如何在一年內無師自通機器學習的?

通過試驗各種算法和數據,使結果得到不斷改善,這是我在這次嘗試中最大的收獲。

我學會了要在做機器學習時相信自己的邏輯。此外,倘若調整一個參數或者設計一個新的特征在邏輯上看來行得通的話,那么它在實際應用當中也可能會有所幫助。

在工作中安排日常學習

2016 年 1 月,假期結束之后我又重新回歸工作,我想要繼續圣誕假期的研究,因此我就問我的經理是否可以讓我在上班時間花一些時間來學習。他欣然同意了。在對神經網絡有了一個基本的了解之后,我想繼續進行深入學習。

Udacity 的深度學習

從0到1:我是如何在一年內無師自通機器學習的?

我首先嘗試的是 Udacity 的深度學習課程,但結果令我十分失望。課程的內容很好,但是對我來說太短太淺顯了。

除此之外, IPython Notebook 任務的結果也十分令人沮喪。我花了大多數的時間來調試代碼缺陷,結果在連續工作數周之后,當初的熱情逐漸退卻,到最后我基本上就放棄了。

對于我來說,談到 IPython Notebooks ,我完全是個新手。所以比起我,你們的結果或許并不會像我一樣這么壞。可能是我還沒有準備聽這個課程吧。

斯坦福的深度學習自然語言處理

幸運的是,我后來又發現了斯坦福的 CS224D ,然后就決定試一試。這個課程很棒。盡管很難,但是在做問題設置的時候,我從沒放棄過調試。

其次,它們也確實給了你解決方案的代碼。我在遇到困難時常常會看一下這些代碼,以便能讓自己的工作倒回去,重新去搞清楚達成解決方案所需的步驟。

盡管我還沒有完成,但這已經大大提升了我在自然語言處理和神經網絡方面的知識。

然而這一過程真的十分艱辛。我一度認為自己需要一個比我好的人來幫助我,于是我找到了一個博士在讀學生,給他每小時 40 美元的報酬,他欣然接受。他幫助我解決問題設置和整體認識上的問題,而他的幫助對我來說是至關重要的,因為他發現了我很多知識上的黑洞。

習得:以每小時 50 美元的報酬就有可能找到一個很好的機器學習領域的老師。如果你付得起的話,這絕對值得。

提升 Xeneta 的銷售額

在做了以上所有工作之后,我覺得自己已經準備好在工作中做一項機器學習項目了。該項目旨在訓練出一套算法,利用該算法,通過閱讀企業描述來使 Xeneta 的潛在客戶達到合格標準。這對于銷售部門的員工來說,將節省大量的時間。

走到這一步確實是一個漫長的旅程。但其實也很快。在我開始第一周的項目時,我完全沒想過自己能在一年的時間內熟練使用機器學習。

但是這是完全有可能的。如果我能做,那么其他人也一定可以。

via medium

后記:看完了 Per Harald Borgen 一年來的學習歷程,有沒有覺得機器學習離我們并非那么遙不可及了呢?然而,與方法同樣重要的是恒心,如果你對機器學習真的感興趣,不妨就從現在開始吧。

推薦閱讀:

Machine Learning: 一部氣勢恢宏的人工智能發展史

智能手機 + 機器學習 = 個人終端的未來

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知

從0到1:我是如何在一年內無師自通機器學習的?

分享:
相關文章

文章點評:

表情
當月熱門文章
最新文章
請填寫申請人資料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說
老重庆时时开奖号码360