機器學習該怎麼入門?
分享一篇如何機器學習如何入門的文章。考慮到機器學習是現在挺熱門的技術專業,如果你的本科專業是計算機類的,面臨著未來方向的一種選擇(吐槽一下,計算機類的方向實在是太多了),那麼選擇一個比較熱門的方向去做是非常OK的。這就像生在一個金庸宇宙,所有的人和事都在說會武功這件事多麼的爽快、多麼的厲害,還要是有追求的人都想去學學武功、闖蕩江湖了。
l 門派之別
既然是學武功,咱得先認準門派是不是?不過我得先宣告一下,江湖上門派林林總總,“人工智慧”卻不是一個門派,它是武功達到一定高的程度之後所呈現出的結果,就跟萬千武功殊途同歸於無招勝有招之境一樣。那麼江湖上到底有什麼門派呢?說起來,計算機技術屆的更新換代實在是太快了,但當今江湖有三大派已經屹立數年,它們就是“機器學習”“深度學習”“強化學習”——可見機器學習正是三大門派之一。
說到“機器學習”,它跟“人工智慧”一樣,是一個大概念,指的是能夠賦予機器智慧,能夠像人類一樣進行決策。同時,它也是實現“人工智慧”的方法之一。
“機器學習”派本身包羅永珍,有各種傳統的來自於“資料探勘”派的招式;有來自於神經網路的招式;有來自於機器人學的招式。創派之時江湖上還是硬體的天下,“機器學習”派在腥風血雨裡苦苦掙扎。突然間,資訊爆炸時代的來臨、大資料的崛起讓機器學習的春天到了,江湖都傳言“機器學習”派的內功心法博大精深,會之可縱橫天下。於是乎聞名而來之人之機構之應用數不勝數,門派發展一片繁榮,隱隱有一家獨大之跡象。
l 各有所長
攤子大了,分家的時候也就到了,如前所述,“機器學習”派的招式來自於不同的地方,這些人互相誰也不服誰,所以乾脆自己獨立單幹。然後就分成了幾個獨立的派系,其中基於神經網路的招式獨立為“深度學習”派,基於機器人學的招式獨立為“強化學習”派,剩下的基於早期資料探勘的招式獨立為“機器學習”派(江湖人稱“傳統機器學習”)。
傳統機器學習,適用於結構化的資料(就是非常規整的表格型資料),適用於需要進行預測的場景(預測類別型結果、數值型結果):信用風險檢測(預測類別)、銷售預測(預測金額)、使用者畫像(預測類別)、商品推薦(預測類別、預測評分)等等。
強化學習,適用於需要探索和優化的場景,不一定需要結構化的資料,對於模擬環境的準確度有強要求,能夠根據環境中引數的變化自動給出最優選擇:製造業某種裝置執行時引數自動調控、智慧溫控、智慧汙水處理、智慧交通訊號燈、Alpha Go圍棋。
深度學習,適用於非結構化資料,比如影象、語音等,適用於識別類場景:影象識別、語音識別、語音合成、語義識別。
l 身兼數家
Ok,既然想要闖蕩天下,那麼身兼各家之所長肯定是最好不過啦。But,萬事總要有個開始,建議你先找一個AI的使用場景,然後定義這個場景是屬於前述哪個派別的,接著再開始學習這個派別的知識。等這個派別的知識掌握了,那麼其它兩派不說信手拈來,總可初窺門徑——比如,想要做一個股價趨勢預測,這個場景3個門派都可以實現。
當然啦,三大門派的招式也可以結合使用,比如傳統機器學習在預測型場景中的強大作用可以作為強化學習所需模擬環境的建立;深度學習可以膨脹資料的維度,將非結構化資料轉換為結構化資料,然後使用傳統機器學習去處理;當強化學習碰到的環境狀態的變化是連續的、無窮多的時候,深度學習可以提供強大的適應性,成為強化學習模型的一部分。
l 武功祕籍
接下來還有一個hin重要的事情,那就是學好python!學好python!學好python!
重要的事情說3遍也不夠,不僅僅是因為現在有眾多機器學習庫支援python,也因為python指令碼語言的特性、python語言簡潔優雅,非常適合做資料處理(學好pandas、numpy兩個庫),常言道“建模5分鐘,資料處理半年”。如果去看一些機器學習庫、框架的教程,可能建模只需要5行程式碼以內就可以完成,這是因為這些庫都封裝了很多的機器學習的演算法。這會給人一種成就感——“看!我也會人工智慧了”,但其實吧,這種成就感是虛假的。
我建議還是要從演算法原理本身入手,畢竟你我皆凡人,活在人世間,我們沒有主角光環,只能像郭靖一樣,踏踏實實的學起。但是也別悲觀,這件事也沒有那麼難。我們也不會像小說裡的路人甲一樣,沒有際遇、沒有祕籍。接下來,我就推薦幾本入門的書給題主以及和題主一樣想學成功夫闖蕩江湖的朋友:
《資料探勘-概念與技術》,這是一本非常經典的講資料探勘的書,傳統機器學習幾乎所有的方法都在這本書裡有講解,演算法講述通俗易懂,例子上手非常簡單
《Make Your Own Neural Network》,一步步的講解神經網路的原理,引導搭建自己的神經網路,一本趣味性和技術性兼備的好書
《深入淺出強化學習:原理入門》,這是一本非常適合小白的講強化學習的書,真的做到了深入淺出
l 神兵利器
當機器學習的知識積累了一部分之後,肯定要開始動手實踐了,只有內功沒有兵器,
那再好的功夫也出不來,一個強大的、不必關心細節的平臺或者工具是非常重要的,尤其是涉及大量資料計算的時候個人電腦根本扛不住,還得自己費盡功夫搭叢集。幸好現在有云計算了,各家雲端計算底層技術大同小異,在上層的應用上對比下來,最容易上手最簡單的還屬於華為雲的EI。華為雲EI下面有機器學習服務、深度學習服務等等,能夠很快的將前述所學內功盡情發揮。
l 行走江湖
好了,學成了功夫,不管功夫如何,總該在江湖上闖一闖。在此要澄清一個問題,闖蕩江湖並不要像金庸的武俠小說那樣,非得拼出個功夫高低。現在很多公司招機器學習相關的人的時候已經不太看重對於演算法的掌握,而是看掌握的東西與其公司本身的業務使用是否相關。畢竟一個影象處理的大牛再牛,也幹不了裝置自動控制的活兒,所以找準機器學習本身應用切入點更為重要。
最後,對於想要入門機器學習的你,再強調一遍“絕密心法”:應用大於演算法!應用大於演算法!應用大於演算法!重要的事情此處再說3遍。