這是大家沒有看過的船新欄目!ML表示機器學習,DEV表示開發,本專欄旨在為大家分享作為算法工程師的工作,機器學習生態下的有關模型方法和技術,從數據生產到模型部署維護監控全流程,預備知識、理論、技術、經驗等都會涉及,近期內容以入門線路為主,敬請期待!
往期回顧:
之前寫了有關計算機開發能力和數學能力的入門,在已有一定開發和數學基礎的前提下,大家可以慢慢開展機器學習方面的學習。另外,我的線路不求全面和仔細,我只提出一種可靠性最高的線路給大家,大家可以根據自己的實際情況參考,開始之前記住一點:
入門玩家有簡單模式,高手玩家有困難模式,簡單模式的收穫肯定沒有困難模式高,當然的,入門玩家為了得到更大的收益可以先在簡單模式練習然後再上困難模式,遊戲怎麼玩都是自己喜歡的策略,但是值得關注的是,只有遊戲通關了才會有收益。
補充一句,對於已經入門的大家,也可以一起看看,自己有什麼缺漏之處,或者我有什麼可以添加的,均可交流討論。
懶人目錄:
學習目標在開始一項任務之前,我們還是先確認一下學習目標。
基本要求如下:
基本要求其實很簡短,但其實並不是大家想的那麼簡單,注意這裡有幾個隱含的內容。
這也是機器學習初學者最容易忽略的幾個點,只有把這幾個點全都能掌握,才算是真正稱得上是「會」。
補充目標,這個是補充目標,但是非常關鍵——知道自己為什麼要學機器學習,根據自己的目標來進一步確定學習策略。
為了解決一個實際問題——理解機器學習的基本內容,多看相關的案例,然後模仿解決。
工作——直接對標算法工程師的話,技術和理論都得紮實,同時要匹配市場需求。
科研——理論優先,技術保證實現即可,以能夠做實驗比對實驗結果為目標。
我的入門經歷簡單說說我的經歷吧,我的入門其實就是在統計梯隊下的集體學習,當時學的是《統計學習方法》的第一版。
數學系更喜歡摳理論,要求深度理解,要求知道為什麼,但是對如何實現倒是不太關心,每周一次討論班集體學習,每個人負責一章,內容基本就是在照著書本的進度在推進,同時會加上一些自己網上查閱的資料進行講解,說實話,在這段時間下,我的收穫很大,但是,我其實不止步於此吧,我還查閱了比較多的資料,了解機器學習的實現,同時也知道了很多有關python的內容,學習了python,掌握了sklearn,同時自己嘗試做了很多例子的嘗試,所以水平進步的很快吧。
至於深度學習,是在我意識到淺層的機器學習問題時才開始學習的,但是學習的路子比較粗暴,是淘寶上買課程學的,理論買了一份,tensorflow也買了一份,在此基礎上,結合網上很多前輩的博客,慢慢把只是補了上來。
在這裡給大家點啟示吧。
有高效的團隊學習,當然會事半功倍。
接上條,但是自己學,也要自己堅持下去,畢竟不是每一步都得有人陪著你走。
淘寶和B站是很好的低價甚至免費學習聖地。雖然低價和免費是好,但是有的時候為了學會下點血本真的可能會值(此條5毛記得刪)
多思考自己怎麼突破現狀,想想一個問題會有什麼更好的方法。
學習路線我分兩塊來講吧,首先是理論。
理論學習理論上,我只推一本書——《統計學習方法》,尤其是第二版,能看懂,你的機器學習理論能力會非常紮實,要是能手推,面試有很大優勢(這是個加分項,不是核心競爭力,畢竟真正工作不需要你會手推),而在科研上,這是你提出新算法的核心基礎,必須過,再者,第二版裡面新增了很多內容,非常建議大家好好學學。
說說這本書怎麼看,其實非常簡單,就是生啃。嘗試性地把書上的內容看懂,自己跟著推導(不是抄),遇到不懂的再行查資料(說什麼求導忘了的,自行回去看數學基礎),此時需要多問為什麼,例如為什麼此處要這麼表示,為什麼可以這麼推導,另外,不要就盯著這本書看,在學習某個點學不會時,可以多百度看看這方面的資料,很多人寫了博客筆記,對比著看,這樣有利於你了解。
視頻上,我只推一個——吳恩達老師的CS229機器學習課程,有且只有一個。照著他講的,加上課件學習,推導的時候自己也跟著推,你會成長很快,另外不要害怕英語,有中文字幕,英文課件也可以放翻譯軟體,而且,你要機器學習做進階,看論文的時候,你也避不開英文,相比你也不會只是想入個門找個工作就完事了吧?
對於深度學習,其實我學的路子很野,基本上是百度找的博客自學的,基礎模型百度一定有啊。至於細節理論會通過看論文方式深入了解,知識點上主要是這些:
說白就這些,剩下其實都是圍繞這些進行的,對於比較新潮潮流的,你可以在進階學習中補充,例如atteention等,說白了這些改進都離不開前面這些基礎。
順便回應一下為什麼不推薦《機器學習》西瓜書和被譽為」AI聖經「的花書《深度學習》,並非抨擊,只是覺得有些不合適。(個人建議,不喜勿噴)
西瓜書雖然內容全面性很強,但是個人覺得內容講的太泛不夠深入,看完了其實就只能浮於表面,舉個例子,對於隱馬爾可夫,這本書只提到了他涉及的3個問題,但是解決方案根本沒有,所以為了深入理解機器學習理論,西瓜書不太建議作為主線學習材料,當然做輔助材料還是可以的。
花書同樣是一本全面性很強的書,理論講解其實也很泛泛,或者有些該深入的地方講的很粗略,讓人反而看不懂,裡面雖然談到很多模型但是感覺都沒講到位,要是真想看完整的理解,建議看黑色封面的《神經網絡與機器學習》。
建議:
技術學習其實對於有開發基礎的同學,這些實現都不是難事了,很多方案其實百度就能了解到,而如果你要系統學習,路徑當然還是有的。
機器學習方面的書籍,首推塞巴斯蒂安的《python機器學習》,很全面。至於視頻,小象學院、七月在線啥的其實都行,機器學習這個領域的模式已經非常規範化,所以課程其實也比較規範。
深度學習方向,我比較喜歡用tensorflow和keras,我各推薦一本,黃文堅的《tensorflow實戰》,《keras深度學習實戰》,當然的,網絡資源豐富,大家也可以找更多適合自己的,tf的更新迭代很快,2現在也有了(雖然很多公司還沒開始用),大家可以通過網絡資源開始學習。
建議:
其他學習除了理論和技術,這兩個非常受到初學者關心的內容之外,應該還有很多該學該做的事情,只有這些事情做完了,掌握了,你才能說機器學習上道了。
首先要說的是特徵工程,這是一個位於機器學習模型上遊的重要步驟,具體的工作就是對特徵進行處理,使之對目標具有更直接的指向性,或者說使特徵所表現的形式更加適合這個機器學習模型。推薦兩本書吧,《特徵工程入門與實踐》,另外是《百面機器學習》中有關特徵工程的部分,特徵工程的知識本身比較規範化,但是用起來會比較靈活,基礎知識知道後,後續就是根據自己對業務的理解進行操作。
然後是,模型評估,如何衡量一整套機器學習方法是否達到目標,這是需要評估的,理論指標、性能指標等等,都需要學習,這不是個很大的問題,卻是一個有點深度的問題,我曾經在我的一個小系列中討論過這個問題,此處我把它放出來供大家參考。
最後,就是實戰了,自己找個機器學習問題,自己動手實踐一下。例如一些天池、kaggle的競賽,一些經典例子,如手寫數字識別等,這裡不要求大家拿獎啥的,而是找個比較貼合的例子,有代碼有實戰,自己動手做,在此基礎上帶上自己的想法,思考怎麼迭代更新使得結果更加好,思考過程才是最為重要的,結束之後復盤,思考自己的優缺點,從而總結得到比較好的經驗。
總結有關機器學習入門就談到這裡,希望能夠對大家有所幫助吧,按照這個路線走,肯定能夠比較好的入門,萬丈高樓平地起,大家紮實的學,紮實的做,總有質變時候,加油吧。
悄悄預告一下,本系列下一期討論機器學習如何進階,敬請期待!
由於微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:
(1)點擊頁面最上方"AINLP",進入公眾號主頁。
(2)點擊右上角的小點點,在彈出頁面點擊「設為星標」,就可以啦。
感謝支持,比心。
進群請添加AINLP小助手微信 AINLPer(id: ainlper),備註NLP技術交流推薦閱讀
這個NLP工具,玩得根本停不下來
徵稿啟示| 200元稿費+5000DBC(價值20個小時GPU算力)
完結撒花!李宏毅老師深度學習與人類語言處理課程視頻及課件(附下載)
從數據到模型,你可能需要1篇詳實的pytorch踩坑指南
如何讓Bert在finetune小數據集時更「穩」一點
模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法
文本自動摘要任務的「不完全」心得總結番外篇——submodular函數優化
Node2Vec 論文+代碼筆記
模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結
中文命名實體識別工具(NER)哪家強?
學自然語言處理,其實更應該學好英語
史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用
關於AINLP
AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備註工作/研究方向+加群目的。
閱讀至此了,分享、點讚、在看三選一吧🙏