Kaggle 聯(lián)合創(chuàng)始人談及:什么是研究機器學習和人工智能最好的資源
由量子位翻譯Ben Hammer(Kaggle CTO)在AMA的回答。
你很幸運,要開始研究機器學習和人工智能,現(xiàn)在是比任何時候都好的時機。這個領域近年來在快速發(fā)展,專業(yè)人士發(fā)布并改進著高質量的開源軟件工具和庫,每天都有新的線上公開課和博客文章出現(xiàn)。機器學習在各個領域每天貢獻著數(shù)十億美元的營收,帶來了無與倫比的資源和大量工作機會。
這也意味著,在你剛接觸這個領域時會有被淹沒的感覺。下面是我的入門方法,如果你在研究過程中卡住了,去Kaggle上搜索一下,很可能有人遇到過和你類似的問題,如果沒有,可以在我們的論壇上發(fā)帖提問,這是個獲得指引的好辦法。?
1. 找一個你感興趣的問題?
從一個你想解決的問題入手,會更容易集中精力,也更有學習的動力,這種方法比照著一份長得嚇人的散亂知識點清單來學習要好很多。和被動地閱讀相比,解決問題也能驅使你深入到機器學習之中。 好的入門問題有以下幾個標準: 涉及你個人感興趣的領域; 有現(xiàn)成的數(shù)據適合用來解決這個問題,否則你需要花大把的時間來找數(shù)據; 你能夠在一臺機器上流暢地處理這些數(shù)據,或者它的子集。 想不出來要解決的問題?上Kaggle嘛……Kaggle有個入門系列競賽,提供了適用于新手的機器學習問題。推薦從泰坦尼克號乘客的生還概率預測( https://www.kaggle.com/c/titanic)開始。
?2. 做一個快速、臟亂、黑客范兒的端到端解決方案?
初學者很容易陷入一個實現(xiàn)細節(jié)之中,或者為錯誤的機器學習算法仔細調試,你需要避免這種錯誤。你的目標,是盡可能快地把端到端的基本解決方法做出來:讀入數(shù)據、把它處理成適用于機器學習的格式、訓練一個基本的模型、得出結果、評估它的性能。?
3. 改進你的解決方案
?現(xiàn)在,基本功能已經實現(xiàn),發(fā)揮創(chuàng)造性的時候到了。你可以嘗試對最初解決方案中的每個組件進行優(yōu)化,然后測試修改帶來的作用,搞清楚該在哪個部件上花時間。通常來說,獲取更多的數(shù)據或者請洗數(shù)據之類的預處理步驟,比優(yōu)化機器學習模型有著更高的投入產出比。 這些步驟可能需要你親自上手處理數(shù)據,比如說通過檢查特定的某一行、通過可視化方法來查看數(shù)據分布等方式,來更好地理解數(shù)據的結構和怪癖。
?4. 寫出來你的解決方案&分享
?想要獲得別人對你的解決方案的反饋,最好的方法就是寫出來并分享。寫出你的解決方案意味著你會以新的方式去看它,并加深理解,也能讓別人理解你的工作并做出反饋、幫你學習進步。寫作也有助于開始建立機器學習作品集,來展示你的能力,對找工作很有幫助。 我們以Kaggle數(shù)據集和Kaggle Kernels為例,它們分別可以用來分享數(shù)據和解決方案,從而獲得反饋,看其他人如何對你的問題進行擴展。這也是豐富你的Kaggle資料的辦法。
?5. 在更多問題上重復1-4步?
現(xiàn)在,你已經完成了一個自己喜歡的問題,接下來應該在不同領域的問題上多試幾次。 你在入門的時候是不是用了表格式的數(shù)據?選一個要用到非結構化文本的問題,再試試解決圖像相關的問題。 你是不是先解決了一個結構化的機器學習問題?很多有價值的創(chuàng)造性工作,一開始都有賴于從寬泛的商業(yè)或研究對象找到一個定義清晰的機器學習問題。 Kaggle競賽和數(shù)據集為機器學習的兩個方面:定義清晰的機器學習問題和原始數(shù)據來源提供了一個良好的起步點。?
6. 認真地參加Kaggle競賽?
和上千人比賽著去解決同一個問題,盡力做到最好,是一個很好的學習機會,這能夠驅使你在這個問題上不斷迭代,找到解決問題的有效途徑。 關于其他人是怎樣解決問題排除bug的,針對某個競賽的論壇上有著豐富的資源,kernels體現(xiàn)了其他人對數(shù)據的洞察,并且給你提供了一個輕易的上手途徑,獲勝者的博客文章則展示了什么樣的方法效果最好。 Kaggle競賽提供了和別人組隊的機會,我們的社區(qū)成員有著不同的背景和技能,每個人都能從其他人身上學到東西。
?7. 在專業(yè)領域應用機器學習?
這讓你在大部分時間中都能接觸到機器學習,有助于自我提升。決定你想要成為什么樣的角色、建立和這個角色相關的個人項目列表,是一個很好的開端。 如果你還沒準備好應聘機器學習相關職位,也可以在你現(xiàn)在的崗位上開辟新項目、尋找提供咨詢的機會、參與黑客馬拉松和數(shù)據相關的社區(qū)服務機會、這些都能幫你在機器學習領域立足。專業(yè)領域的工作通常需要比較強的編程能力。 在專業(yè)領域應用機器學習,有這些價值的機會:?
將機器學習用于生產系統(tǒng);?
專注于機器學習研究,將技術發(fā)展的最高水平向前推進;?
用機器學習進行探查、分析,來提升你的產品和商業(yè)決策。
?8. 幫助別人研究機器學習
?教人學習能幫你鞏固對基礎概念的掌握。教別人有很多不同的方法,你可以根據自己的風格選一個:?
寫論文;?
做演講;
?寫博客文章和教程;?
在Kaggle、Quora等網站上回答問題;?
親自指導;
?在Kaggle Kernels和GitHub上分享代碼;
?講課;
?寫書。