0
雷鋒網 AI 研習社按:據 LinkedIn 發布的「全球 AI 領域人才報告」顯示,2011 年深度學習技術爆發,人工智能領域有了飛躍式的發展,但核心人才資源的短缺限制了國內人工智能相關行業的發展速度,尤其是在軟件、算法、機器學習等基礎層領域,有著更加明顯的人才需求缺口。與此同時,為了招攬更多優秀的人才,科技公司給 AI 工程師開出的福利待遇也遠遠高于其他 IT 領域開發者的薪資。
在市場的強烈需求以及高額薪資的雙重誘惑下,不少開發者計劃轉型 AI 開發,投身于 AI 的浪潮中。不過,普通開發者如何基于現有的開發經歷順利過渡到 AI 行業?人工智能開發者如何構建自己的技能體系?未來工業界需要怎樣的人工智能開發人才?這些都是非 AI 領域程序員不得不面對的問題。帶著這些疑問,雷鋒網 AI 研習社采訪了知乎大 V 阿薩姆,他將結合自身的學習與工作經驗為開發者解讀轉型 AI 所要面對的困難和挑戰。
嘉賓簡介:阿薩姆(現知乎 ID 為「微調」),普華永道高級數據科學家,負責統計學習模型開發。有豐富的工業及學術經驗,擅長將理論知識應用于實踐中。曾以第一作者發表過多篇不同領域的學術文章,如人機互動、智能系統等。研究興趣包括異常檢測、集成學習、跨領域機器學習。以筆名“阿薩姆”在知乎上創作了多篇機器學習相關的文章,曾數次被知乎及知乎日報收錄。樂于技術分享,近期正在進行機器學習實踐書籍創作。阿薩姆曾在雷鋒網 AI 慕課學院舉辦主題為「機器學習實踐經驗分享」的公開課,回顧鏈接:http://www.mooc.ai/open/course/375。
以下是 AI 研習社對阿薩姆的采訪:
1. 一個合格的機器學習開發者應該需要怎樣的技能?或者說怎樣的知識體系?
我覺得分為很多方面,和公司的規模有很大關系。如果單從開發角度來看,最基本的要求是需要大致了解各個模型的優缺點,清楚在什么情況下選擇怎樣的模型。
公司有規模大小之分,但對于機器學習工程師這一崗位,很多公司也提出了基本的技能要求。這些基本要求不過分強調深度,但追求廣度,屬于一個“合格”工程師應該掌握的基本技能。簡單概括包括如下幾點:
1. 業務能力
理解問題的痛點,明白如何用機器學習方法看待商業問題;
懂得數據需求,能收集重要的數據和必備的信息;
具備從模型中攫取價值的能力,明白模型的最終目的是產生商業價值。
2. 數據能力
數據整合能力:能夠將不同渠道的數據整合(數據庫、excel、JSON等),合并、去重等;
數據處理能力:缺失值處理(發現與補全)、數據格式轉換、數據壓縮、過采樣欠采樣等;
數據可視化:能夠使用基本的數據可視化工具來分析數據,不管是 R 的 ggplot2 還是 Python 的 Matlibplot,或者 tableau 和 Qlik 等。
3. 模型與算法理解
理解基本的機器學習算法,明白不同場景下的經典解決方案,不迷信算法。(比如小數據集的簡單問題用線性模型就夠了)
具備基本的統計概率知識,知道如何避免數據中的陷阱;
理解經典模型的基本調參,可以解釋分析模型的輸出結果。
4. 編程能力
熟練操作如 Python、R 等語言,知道特定算法的工具包,如 Sklearn;
熟練不同語言下的數據結構,知道如何高效地處理數據,如 pandas。
懂得分布式運算會有所幫助,明白如何在線上部署機器學習模型,也是一個加分項。
詳細信息請參照我的知乎回答:
https://www.zhihu.com/question/63881785/answer/243635446 。
2. 國內外不少巨頭都在打造AI開發者平臺,有的甚至開放了自家的算法供大家參考,對于目前幾個大的AI開發者平臺,工程師們應該怎樣選擇呢?
現在還處于百家爭鳴的階段,一般都是跟著公司/團隊的需求走。更常見的選擇是跟著巨頭走,比如深度學習的話 TensorFlow(雖然被不少用 pytorch 和 caffe 的人詬病)背靠谷歌好乘涼。跟著巨頭走的主要好處在于代碼會持續更新,不會慢慢變得無人維護。其次就是和編程語言有關系,如果用 python 的話,通用機器學習庫基本主要是 sklearn,如果用 java 有 weka。但最重要的是,不要把自己綁定到某一語言或者平臺上,要花時間在編程語言和平臺背后的模型上去。工程師們最好具備的是“T字型技能”,即深入掌握某個語言/平臺,但對其他平臺有粗略的了解。
3. 數據對于 AI 來講非常重要,對于想轉行做 AI 的工程師來講,如何快速掌握大數據相關知識,培養良好的數據思維?
這個問題我就不強答了,因為我對大數據的了解比較有限。有一個值得關注的就是,現階段很多的 ML 模型還用不到大數據,往往數據只有幾個 GB 而已,甚至幾 MB。因此,不要拘泥于大數據知識,如果有條件的話,優先掌握機器學習模型還是比較重要。
同時,工程師也是有分工的,如果有可能掌握更多技能當然最好不過,但時間有限的情況下做到精通機器學習也可以讓你成為不可多得的人才。至于數據思維,機器學習本身學習的就是數據關聯或者特性,把自己當做一個模型,試著培養對數據間關系的敏感度。
4. 您曾經在文章中說過,從廣義角度來說,學術界比較超前,但不會將工業界遠遠甩在身后,而是一套生態系統中的不同環節。對于已經投身于業界并打算轉型 AI 的工程師來講,如何抓住學界最新的研究方向,并將最新的理論應用于自己所在的領域?
雖然這句話聽起來像一句雞湯,但我覺得興趣導向是最重要的。我的工作中遇到了很多欺詐檢測的項目,于是我開始了解相關的知識,從看書拓展到研究相關的論文。在學習和研究了這個方向的知識一年左右,我有了一些對于異常檢測的模型改進思路。最近我們投的論文就是提出了一種新的異常檢測方法,而年初剛被 IEEE Intelligent Systems 接受的另一篇論文也是將工作內容轉化為學術成果的產物。因此,如果能從工作中找到樂趣,以及想解決的問題,那么讀論文、做研究、寫論文是很順理成章的事情。
另外,一開始有新思路的時候我并沒有計劃把這個算法寫成論文,而僅僅是放到了 GitHub 上計劃開源,但很快發現的確比較實用,因此才拓展成了論文。所以,最重要的是多想、多動手,剩下的事情就是水到渠成。當然,前期積累是很重要的,不然難免閉門造車。
另一個要警惕的是不要追逐熱點,每天新發表的論文太多了,還是要以自己的工作領域為主。書籍作為框架,而論文作為突破方向。
5. 特征的選擇會直接影響模型實現的結果,但是很多剛轉入 AI 領域的開發者在學習和訓練中很難選出合適的特征數據集,請問在機器學習中如何選擇特征數據集?特征是否越多越好?
特征不是越多越好,無效特征會對最終模型施加負面影響。有效的選擇特征并不容易,一般來說有兩個方法:
人工選擇+大量的手工特征工程;
利用深度學習等方法抽取有效的數據表示。
展開了說是非常繁復的,可以參考我的文章(https://www.zhihu.com/question/264417928/answer/283087276 )。一般來說,數據量夠的話深度學習自動抽取的特征表示能力更好,小數據集上人工特征工程效果更好。不幸的是,特征工程沒太多竅門,唯手熟爾。
6. 如今機器學習已經延伸至各行各業,變得越來越重要,在這種情況下AI 工程師會面臨什么樣的機會和挑戰?
最大的挑戰來自于工作流程化、模塊平臺化的趨勢。換句話說,入門級機器學習工程師的重要性已經越來越低了,很多自動化平臺實現了半自動調參,比新手工程師的效果還好。有趣的討論可以參看:https://www.zhihu.com/question/265761632/answer/298995665。
至于機會的話,主要來自于各行各業的AI化。不僅僅是互聯網公司需要AI,傳統行業也需要。最適合在傳統行業推行AI的,反而是出身于這些行業的人,是以為機會。
7. 在 AI 熱之前,開發者也用線性回歸等去擬合、預測數據或者是聚類、關聯規則挖掘數據,只不過那時沒有冠以「機器學習」的名號。您覺得現在機器學習浪潮會不會有些虛熱?目前人工智能技術的落地和應用還有哪些困難?
一個 AI 方向的笑話是,“內行都覺得現在的AI模型弱爆了,而外行都覺得現在的AI太強了而擔心毀滅人類”。現在AI的火熱主要取決于數據、算法、算力三方面的共同發展。虛熱肯定是有的,泡沫是不可避免的。但現在即使用邏輯回歸,和以前的方法也有了變化,因為要處理的數據量有了變化。同時算力上升使得更多模型變得可能。可以認為現在的機器學習是以前的應用統計的升級實用版,并融入了更多的計算機科學。
8. 您在知乎上的每個回答和每篇文章都有很多人評贊,您平時是怎樣經營你的知乎號?如何在工作和知乎之間平衡的呢?
我似乎沒有特別經營知乎,也沒有什么特別的訴求。我采用“阿薩姆”筆名的原因就是奔著好玩的目的去的。同時我一般的回答和文章都盡量希望:
嚴肅回答,盡量詳實有料,杜絕抖機靈;
不懂不答,不強答。不回答情感、八卦、政治這類問題;
不隨便點贊,不污染關注者的時間線。
我給大家的建議也是不管有沒有人看,先寫了再說。在合適的時候,會有人發掘到你的文章。其次就是得失心不必太重,社交平臺當個業余樂趣即可。至于平衡工作和知乎的話,我的工作比較清閑,偏研究性質,所以只要有空的時候把最近的思考順道寫出來就好了。
9. 您有沒有計劃開拓微信、微博平臺,或者像數據科學圈網紅「愛可可愛生活」老師那樣做個直播,將AI知識變現呢?
愛可可愛生活老師是我輩楷模,每天關注那么多工作。我暫時還沒有類似的打算,原因如下:
自身能力有限,擔心誤人子弟,還屬于知識積累期。
現在的工作收入尚可,知識變現對我來說反而太奢侈了。當然,時不時的做一些免費分享是很好的。
有很多的研究問題還沒有解決,一直有新的思路冒出來。在靈感枯竭時或許更適合系統的輸出,比如制作一門課程。
一直有朋友想要合作做一個公眾微信號,但我因為時間問題沒敢接。至于微博,我的確接到了新浪工作人員的聯系,我的認證賬號是“阿薩姆談AI”,會時不時的發一些短而精的東西,歡迎關注。就像剛才說的,社交平臺對我而言只是樂趣和生活調劑,不想因為“業績壓力”而負重。同時,我的確和電子工業出版社有合作在準備一本機器學習相關的書籍,但因為一直在趕論文,進展有限,出版時間還需要打個問號。
在我心里一直都是學術第一,別的事情都可以往后排。而且如果一件事情如果無法做好,我一般選擇再積累一段時間,以后再做打算。
10. 對于想轉行做 AI 開發的工程師們,你還有哪些建議給他們?
開個玩笑的話,我想說:“富貴險中求。”但嚴肅的說,我覺得轉行一直有兩個需要特別注意的問題:
不要期望一步到位,盡量尋求中間地帶,也就是你現在行業與AI的交叉點。這樣不僅可以轉行,還可以降低風險,并提高自身價值。
對行業有更深刻的認識,其實中高端的機器學習/深度學習沒有那么大的需求,而入門級的其實薪水也不大誘人。因此要根據自身條件慢一點轉,有可能再拿個相關學位也是很好的選擇。做軟件工程也很好,開發手機app對社會也有貢獻,做網絡安全的前景也很廣闊。CS的子領域不只有AI,還有很多穩妥、待遇好、有意義的方向。
最后想說,這個行業、時代壓力都很大。雖然工作很重要,但個人身體健康、心理健康更加重要。我有不少同行包括我自己,都或多或少有一些健康問題,比如頸椎或者慢性胃病。因此身體真的是本錢,有些事情得過且過即可。祝大家有個好身體吧。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。