李林 編譯整理
量子位 出品 | 公眾號 QbitAI
上週,Ben Hamner很忙。
作為全球最大數據科學和機器學習競賽平臺Kaggle的聯合創始人&CTO,他在Quora上參加了一場AMA,還參加了一場機器學習會議。會議我們最後再說,先說AMA:它是ask me anything的首字母縮寫,美國reddit、Quora等社區經常邀請名人蔘加這種在線問答活動,比如說蓋茨就每年都會在reddit上搞AMA。
AMA中得票最高的答案是“研究機器學習和人工智能最好的資源是什麼?”Hamner在答案中把機器學習的入門過程分成8步,寫了一份詳細的指南。量子位將要點編譯如下:
你很幸運,要開始研究機器學習和人工智能,現在是比任何時候都好的時機。這個領域近年來在快速發展,專業人士發佈並改進著高質量的開源軟件工具和庫,每天都有新的線上公開課和博客文章出現。機器學習在各個領域每天貢獻著數十億美元的營收,帶來了無與倫比的資源和大量工作機會。
這也意味著,你在剛接觸這個領域時會有被淹沒的感覺。下面是我的入門方法,如果你在研究過程中卡住了,去Kaggle上搜索一下,很可能有人遇到過和你類似的問題,如果沒有,可以在我們的論壇上發帖提問,這是個獲得指引的好辦法。
1. 找一個你感興趣的問題
從一個你想解決的問題入手,會更容易集中精力,也更有學習的動力,這種方法比照著一份長得嚇人的散亂知識點清單來學習要好很多。和被動地閱讀相比,解決問題也能驅使你深入到機器學習之中。
好的入門問題有以下幾個標準:
涉及你個人感興趣的領域;
有現成的數據適合用來解決這個問題,否則你需要花大把的時間來找數據;
你能夠在一臺機器上流暢地處理這些數據,或者它的子集。
想不出來要解決的問題?上Kaggle嘛……Kaggle有個入門系列競賽,提供了適用於新手的機器學習問題。推薦從泰坦尼克號乘客的生還概率預測(https://www.kaggle.com/c/titanic)開始。
2. 做一個快速、髒亂、黑客範兒的端到端解決方案
初學者很容易陷入一個實現細節之中,或者為錯誤的機器學習算法仔細調試,你需要避免這種錯誤。你的目標,是儘可能快地把端到端的基本解決方法做出來:讀入數據、把它處理成適用於機器學習的格式、訓練一個基本的模型、得出結果、評估它的性能。
3. 改進你的解決方案
現在,基本功能已經實現,發揮創造性的時候到了。你可以嘗試對最初解決方案中的每個組件進行優化,然後測試修改帶來的作用,搞清楚該在哪個部件上花時間。通常來說,獲取更多的數據或者請洗數據之類的預處理步驟,比優化機器學習模型有著更高的投入產出比。
這些步驟可能需要你親自上手處理數據,比如說通過檢查特定的某一行、通過可視化方法來查看數據分佈等方式,來更好地理解數據的結構和怪癖。
4. 寫出來你的解決方案&分享
想要獲得別人對你的解決方案的反饋,最好的方法就是寫出來並分享。寫出你的解決方案意味著你會以新的方式去看它,並加深理解,也能讓別人理解你的工作並做出反饋、幫你學習進步。寫作也有助於開始建立機器學習作品集,來展示你的能力,對找工作很有幫助。
我們以Kaggle數據集和Kaggle Kernels為例,它們分別可以用來分享數據和解決方案,從而獲得反饋,看其他人如何對你的問題進行擴展。這也是豐富你的Kaggle資料的辦法。
5. 在更多問題上重複1-4步
現在,你已經完成了一個自己喜歡的問題,接下來應該在不同領域的問題上多試幾次。
你在入門的時候是不是用了表格式的數據?選一個要用到非結構化文本的問題,再試試解決圖像相關的問題。
你是不是先解決了一個結構化的機器學習問題?很多有價值的創造性工作,一開始都有賴於從寬泛的商業或研究對象找到一個定義清晰的機器學習問題。
Kaggle競賽和數據集為機器學習的兩個方面:定義清晰的機器學習問題和原始數據來源提供了一個良好的起步點。
6. 認真地參加Kaggle競賽
和上千人比賽著去解決同一個問題,盡力做到最好,是一個很好的學習機會,這能夠驅使你在這個問題上不斷迭代,找到解決問題的有效途徑。
關於其他人是怎樣解決問題排除bug的,針對某個競賽的論壇上有著豐富的資源,kernels體現了其他人對數據的洞察,並且給你提供了一個輕易的上手途徑,獲勝者的博客文章則展示了什麼樣的方法效果最好。
Kaggle競賽提供了和別人組隊的機會,我們的社區成員有著不同的背景和技能,每個人都能從其他人身上學到東西。
7. 在專業領域應用機器學習
這讓你在大部分時間中都能接觸到機器學習,有助於自我提升。決定你想要成為什麼樣的角色、建立和這個角色相關的個人項目列表,是一個很好的開端。
如果你還沒準備好應聘機器學習相關職位,也可以在你現在的崗位上開闢新項目、尋找提供諮詢的機會、參與黑客馬拉松和數據相關的社區服務機會、這些都能幫你在機器學習領域立足。專業領域的工作通常需要比較強的編程能力。
在專業領域應用機器學習,有這些價值的機會:
將機器學習用於生產系統;
專注於機器學習研究,將技術發展的最高水平向前推進;
用機器學習進行探查、分析,來提升你的產品和商業決策。
8. 幫助別人研究機器學習
教人學習能幫你鞏固對基礎概念的掌握。教別人有很多不同的方法,你可以根據自己的風格選一個:
寫論文;
做演講;
寫博客文章和教程;
在Kaggle、Quora等網站上回答問題;
親自指導;
在Kaggle Kernels和GitHub上分享代碼;
講課;
寫書。
One More Thing...
這次AMA,其實Hamner最想談的是Kaggle的未來,他在資料裡列出了自己願意回答的話題:
Kaggle的未來
開放數據
Kaggle競賽
機器學習和AI
數據科學工作流程
產品和工程
Kaggle為何加入Google
可惜Quora上的群眾對Kaggle的未來似乎並不關心,反正競賽照常舉行,數據集照常提供,量子位也不知道這個未來該從何問起。
不過,吃瓜群眾不關心Kaggle的未來也沒關係。週五,Hamner還去紐約的機器學習大會MLConf上做了以《Kaggle的未來:我們從何處來,到何處去》的演講,也就是我們開頭說的那場會議。
在量子位(公眾號:QbitAI)對話界面回覆“Kaggle”,我們會把Hamner這次演講的PPT發給你。
今天AI界還有哪些事值得關注?
在量子位(QbitAI)公眾號會話界面回覆“今天”,看我們全網蒐羅的AI行業和研究動態。筆芯❤~
另外,我們建了一個機器學習入門群,希望和大家互相幫助、共同進步。歡迎加量子位小助手的微信:qbitbot,介紹一下你自己,符合要求的,我們會拉你進群。