未來 3~5 年,哪個方向的機器學習人才最緊缺?
既然已經身在工業界,那麼我就談談工業界未來幾年需要什麼樣的機器學習人才。不談學術界主要還是因為大部分人最終不會從事研究,而會奮鬥在應用領域。相較而言,工業界對人才的需求更加保守,這和學術界不同。這受限於很多客觀因素,如硬體運算能力、資料安全、演算法穩定性、人力成本開支等。
這個答案可能更適合兩類人: 1. 在讀的學生朋友 2. 工作不久想要轉行機器學習的朋友。特別厲害的技術大牛建議探索適合自己的路線,而我只能談一談適合大部分人的路線。但在回答前,我還是忍不住吐槽一下那種簡單回答“深度學習”,“大資料”,“NLP”,“機器視覺”的人。這每一個領域的小方向都多如牛毛,以自然語言處理(NLP)為例,細分有自然語言生成、自然語言理解,還有不同語言的語言模型。任何一個方向花幾十年研究也不為過,只給出幾個字的答案和買彩票有什麼區別…
因此大部分機器學習實踐者還是該腳踏實地。盲目追逐熱點很容易跌進陷阱,而鞏固基礎、尋找自己擅長的領域和機器學習交叉點可以幫助你在未來的就業市場變得炙手可熱,成為工業界最緊缺的人才。
0. 背景
工業界未來需要什麼樣的機器學習人才?老生常談,能將模型應用於專業領域的人,也就是跨領域讓機器學習落地的人。有人會問現在我們不就需要這樣的人嗎?答案是肯定的,我們需要並將長期需要這樣的人才,現階段的機器學習落地還存在各種各樣的困難。這樣的需求不會是曇花一現,這就跟 web 開發是一個道理,從火熱到降溫也經過了十年的週期。一個領域的發展有特定的週期,機器學習的門檻比 web 開發高而且正屬於朝陽期,所以大家致力於成為“專精特定領域”的機器學習專家不會過時。
什麼是特定領域的機器學習專家?舉個例子,我以前曾回答“人工智慧是否會替代財務工作者”時提到我曾在某個公司研究如何用機器學習自動化一部分審計工作,但遇到的最大困難是我自己對審計的瞭解有限,而其他審計師對我的工作不是非常支援導致進展緩慢。所以如果你有足夠的機器學習知識,並對特定領域有良好的理解,在職場供求中你肯定可以站在優勢的那一邊。以我的另一個回答為例「阿薩姆:反欺詐(Fraud Detection)中所用到的機器學習模型有哪些?」,特定領域的知識幫助我們更好的解釋機器學習模型的結果,得到老闆和客戶的認可,這才是演算法落了地。能寫程式碼、構建模型的人千千萬,但理解自己在做什麼,並從中結合自己的領域知識提供商業價值的人少之又少。
當然,給餵雞湯不給勺很不厚道,所以我也會給出一些具體建議。再次申明,我的建議僅給以就業為目的的朋友,走研究路線我有不同的建議,本文不再贅述。
1. 基本功
說到底機器學習還是需要一定的專業知識,這可以通過學校學習或者自學完成。但有沒有必要通曉數學,擅長優化呢?我的看法是不需要的,大前提是需要了解基本的數學統計知識即可,更多的討論可以看我這個答案「阿薩姆:如何看待「機器學習不需要數學,很多演算法封裝好了,調個包就行」這種說法?」。最低程度下我建議掌握五個小方向,對於現在和未來幾年內的工業界夠用了。再一次重申,我對於演算法的看法是大部分人不要造輪子,不要造輪子,不要造輪子!只要理解自己在做什麼,知道選擇什麼模型,直接呼叫 API 和現成的工具包就好了。
- 迴歸模型(Regression)。學校的課程中其實講得更多的都是分類,但事實上回歸才是工業屆最常見的模型。比如產品定價或者預測產品的銷量都需要回歸模型。現階段比較流行的迴歸方法是以數為模型的 xgboost,預測效果很好還可以對變數重要性進行自動排序。而傳統的線性迴歸(一元和多元)也還會繼續流行下去,因為其良好的可解釋性和低運算成本。如何掌握迴歸模型?建議閱讀 Introduction to Statistical Learning 的 2-7 章,並看一下 R 裡面的 xgboost 的 package 介紹。
- 分類模型(Classification)。這個屬於老生常談了,但應該對現在流行並將繼續流行下去的模型有深刻的瞭解。舉例,隨機森林(Random Forests)和支援向量機(SVM)都還屬於現在常用於工業界的演算法。可能很多人想不到的是,邏輯迴歸(Logistic Regression)這個常見於大街小巷每一本教科書的經典老演算法依然佔據了工業界大半壁江山。這個部分推薦看李航《統計學習演算法》,挑著看相對應的那幾章即可。
- 神經網路(Neural Networks)。我沒有把神經網路歸結到分類演算法還是因為現在太火了,有必要學習瞭解一下。隨著硬體能力的持續增長和資料集愈發豐富,神經網路的在中小企業的發揮之處肯定會有。三五年內,這個可能會發生。但有人會問了,神經網路包含內容那麼豐富,比如結構,比如正則化,比如權重初始化技巧和啟用函式選擇,我們該學到什麼程度呢?我的建議還是抓住經典,掌握基本的三套網路: a. 普通的 ANN b. 處理影象的 CNN c. 處理文字和語音的 RNN(LSTM)。對於每個基本的網路只要瞭解經典的處理方式即可,具體可以參考《深度學習》的 6-10 章和吳恩達的 Deep Learning 網課(已經在網易雲課堂上線)。
- 資料壓縮 / 視覺化(Data Compression & Visualization)。在工業界常見的就是先對資料進行視覺化,比如這兩年很火的流形學習(manifold learning)就和視覺化有很大的關係。工業界認為做視覺化是磨刀不誤砍柴工,把高維資料壓縮到 2 維或者 3 維可以很快看到一些有意思的事情,可能能節省大量的時間。學習視覺化可以使用現成的工具,如 Qlik Sense 和 Tableau,也可以使用 Python 的 Sklearn 和 Matplotlib。
- 無監督學習和半監督學習(Unsupervised & Semi-supervised Learning)。工業界的另一個特點就是大量的資料缺失,大部分情況都沒有標籤。以最常見的反詐騙為例,有標籤的資料非常少。所以我們一般都需要使用大量的無監督,或者半監督學習來利用有限的標籤進行學習。多說一句,強化學習在大部分企業的使用基本等於 0,估計在未來的很長一陣子可能都不會有特別廣泛的應用。
基本功的意義是當你面對具體問題的時候,你很清楚可以用什麼武器來處理。而且上面介紹的很多工具都有幾十年的歷史,依然歷久彌新。所以以 3-5 年的跨度來看,這些工具依然會非常有用,甚至像 CNN 和 LSTM 之類的深度學習演算法還在繼續發展迭代當中。無論你現在還在學校還是已經開始工作,掌握這些基本的技術都可以通過自學在幾個月到一兩年內完成。
2. 祕密武器
有了基本功只能說明你可以輸出了,怎麼才能使得你的基本功不是屠龍之術?必須要結合領域知識,這也是為什麼我一直勸很多朋友不要盲目轉機器學習從零做起。而學生朋友們可以更多的關注自己感興趣的領域,思考如何可以把機器學習運用於這個領域。比如我自己對歷史和哲學很感興趣,常常在思考機器學習和其他文科領域之間的聯絡,也寫過一些開腦洞的文章「 帶你瞭解機器學習(一): 機器學習中的“哲學”」。
而已經有了工作 / 研究經驗的朋友,要試著將自己的工作經歷利用起來。舉例,不要做機器學習裡面最擅長投資的人,而要做金融領域中最擅長機器學習的專家,這才是你的價值主張(value proposition)。最重要的是,機器學習的基本功沒有大家想的那麼高不可攀,沒有必要放棄自己的本專業全職轉行,沉沒成本太高。通過跨領域完全可以做到曲線救國,化劣勢為優勢,你們可能比只懂機器學習的人有更大的行業價值。
舉幾個我身邊的例子,我的一個朋友是做傳統軟體工程研究的,前年他和我商量如何使用機器學習以 GitHub 上的 commit 歷史來識別 bug,這就是一個很好的結合領域的知識。如果你本身是做金融出身,在你補足上面基本功的同時,就可以把機器學習交叉運用於你自己擅長的領域,做策略研究,我已經聽說了無數個“宣稱”使用機器學習實現了交易策略案例。雖不可盡信,但對特定領域的深刻理解往往就是捅破窗戶的那最後一層紙,只理解模型但不瞭解資料和資料背後的意義,導致很多機器學習模型只停留在好看而不實用的階段。
換個角度思考,不同領域的人都有了對機器學習的理解能更好的促進這個技術落地,打破泡沫的傳言。而對於大家而言,不用再擔心自己會失業,還能找到自己的角度在這個全民深度學習的時代找到“金飯碗”。所以我建議各行各業的從業者不必盲目的轉計算機或者機器學習,而應該加深對本專業的瞭解並自學補充上面提到的基本功,自己成為這個領域的機器學習專家。
3. 彈藥補給
沒有什麼不會改變,這個時代的科技迭代速度很快。從深度學習開始發力到現在也不過短短十年,所以沒有人知道下一個會火的是什麼?以深度學習為例,這兩年非常火的對抗生成網路(GAN),多目標學習(multi-lable learning),遷移學習(transfer learning)都還在飛速的發展。有關於深度學習為什麼有良好泛化能力的理論猜想文章在最新的 NIPS 聽說也錄了好幾篇。這都說明了沒有什麼行業可以靠吃老本一直瀟灑下去,我們還需要追新的熱點。但機器學習的範圍和領域真的很廣,上面所說的都還是有監督的深度學習,無監督的神經網路和深度強化學習也是現在火熱的研究領域。所以我的建議是儘量關注、學習瞭解已經成熟和已經有例項的新熱點,不要凡熱點必追。
如果你有這些基本功和良好的領域結合能力,三年五年絕不是職業的瓶頸期,甚至十年都還太早。科技時代雖然給了我們很大的變革壓力,但也帶給了我們無限的可能。技術總會過時,熱點總會過去,但不會過去的是我們不斷追求新科技的熱情和對自己的挑戰。