我的學習路徑與方法之機器學習篇2——詳細歷程

      繼上一篇的大原則、方法論,接下來我結合自己的經歷講一下自己開始機器學習過程中的學習與實踐內容。我大學讀的是信息與計算科學專業,學習的專業內容包括數學與計算機兩部分,現揀其中我認爲對機器學習有助益的部分介紹,數學部分有:數學分析、高等代數、常微分方程、概率論與數理統計、離散數學、運籌學、數值計算方法、應用多元分析;計算機部分有:算法與數據結構、信息理論、數學建模。還有英語,這一塊在機器學習中比較重要,因爲機器學習中許多前沿的技術領域都來自英語系國家,學好英語有助於提高閱讀專業文檔、論文效率。英語學習主要培養語感與理解能力。
      以上課程一方面要掌握課本知識,其次就是要對其中內容加以實踐,比如運籌學、算法與數據結構都有相應的實驗題目,每一個實驗題目都要自己上機進行實現。此外,較大型的實踐該數數學建模,我參加了4次的數學建模。數學建模就是針對一個現實問題,出題方給出數據(一些情況下也會讓參賽者自己去搜索數據),要求參賽者對問題進行建模,給出分析以及解決方案。一次比賽歷時3-4天,一般2-3人組成一個團隊。比賽開始,先根據題目理清思路,然後查詢相關的論文,積累好充分的知識後就開始建模以及文檔撰寫。文檔撰寫反映了建模的思路,所以常常是一開始就建立框架,不斷進行補充的。建模過程與機器學習中的一樣,也是要對數據進行預處理、然後分析、觀察數據,建立適當的模型,對模型進行驗證、評估,最後才得出問題的解決方案。

      畢業之後做的工作是java web開發,到現在已有7年,工作中積累的主要是項目、架構方面的經驗;機器學習方面的學習是興趣使然。我對算法比較感興趣,所以業餘自學時會對一些數據結構如二叉樹、平衡二叉樹、紅黑樹等進行自己的實現,也會上一些算法網站如LeetCode練習算法。這些算法題細節推敲比較多,常會陷入死局,很多時候是靠着idea的調試以及自己手動記錄每一步的變量、結構變化圖表來走出死局,最終將問題解決的。
      後來因爲工作需要接觸到python,一開始不習慣它的空格來做流程控制,後來習慣了才發現這是一種很好的做法,可以保證代碼的可讀性與美觀。接着開始對python的語法以及類庫做更多的瞭解,發現其中非常優秀、方便、強大的工具包,比如numpy、pandas,開始愛上這門語言,這期間看的書是《利用Python進行數據分析》,同時也對相關的類庫做了充分的實驗。接下來又看了《Python數據分析與挖掘實戰》和《Python數據可視化編程實戰》,前者由一個個使用python做數據分析的案例組成,例子都非常好;後者講如何將數據以圖表形式展示,在數據分析階段中十分有用。
      開始接觸到數據挖掘了,看了大綱介紹發現其根本思想在大學時的課程《應用多元分析》中都已經接觸到了,於是開始看一些這方面的書籍,如周志華的《機器學習》(因其例子中多用西瓜,又稱作西瓜書)、邱錫鵬的《神經網絡與機器學習》。

      後來接觸到大數據,在自己電腦上搭建了hadoop以及spark,買了一本《數據算法 Hadoop/Spark大數據處理技巧》,從頭到尾看並實驗了一遍,對map/reduce以及spark的rdd等都有了較充分的理解與實踐經驗。前面也做了不少實戰,但都是練習實驗類的,現在就去看一些當前實際的應用,比如kaggle、阿里的天池大賽。一開始做的是一個關於商品推薦的天池離線賽,數據量很大,直接用pandas分析不動,所以用上了spark,最後用spark的als做的,通過grid search來尋找最優超參數,計算量很大,幾乎有一個多星期電腦沒有關,一直在跑spark的任務(我用的mac電腦),但是得出的預測結果準確率不是很高。後來,也就是最近參加了阿里的實時比賽CIKM 2019 EComm AI:超大規模推薦之用戶興趣高效檢索,這次比賽因爲部門大幅度裁員導致工作空閒的緣故才得以參加的,歷時兩個多星期,期間無數次陷入困局或者沒有思路,最後是進入複賽,但是死在了複賽,具體過程見我的另一篇博文商品推薦之CIKM 2019 EComm AI:超大規模推薦之用戶興趣高效檢索

      接着聊聊我的學習方法。對於一些需要掌握的課程,比如數學類、神經網絡理論類,看書+抄書+課後習題回答,基本上可以消化掉;如果看不懂看不下去也沒關係,可以看看相關的其他知識,做做其他輔助性的工作,留待以後會發現大腦很神奇地突然就領悟之前的那些知識點了。第二,實踐很重要,書中的每個例子我都要敲一遍,這個很有必要,實踐的好處是光看無法比擬的。第三,學習、接觸的內容不怕雜,關鍵要及時總結、不要偏離自己選擇的方向。比如我在學習了python以及一部分的機器學習內容之後,有些不知道該如何做一步的規劃。就對自己的知識點畫技術樹,同時整理機器學習本身需要的技能,兩相對比,找出自己需要加強學習的點,再做相應計劃。最後預祝有興趣於機器學習的各位能夠找到適合自己的學習路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章