未來 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聽說也錄了好幾篇。這都說明了沒有什麼行業可以靠吃老本一直瀟洒下去,我們還需要追新的熱點。但機器學習的範圍和領域真的很廣,上面所說的都還是有監督的深度學習,無監督的神經網路和深度強化學習也是現在火熱的研究領域。所以我的建議是盡量關注、學習了解已經成熟和已經有實例的新熱點,不要凡熱點必追。
如果你有這些基本功和良好的領域結合能力,三年五年絕不是職業的瓶頸期,甚至十年都還太早。科技時代雖然給了我們很大的變革壓力,但也帶給了我們無限的可能。技術總會過時,熱點總會過去,但不會過去的是我們不斷追求新科技的熱情和對自己的挑戰。
歡迎來到機器學習的世界 ?????
兩天前看這個問題的時候還只有寥寥百人關注,今天就猛增到2000多人。這個問題本身是很贊的,學以致用才是最好的。
這個問題不是很好回答。前一半問題是「哪個方向」,似乎講的是領域和研究方向,後一半問題「最緊缺人才」,又和就業有關。所以我的回答盡量把這兩方面兼顧,先談就業和工業界緊缺的人才,再說說學術界缺少的人才。
我最近被兩個前輩抓到他們的創業公司做暑期實習,公司是什麼最好就不說了,但除我之外還騙來了一個清華的本科生(從北京騙到了矽谷)。兩位前輩一個是Sebastian Thrun(賽巴斯提安·特龍)的學生,一位是Stefano Ermon的學生,去年在AAAI拿了個最佳論文的獎。
我雖然對工業界一直都不太熟悉,但借這個機會算是好好看到了一番目前人工智慧創業公司的有趣情景。雖然不一定能當做借鑒,但一些經驗對目前在校或者剛離校的學生來講也許會有幫助。
- 能靈活解決問題的人很缺
在我被抓去之前,他們有另外一個名叫Daniel(丹尼爾)的研究生幫忙,丹尼爾也是一位人工智慧方向的研究生。丹尼爾負責的模塊是文本的聚類演算法。我對聚類演算法一竅不通,之前還把KNN和K-means搞混了。公司創始人Zayd(札德)告訴我,他們的文本簇群(cluster)總是有問題,丹尼爾調整聚類演算法的參數已經6個月,但是根本沒辦法提升質量。
我用了一周的時間讀丹尼爾的代碼(夠慢了吧,完全趕不上很多國內的優秀學生),然後打開Jupyter Notebook開始一點點的做分析,最後發現丹尼爾把文本距離的演算法做錯了,任何從事自然語言處理的人都明白edit distance(編輯距離)的首選就是萊文斯坦距離(Levenshtein距離),就算不是做自然語言處理的,這個距離在計算機界也用的很多。但這個距離壓根不存在於丹尼爾的任何代碼中。然後我把這一行加入進去,代碼跑了5小時,最後給札德說:我做完了,檢查質量吧。
一周後,丹尼爾就被炒魷魚了……然後公司的另一個創始人Russel(羅素)開始到處宣傳我用了一周解決了別人六個月都解決不了的問題。(當然,丹尼爾最後找到了一份谷歌的工作,開開心心的做機器人去了)
舉這個例子想說明一件事:(創業公司真是沒有安全感?)要建立起在某個領域的直覺和精通。這個精通並不單單是掌握一兩個(甚至是好幾個)演算法就可以了的。深度學習總愛鼓吹一個模型解決所有問題,但是等你真正進入公司後才發現這基本是不可能的。
基礎是必須紮實的,這個基礎最好是某一個領域將近20-30年的知識的積累。只會跑個LSTM是肯定不行的。
2. 能專精一個領域的人才也很缺
這裡要講另外一個同學的例子了,他的名字叫伊森,從伊利諾伊香檳畢業,在我校讀了兩年計算機研究生,跟在航天航空工程學院的Mykel Kochendefer(麥克·寇克德福爾)教授麾下做了一段時間的研究,是一位非常優秀,有自學能力的學生。
暑假剛開始的時候,我在帕羅奧圖的街上偶然遇見他,因為有過一面之緣,打了招呼後順帶聊了聊現狀,當我告訴他我加入了札德的公司的時候,他說他幾天後要跟札德面試。
我在回答開頭劇透了,伊森沒能應聘成功。在這裡分享的意義是,伊森的背景和很多進入人工智慧領域的人很相似。下面這一段是我和他的對話:
我:「你最擅長的人工智慧領域是什麼呢?」
伊森:「我什麼都會(jack-of-all-trades)。」
(評論:這很容易誤導招聘者讓他們覺得你樣樣都不專精)
我:「你在寇克德福爾教授那裡做了什麼樣的研究呢?」
伊森:「我給無人機搭建了一個伺服器,用了Kafka做流處理。」
(評論:這句話暴露缺乏研究經歷)——雖然Kafka也還算是有趣
我:「怎樣的工作在你看來最有趣呢?」
伊森:「我想有機會把最前沿的演算法應用在公司的業務中。」
(評論:演算法沒有前沿與不前沿之分,只有合適與不合適之分)
我:「你理想的工作崗位是什麼呢?」
伊森:「我其實最想當人工智慧的產品經理。」
(評論:其實產品經理的收入不如程序員哦)
最後伊森問了我一個問題,如何在一周內精通自然語言處理,然後我只能告訴他我不知道。
舉這個例子的意思是,伊森是一個聰明人,有很強的工程背景(伊利諾伊香檳的計算機系很不錯),但是卻不一定是機器學習/人工智慧創業公司的最理想人才,為什麼呢?因為在學校階段沒有在實驗室做研究型工作,也沒有足夠的實踐經驗。他找錯了教授(抱錯了大腿)。寇克德福爾教授沒有給他任何研究性質的工作,於是他用了兩年寶貴的時光學習了如何搭建伺服器,如何使用Kafka。
當然,如果想要做普通的工程師崗位,任何(不論大小)公司都缺優秀的後端工程師,但如果想應聘機器學習方面的崗位,或者和演算法、研發比較接近,那麼搭建平台或者伺服器的「研究」經歷就是不夠的。
如果本科有個很好的學校,或者特別擅長學習,這一類的優秀人才很容易陷入每一個領域都想學學的陷阱。再加上「大公司要專才,小公司要全才」一類的宣傳,很容易覺得如果每方面都學一點,那麼一定會被創業公司喜愛。
事實上機器學習的底層模型原理都是類似的,與其在應用層(比如機器控制、視覺、語言、語音)等瞎晃,還不如去把底層原理弄清楚。人工智慧的創業公司,和普通的網頁或者手機應用公司還是有區別的。這些公司更看重學生在學術領域的成績,因為目前大部分人工智慧的模型是沒法直接搬到工業場景的。
3. 能夠把學術模型轉化成工業模型的人才很缺
這裡要講一個成功案例,Nihil (尼希爾)是另一個我認識的研究生,也是從伊利諾伊香檳大學畢業。尼希爾其實比我年紀大好幾歲,但長著一張娃娃臉,他之前在LinkedIn(領英)做大規模搜索(Scaled Search),專門負責把理論演算法擴大到工業場景中,擅長搭建後台,有很強的工程背景。兩年的斯坦福計算機碩士後,現在被Snapchat找去做大規模視頻搜索演算法。
無論是我還是札德,在和他交流後都很想讓他跳槽來我們這裡工作。
也許你想問,他和伊森的區別是什麼?兩個人看起來不都差不多,都是以做伺服器或後端為主,為什麼尼希爾是大家想要的人才,伊森並不完全算是?因為經歷和背景,在領英這樣的大公司做高吞吐高負荷的演算法所積累的技能,是一個實驗室的無人機平台無法企及的。
任何人都可以跑一個LSTM,但是當訓練數據有超過1000萬條的時候,LSTM需要跑3天才能見完所有的數據,在這個情況下,你該怎麼做?除了在多個GPU上並行以外,還可以進行演算法上的改進,LSTM是所謂的線性時間度 O(n)的演算法,可以換成像ByteNet這樣的sub-linear時間度 演算法。
谷歌最近發了一篇通報,說他們的工程師團隊經過一年的努力,終於把WaveNet(某個能夠生成高模擬人聲的模型)速度提升到了一秒鐘生成二十秒鐘的人的說話聲音,比學術模型快1000倍。我當時看了這篇文章後,在網上隨手搜了搜,發現谷歌沒有公開任何加速的細節,究竟是如何做到的,他們並沒有說。Awni Hannan(奧尼·哈南),我的一個前輩,之前和吳恩達教授在百度矽谷工作,說他大概能猜測到谷歌為了優化所做的一些事情。但不難想像,這很有可能是一系列的優化,從硬體,從計算,從部署等等進行的細緻優化。這樣的細節雖然有「學術」價值,但從這裡開始,大部分公司都不再會公開細節,讓中小型公司(創業公司)難以望其項背。
這樣的場景就需要有研究背景的人才,能夠閱讀業內最新的論文,還能夠結合學術前沿切實的解決工業上的難題。深度學習50%是學術,50%是工程。這個領域的學術大牛,像是Justin Johnson(賈斯汀·強森),Andrej Karpathy(安德烈·卡帕西)(兩人都是斯坦福CS231N的講師)都是很強的工程能手。
題外話:能夠研究深度學習理論的人才
去年暑假我上凸優化的時候,當時我的老師Stephen Boyd(史蒂芬·波伊德)就說,當年(80年代)凸優化剛火的時候,學術界和工業界齊頭並進,但大部分優秀論文都集中在學術界,用凸優化的框架建立演算法,然後應用在各種數據集上,取得一個又一個輝煌的成果。但隨著時間推移,沒過十年,學術界在數據和應用就已經趕不上工業界了。當然,學術界既沒有足夠多的機器,也沒有財力去搜集大量的數據,當工業界開始用資本大規模投入的時候,學術界自然就戰勝不了工業界了。
我們現在已經可以看到苗頭了,DeepMind,谷歌,OpenAI,微軟,FAIR等各大公司搶佔人工智慧高地,大量的發出論文,傳統的強校諸如CMU或斯坦福都比不上這些大公司的勢頭和影響力。這個情況在3-5年後很有可能會惡化。
也許很多人覺得深度學習的理論就是數學,理論根本不能有任何實踐產出,何必研究理論呢?還不如寫網頁前端或者做個手機App呢。
我今年聽了Philip Thomas(菲利普·托馬斯)的一個講座,講的是安全增強學習(Safe RL),這個講座講了一個案例,他們想要通過增強學習來自動調解糖尿病病人的給葯泵,這個泵給葯給多了,病人就要截肢,給少了病人就要直接休剋死。高不成低不就的典型代表。目前這種泵的演算法是一個簡單的微分方程,能保證不會少給葯,但是經常會多給葯,導致很多重度糖尿病都要被截肢。
菲利普的這個項目就是要嘗試著用增強學習來得到一個優良的自動調整模型。這個項目立意很好,救人一條腿勝造七級浮屠嘛,但是菲利普問了在座的我們一個問題:「你們知道現在這些增強學習的演算法,需要多少次試驗才能調出一個成功的模型嗎?」
需要上百萬次參數調整後,才能得到一個很好的模型。你總不能對幾百萬糖尿病患者說:「為了所有現在以及未來的糖尿病患者,你們去死吧。」 而且更重要的是,增強學習演算法經常不能保證每一次參數改變後都能讓模型變得更好:
這就像是說,我不知道這一顆葯讓你更健康還是讓你死掉(或截肢),但是為了實驗效果,你最好給我吃下去。
為了真正的把增強學習應用在醫療領域,需要通過概率理論,通過各種Bound(邊界)去證明一個演算法能切實的每次都達到更好的效果。這就是理論對工業界的指導,也是理論在應用領域的勝利。
每個機器學習的領域,不論是自然語言處理、機器視覺、機器人其實都是這樣的人才緊缺規律,找到自己最適合的缺口才是最重要的。這可以是能夠將一個演算法高度並行化,在上百塊GPU上運行的工程人才,也可以是在高危領域(比如無人駕駛、醫療)保證安全第一的理論人才。這兩塊區域在未來的3-5年內都會急缺人才。
-------------------
最後總結一下,說了這麼多,希望能對各位的選擇有幫助。
進入工業界時間不長,這裡主要討論一下之前找工作面試,以及自己工作一個月以來的一些想法。
先說背景,我在國內讀的本科,在德國完成了碩士學習,專業都是通信,然後一年半前開始自學機器學習,深度學習,計算機視覺等方面的知識,同時參加Kaggle 的比賽,找工作期間投的都是歐洲這邊Data Scientist 的職位,現在在法蘭克福一家創業公司從事數據科學在物聯網方面應用的工作。
這裡主要介紹一些面試期間的情況,因為在歐洲這邊找機器學習方面的工作,基本都會在面試期間做一個時間不等的案例分析,案例的方向基本就是公司機器學習應用的業務方向。
Adidas總部,申請的第一家公司,前兩輪面試之後,會被分配一個一周的案例分析,給的數據是過去兩年阿迪達斯各個產品包括,鞋子,衣服等在歐洲各個國家的銷售情況,然後一些和產品本身相關的屬性信息,任務是給出接下來幾個月的各個產品的銷售,盈利情況。要求用多種模型實現。
Trivago總部,trivago是一個專業於酒店預訂服務的全球酒店搜索引擎,該網站對來自很多酒店預訂網站、以及酒店的報價進行比較,給出的案例分析時間一周,案例是個比較典型的點擊預測Mini project,要求就是對給出的測試集做預測,在給定的Metrics下精度越高越好。
Creditech,一家中型的提供信用卡相關服務的公司,給的案例是典型的信用卡欺詐預測,時間24個小時,數據是blind過的,而且要求必須用R實現,因為好像雖然目前在機器學習領域Python占絕對的主導,但是在和經濟相關的領域,R還是頗為流行的。
EY,也就是國際四大會計事務所之一的安永,案例也是一周,不過案例和機器學習沒什麼關係,給出的數據是歐洲各個國家進出德國的數據,然後做一些簡單的數據分析,沒有涉及任何機器學習演算法模型。
Seamless Machine Learning,一家位於英國劍橋的做演算法交易的小創業公司,前面三輪電話視頻面試後最後一輪會去他們在劍橋的辦公室跟著團隊一起工作兩天,做一個Mini Project,因為還在等簽證期間已經確定了現在這個公司的職位,所以沒有去參加最後一輪面試,不過通過之前幾輪的面試,大致了解到他們一個業務是構建機器學習模型,預測比賽賠率,比如他們在其中一個面試中問我,如果去構建一個模型,預測網球比賽當中其中一方的勝率,需要搜集哪些數據,可能會用到什麼模型。
然後我現在的公司,Record Evolution,提供物聯網端到端技術方案的數據科學公司,我現在做的一個項目是嘗試構建機器學習模型,來預測汽車剎車過程中的某種特定的雜訊,分析原因,然後想辦法消除雜訊。
還有一些其他的面試,不過,大體上類似,就不再贅述了。
在找工作投簡歷期間我就發現,如果決定了去工業界之後,可以選擇的面特別廣,像我上面提到的,你既可以去一個純互聯網公司,去做用戶點擊預測這樣的工作,也可以去會計事務所去做機器學習在稅務方面的應用,或者去研究所做某種CT圖的分析,然後預測某種疾病發生的概率。在歐洲這邊很多很多的傳統企業都在試圖在本來的產品線中集成機器學習,更好的利用本來積累的數據來開拓增長點,這裡不要求你緊跟學術界每天最新研究的進展,也不要求像Kaggle比賽已經在數據已經非常規範的情況下,窮盡一切可能提高百分點,而是去和具體的業務相結合,運用機器學習在業務當中,不清楚國內的情況,不過歐洲這邊現在傳統企業有點數據的都在試圖朝這個方向走。在工業界更多的是需要應用機器學習在一些傳統的領域,在這個工程中會需要掌握一些domain的知識,當然並不要求你是這個領域的專家,更多的是去利用本來已經產生卻沒有被充分利用的數據然後增加可能的銷售增長也好,開展新的業務方向也好。
不過,接下來才是我要說的重點,我之前的背景主要是機器學習的各種演算法,但是,我進現在的公司已經超過一個月了,目前還沒接觸任何機器學習演算法的任何工作,一直都在設計演算法,標註數據,搜集,清理數據,配置Cluster,做著Data Engineer的工作,不過這個可能是因為小公司,每個人要做的,負責的面比較廣,大公司每個人做的會更加細分一些,這個也是我選擇小公司的其中一個原因。不過如果選擇進入工業界的話,在糾結演算法性能能不能提高0.0001%之餘,多去玩玩Spark,跑跑Cluster還是挺有幫助的。
商業導向來說,依然還是信息檢索底下這些小領域,包括推薦系統啊,計算廣告之類的。深度學習,強化學習,生成模型這些新思路新想法在這些領域上才剛有一點點小進展,可挖的空間相當大。
隨便一點己見,有人說NLP人才少,我估計吧,應該是因為很多人以為NLP成熟了吧,siri都能讀懂我的話了那還不成熟?我一直感覺NLP終歸有有上限,但就某些免費或收費的庫或者服務來說。那還是差的遠了...NLP畢竟是我們臆想中那個人工智慧的真正界面,就像整個計算機的用戶界面一樣。我幻想過一點小場景,比如滴滴打車的界面直接統一變成一個siri一樣的語音界面,我就跟他說,我要去哪,我只有多少錢,我要多久。他就自動生成單子,這才叫用戶體驗,你設計個再精妙的UI那也比不上這種操作的用戶體驗。我感覺有太多的應用可以收成一個語音界面了。這也只是NLP實際改變生活的一個場景而已,並且這場景其實也就值那點錢,也就是個半痛半癢的點。但NLP其他的領域,自動化的客服,輿情,教育,網路監控,這麼多領域,這可就值錢了。NLP很值錢的,並且也是人工智慧里那些理論現在落地後比較實際的領域。其他你說做金融模型所以人科大訊飛才被評為中國最有創造力的公司?忘了是啥頭銜,反正還行。其實在知乎上問也挺沒必要的,你看大廠們BATJM巴拉巴拉這些廠子們都在往哪個方向布局,鋪地,你就明白了。
至於大廠們鋪無人駕駛...恩...為了股價吧...不然我也想不出來了,無人駕駛最重要是國家政策啊,國家想著真搞無人駕駛,得花多少錢,這法律,交規和道路的修改可是我在掏錢,我掏這錢,交通部分會少多少崗位,會有多少人當不了司機失業的,運輸業得少多少人,會給社會帶來多少可能的不穩定,而我付出這麼多,到底這交通事故能不能減少,這社會的收益能不能彌補這些投入,能不能帶來我國GDP的提升。這就很麻煩了,在中國,無人駕駛肯定是不好推的,你要一步一步來,那得多少年,也只能說,這事兒不是技術牛不牛逼的問題,這個事兒,重點不在技術上。
從人才緊缺的角度來看,機器學習未來3-5年,在哪個方向容易落地,恰好這個方向又能很好的跟實際應用場景相結合,創造巨大的利潤空間,那麼這個市場和技術,就會導致人才的大量緊缺。
從目前技術發展來看,機器學習領域學術界發展大熱,工業界的研究也是趨之若鶩,但對於市場來說,與之相配套的上下游產業還沒有完全成熟,未來1-3年內,應該還是一個積累期和探索期,這個時期內,在與機器學習相結合的的一些垂直行業,可能會出現井噴式的爆發,如語音識別技術,圖像識別技術,翻譯軟體等
還有現在比較火的slam技術,結合掃地機器人,環境感知感測器等。隨著5G時代的到來,數據傳輸帶寬和傳輸時延將會有一個或幾個數量級的增長,物聯網技術將會逐漸鋪開
將來萬物互聯,每一個物體都是一個信息採集節點,數據量將會比現在的互聯網時代呈指數級增長,大數據的條件具備了,就為機器學習演算法發揮力量提供了行業基礎,真實世界和虛擬世界的契合度進一步增加,我覺得3-5年後,與服務,健康,交互,分析等相關的產業,機器學習結合具體的場景應用,將會有非常廣闊的空間。
那時候,機器學習的基礎框架,會逐漸趨於成熟,就跟現在的操作系統一樣,程序員不用特別關注裡面的運行機制,只需要基於這樣的平台或者框架,來做場景應用就可以了。
所以,將來我覺得,懂機器學框架,同時又能深入結合某個專業領域知識的人,能夠跟場景模型緊密結合系統和專業,最吃香。
與其問將來機器學習那個方向吃香,倒不如轉變轉變思路,想想將來那個行業吃香,社會發展的趨勢是什麼?人們現在在高度發展的互聯網時代,當這些都成為常態後,人們的精神訴求在哪裡。
我覺得從我親身感受來說,我更加在意的是,如何獲取到自身的一個真實的狀態,能夠對自己進行更加精細和理性的管理。比如說通過小米手環等檢測自身健康狀態,合理的時間分配,對自己的精神狀態,行為進行數據分析。這些都可以通過機器學習的手段,進行更加深入的分析。這種分析跟現在的分析不一樣,這種分析不應該只是提現你現在狀態,還應該能指導你下一個狀態。
(以上為個人見解,歡迎來討論)
可能題主也是一個想要找到研究方向的學生吧。本人也是學生,結合自己的一點點認識,拋磚引玉一下吧。
機器學習是一個大類,作為學生,不能說我掌握了決策樹,SVM,隨機森林,Kmeans等演算法就算合格的MLer了吧。機器學習有太多細分的領域,下面列一下能想到的吧。
如果按照最高層面來說。當前有監督學習已經研究的差不多了,研究人員更多的在研究弱監督學習和無監督學習,它們尋求在有標記樣本量較少的情況下取得高性能。這也是為什麼增強學習和生成對抗網路(GAN)這兩年大火的原因吧。
按照研究領域來分
1.計算機視覺大類
CV裡面包含的子領域也很多,各個子領域也都是深似海,有很多可以深挖的方向。
①圖像分類,檢測,分割
這些在有監督情況下,在大數據集上,都是研究的差不多的了,當前的主要問題是如何在弱監督的情況下也能做到媲美有監督情況下的性能。
另外,這些檢測,分割演算法,最近在醫療行業也大展拳腳了。
②人臉識別,行人重識別(re identification),跟蹤
這個在監控安防領域估計大有發展前途,如何解決暗光,遮擋情況下的識別仍舊是一個挑戰。這種領域應該在工業界大有發展空間估計這也是商湯,曠視等公司研究的重中之重吧。
③模型壓縮
當前的深度學習模型太大,無法在移動端高效運行,也有很多學者和工程師在研究如何精簡模型,如MobileNet,ShuffleNet,或者在理論上減少計算量。
2.自然語言處理
當前,NLP中的翻譯也是一個主流方向,人機對話,聊天機器人也有很大改進空間,應用也非常廣。
另外,語音識別也算是一個大方向吧。
3.數據挖掘
這個不多說,基本上所有的大公司,都需要數據模式分析,用戶畫像吧。學生把數據挖掘作為方向,起碼工作機會應該非常多
4.推薦系統
當前,不管是購物,視頻,音樂網站,都需要優秀的推薦系統來提升用戶體驗,感覺這個領域作為研究方向也不錯。
~~~
再有想到的隨時加上。
我覺得是NLP
-----------------------------------------------
被吐槽了,再補充分一點。
NLP是自然語言處理的簡寫。NLP為什麼好,我從兩個方面來說。
工業界:NLP的業務是最穩定的,傳統業務搜索 廣告 推薦系統 用戶畫像 大量用到NLP技術,業界對NLP人才的需求是很穩固的,未來3-5年穩中有升。別的人工智慧技術,例如自動駕駛,並沒有穩固的業務,要搞個五年,證明不可行,那怎麼辦?
學術界:NLP作為人工智慧完全的課題,包含人工智慧里的所有難點,現在還只是自然語言處理,離自然語言理解還有距離,還有重大課題需要突破,完全值得奮鬥終身。
最缺做理論的 不是做模型的
標數據的人才。
因為人工智慧的重點是人工。
我覺得有兩類人才最緊缺,一是能夠快速提供正確的解決方案的機器學習工程師,二是研究前沿問題的 機器學研究者,身處工業界,因此我主要說下第一類。
一.能夠快速提供正確的解決方案的機器學習工程師
關於機器學習方面的研究有很多,但是真正能實現營收的是能夠使機器學習落地的項目,這些工程師熟 悉多種語言,API和數據格式,以便能夠使用任何開源代碼或者是第三方代碼。知道在什麼樣的人力資源 和項目時間的條件下,什麼技術最有用。而這一類人才同時需要具備數據分析、演算法選擇、特徵工程、交叉驗證和解決問題的能力。因此,這一類人才需要具以下幾個技能:
1.Python/C++/R/Java: 精通這些語言,Python對於機器學習來說,是最重要的語言,而C++主要用來提升代碼速度。
2.概率統計:機器學習的一大部分是基於這個理論,比如貝葉斯、高斯混合模型等等,都需要對概率有 一個確切的理解。
3。應用數學和演算法:對於像支持向量機這樣的判別模型,你需要對演算法理論有一個深刻的理解。即使你 可能永遠也不需要從頭開始實現一個SVM,但它有助於理解演算法是如何工作的。需要了解像凸優化,梯度 下降,拉格朗日,偏微分方程等。
4.分散式計算:目前大多數機器學習工作需要使用大型數據集。不能在一台機器上處理這些數據,必須 在整個集群上分發它。
二.研究前沿問題的機器學習研究者
這一類人才通常是解決一些不尋常的問題,他們會在現有演算法的基礎上,提出更好的解決方法。能夠為 技術做出卓越的貢獻。最緊缺的,還是打著人工智慧旗號,為整個人工智慧學術界和工業界指點江山的自媒體、營銷號、戰略家們。
目前最欠缺的是懂機器學習的產品人才,把技術真正落地。引用初敏老師的一段話:「最後,我覺得現在非常缺少產品設計方面的人才。之前說人工智慧技術人員很欠缺,現在產品人員更欠缺。現在如果你想做一個人工智慧產品,如果你自己沒有技術,外接第三方的技術都能滿足。所以在這種情況下缺的是什麼樣的人呢?是能將各個技術的各個應用信手拈來的人,知道技術的局限在哪裡,能夠揚長避短,以客戶的角度思考問題,設計產品的人。」
我本來只是想寫個評論到 @紫杉 的回答下面,但因為被知乎說我 評論發布失敗,我決定我copy paste 到這裡來。
為啥我覺得你說的並不對。。。唉。。可能是我個人的偏見吧。你要是說真的把researcher/phd的skillset捋一捋,真的比master高出哪些嗎?
1.follow paper的習慣和儲量,
2.分解問題,主動找potential solution的能力
3.紮實的基本功,特別是理論的,數學方面的。
a) 我覺得,其實這些特徵,master也可以跳一跳,接受一定訓練後也可以達到。
b)我也並不覺得,在其他答案中說到的domian knowledge的作用很大,這是很費時去學學而已,多花時間理解就可以了
c)說到伊森,我沒覺得他哪裡不夠好~ 做工程性的,就不好?為啥被定義成 沒抱對大腿?所以正確的抱大腿的方式是?
不好意思哈~ 我在看你寫你interview 伊森,自動帶入自己回答問題,我覺得我 response 和伊森 就差不多。所以難免站在 伊森的角度替他說話。我就想問,你prefer Nihil的原因里,有什麼工作職能是Nihil能做,但是伊森 不能勝任的呢?我特別好奇這點,麻煩你展開說說可以嗎?linkedin本身就用kafka很多,伊森正好也有這方面的經驗,所以他到底為什麼不qualify?
我對data scientist的理解或者定位是,他只是加強版的software engineer。我不care你讓我做什麼,因為我什麼都能做!前端,後端,kafka,spark,modeling,甚至有時候做多了,自己也都混了,我的意思是,我覺的 they are equally one part of my system. 你真的覺得你學會了這些以後,上述這些東西做起來 有什麼區別嗎?你不也 不design/develop algo,不也僅僅是把各個component連在一起,你真的覺得,有什麼特別深刻的,特別本質的區別嗎?(我不是懟任何人哈,我也是很好奇,我思考很久,從沒得到過答案,可能我的樣本太小,有sample bias)。
咱們做 ML project做多了的人,其實不還是就翻來覆去那幾類演算法,你覺得我們真的contribute什麼了嗎?我們只是掉包而已,或者把 已用的algorithm套用到這個context上去。 唉。。。不好意思,反問句太多,不是沖你哈,歡迎被大家各種懟,附加案例是最好的。
我再說說我理解的software engineer,分解它的skill set後boil down to 。
1)data structure algo
2) 熟悉各種工具,包括programming language syntax,各種config
3) 對system怎麼搭建起來的,有個邏輯上的概念和理解(比如了解web = server 端+ client 端,不一定非要理解tcp/ip什麼的)
4)工程性的習慣和技能,e.g.爬坑,也就是知道去哪裡搜答案;持續學習,缺什麼補什麼;理解agile,version control什麼的
而我所謂的data scientist,actually whatever you call it, 我認為是加強版的software engineer。
也就是在上述基礎上,有collateral
5)domain knowledge,畢竟大部分時間都是在要數據,理解數據,甚至就算 不count清洗數據,也要花很大比例的時間去各個department溝通,協調數據。
6)統計建模方面,畢竟CS出身的,統計background一般理論不是很深,也不care理論,可能後繼乏力。
7)其他,這個其它裡面可能就包含 我上面提到的,researcher/phd高於 master的skillset。包括
1.follow paper的習慣和儲量,
2.分解問題,主動找potential solution的能力
3.紮實的基本功,特別是理論的,數學方面的。
但是,如果你認真觀看這三條的話,如果你不是phd仍然有機會 增加這三點技能樹
1.follow paper的習慣和儲量,master phd both can enroll research level course which requires you to read paper, replicate and do improvement.
2. 分解問題,主動找potential solution的能力, 如上,課上可以鍛煉
3. 紮實的基本功,特別是理論的,數學方面的。 如果你的本科或者之前的背景,更偏理科,而不是工科的話,其實紮實的基本功你內心是不畏懼的,catch up的話,心裡是不虛的。只是再選選課,review一下而已。
我自己亂說的,不知道,你怎麼理解,看待的?
轉一條馬毅老師的微博:
一周多的「會議季」總算順利結束了。聽完Yann Lecun,Harry Shum和Jitendra Malik的talks,感覺人工智慧目前以及下一步做的都越來越接近自動控制和系統工程領域裡的任務。Error Correction (back prop), Constrained Optimization (resnet), Feedback and Closed-Loop Systems (online/reinforcement learning), Adaptive Optimal Control (deep learning), State Space Models (recurrent networks), Feedforward (unsupervised learning) 等等重要的系統設計概念和方法會在人工智慧領域獲得新生。感覺自己以前的自動控制理論和機器人背景將來會越來越有用武之地。建議目前機器學習的同學多學一些系統理論(尤其是反饋控制和系統辨識);而自動化的同學多學一些機器學習(尤其是data intensive computing的技術)。系統理論及計算平台將是未來智能系統的兩大基石。
說的應該是工業界吧。
公司當然最缺的就是能用機器學習創造出實際價值的人才,簡言之,能給他們賺錢的。
CV目前最成熟,不過問題在於,DL的介入讓CV的門檻降低,原來大量的領域知識在工程上被簡化成了對於幾種常用網路結構的測試和拼湊,入門難度並沒有想像的高,能否長期的製造崗位需求,這個需要觀望。
NLP看起來會有持續的需求,畢竟和互聯網公司的業務貼近,風險和機遇都在於能否重現DL在CV上體現出來對於性能的革命性的提升,如果可以那這個領域就會爆炸,成為新的基礎級別技術;不行那就繼續當昂貴且無用的玩具,吊口氣等著下個泡沫。
最後總結,機器學習只是錦上添花,最後還是要和工程能力匹配才能形成最大價值。
垂直領域模型 + 機器學習.
隨著通用型機器學習技術的普及, 國外各大互聯網公司, 國內BAT的AI, ML平台都已開放.
幾乎80%的高級程序員, 50%的中級程序員, 20%的前端工程師, 都開始學習並能略有使用AI平台.
這種情況下, 很快會帶來低端AI程序員的貶值, 大家又都白學了.
但是, 業務, 永恆的業務.
進入一個行業, 在一個垂直領域, 好好做, 學習該行業的技術知識, 產業現狀, 管理模式, 統計要點, 分析方法, 這些信息, 能保證有地方需要你.
試想; 一個 化工行業, 成本核算 的機器學習人才, 失業的概率小; 緊缺的周期長.
這時, 你想去化工行業, 設備監控, 的機器學習, 轉行也可以.
---- 業務, 帶感的業務!
中國製造需要一群紮實的工匠, 在浮躁的人工智慧泡沫里, 做一個稀缺的人才.
一不小心進了這個坑,就斗膽回答一下。
背景:微博機器學習研發工程師,自認為比較核心,其他人不一定認可,:)
機器學習(包括深度學習,以下提到機器學習自然包含深度學習)最近幾年由於計算能力的大幅度增長(GPU),從以前課本上和實驗室開始走進我們的日常生活,這一波應該主要推動力量還是各大互聯網公司,抓住這個思路,就大概能知道目前和短期內的一個方向。
資本決定前進速度,機器學習必然會被最先投入到各個互聯網公司最賺錢的業務線。國內互聯網經濟收入大體在以下幾個領域:
- 遊戲類
- 電子商務
- 廣告
以上三個大領域共同面臨的問題可能主要有:
- 數據挖掘,從大數據中提取對自己業務線有價值的數據
- 用戶特徵
- 產品自身特徵(比如微博的特徵)
- 環境特徵(熱點變化)
- 數據理解
- 自然語言理解
- 多媒體數據的理解
- 個性化推薦
- 用戶體驗提升
- 廣告插入
- 領域發現
去年開始,也面試了很多候選人,但是總體感覺是這樣的
- 泛計算機方向的同學,對數學,尤其是演算法、模型、優化方法方面比較欠缺
- 數理方向的同學,工程實現能力上略欠火候
最稀缺的,應該是能解決問題的,能夠實現從演算法理解、模型解釋、工程實現三者統一的演算法工程師。
頂尖的,落地的,交叉的:演算法和工程聯合的,雲和端互動的,感知到認知的,軟體和硬體結合的...
NLP 深度學習在一定程度上並不是很適合去解決NLP問題,深層次的語義問題解決了會推動很多領域的進步
推薦閱讀:
※Deep Learning 的專家如此急缺,它難在何處?
※如何看待人工智慧領域的很多專家認為「人工智慧將對人類存亡造成威脅」的觀點?
※如何評價《羅輯思維》第 115 期對謝熊貓君翻譯的關於人工智慧的文章的重新演繹?
※自然語言處理在 2017 年有哪些值得期待的發展?
※「人工智慧」這個詞是不是被計算機科學與技術方向的人濫用了?