[转人工智能工程师学习路线及具备的5项基本技能
原文地址:http://blog.csdn.net/BaiHuaXiu123/article/details/52478853
?
摘要
學習路線
你是否對機器學習充滿興趣呢?其實到目前為止,每天有越來越多的工程師開始將好奇的目光轉向機器學習領域。實際上,你會發(fā)現(xiàn)現(xiàn)在沒有哪一個領域比機器學習能引起更多的曝光率和關注度。機器學習已經(jīng)以一種高調(diào)姿態(tài)闖入廣大民眾的意識當中,無論是采用機器學習等相關技術的Google AlphaGo以5局4勝的戰(zhàn)績打敗人類世界的圍棋冠軍,還是采用了機器學習技術的Twitter能夠鑒定是否你在酩酊大醉的時候發(fā)布了推文,無論你通過怎樣的方式發(fā)現(xiàn)并知道機器學習技術的存在,有一件事不言而喻:機器學習的時代已經(jīng)到來。?
盡管機器學習技術看起來這般神器,但是對于機器學習技術的好奇心是一碼事兒,而想要讓該技術在相關產(chǎn)業(yè)當中發(fā)揮作用實際上又是另外一碼事兒。這篇文章將會幫助你了解作為一名機器學習工程師具備怎樣的思維方式以及需要什么樣的專業(yè)技能才可以開展工作。?
如果你正在考慮投身機器學習工程師的職業(yè)生涯,那么在一開始的時候,你必須弄清楚兩件非常重要的事情。首先,機器學習工程師的崗位并不是一個“純粹的”學術角色,你不需要具備科學研究經(jīng)驗或者專業(yè)的學術教育背景。其次,如果你僅僅具備軟件工程師的能力或者僅僅具備數(shù)據(jù)科學的經(jīng)驗還遠無法成為一名合格的機器學習工程師,除非你同時掌握以上兩方面的技術經(jīng)驗。
數(shù)據(jù)分析 Vs. 機器學習工程師
如果想成為一名機器學習工程師,那么你必須弄清楚前者和數(shù)據(jù)分析師之間的區(qū)別,而且這非常重要。簡單來講,兩者之間最為關鍵的區(qū)別就是他們最終的目標大相徑庭。作為一位數(shù)據(jù)分析師,你的主要職責就是分析數(shù)據(jù),并從這些抽象的數(shù)據(jù)當中提煉出具體的能讓大家明白的故事,并從中產(chǎn)生具有可行性的洞察。數(shù)據(jù)分析工作的重點就是向公眾傳播并展示圖表、模型已經(jīng)可視化效果。數(shù)據(jù)的分析和展示由人類執(zhí)行,并且其他人會根據(jù)你展示的數(shù)據(jù)做出商業(yè)決策。尤其是這一點必須引起你足夠的重視——你數(shù)據(jù)分析后產(chǎn)生的結果的“受眾”是人。但是從機器學習工程師的角度來看的話,他們最終輸出的結果是一種可以工作的軟件(而不是你一路以來創(chuàng)建的分析結果或者可視化圖形),并且你所輸出結果的“受眾”通常由其他軟件插件組成,只需很少在少量人力勞動的監(jiān)護下這些軟件插件就可以自行運轉。軟件的智能性意味著可行性,但是在機器學習模型中,決策的制定由系統(tǒng)來決定,并且系統(tǒng)可以影響產(chǎn)品或者服務的行為方式。這就是軟件工程技術為什么對機器學習工程師而言如此重要。?
Understanding The Ecosystem——弄懂軟件的生態(tài)系統(tǒng)
在你開始著手學習具體技能之前,我還要再向大家闡明另外一個概念。成為一名機器學習工程師必須要求你自己能夠清楚地了解你所設計的整個軟件系統(tǒng)。?
讓我們打個比方,如果你正在為一個連鎖店項目工作,并且公司需要根據(jù)客戶以往的購買歷史開始有針對性的發(fā)放優(yōu)惠券,目的是想生成能夠讓消費者可以實際使用的優(yōu)惠券。在數(shù)據(jù)分析模型當中,你可以收集消費者的采購數(shù)據(jù),對這些數(shù)據(jù)分析之后可以觀察出消費者的采購行為趨勢,并據(jù)此提出響應的策略。機器學習的方法是編寫一個可以自動生成優(yōu)惠券的系統(tǒng)。但是學習采取什么方式才能編寫出這樣一種系統(tǒng)呢?這種方式奏效嗎?你不得不去通盤了解項目開發(fā)所處的生態(tài)系統(tǒng)——包括商品庫存、商品類目、價格、采購訂單、銷售點終端軟件、CRM管理系統(tǒng)等等。?
歸根結底,項目的處理流程和機器學習算法的理解關系不大,或者和應用他們的方式和時間也沒有太多關系,但是卻需要你能夠對系統(tǒng)的相互關聯(lián)性有很深入的了解,并需要你可以成功編寫一個具有高度集成和接口功能的軟件。請切記,機器學習輸出的結果實際上是一個可以有效運行的軟件!?
現(xiàn)在,就讓我們開始了解成為一名機器學習工程師所需要注意的各種細節(jié)方面的事宜。我們會把這些信息分成兩個基本點進行闡述:技能簡介以及語言和庫。首先我們將從技能介紹開始,在日后的內(nèi)容中我們將介紹機器學習的語言和庫。
技能簡介
1. Computer Science Fundamentals and Programming
計算機科學基礎和編程
對機器學習工程師而言,計算機科學基礎的重要性包括數(shù)據(jù)結構(數(shù)據(jù)堆棧、隊列、多位數(shù)組、樹形以及圖像等等)、算法(搜索、分類、優(yōu)化、動態(tài)編程等)、科計算性與復雜性(P對NP、NP完全問題、大O符號以及近似算法等)和計算機架構(存儲、緩存、帶寬、死鎖和分布式處理等等)。?
當你在編程的時候必須能夠對以上提到的這些基礎知識進行應用、執(zhí)行、修改或者處理。課后練習、編碼競賽還有黑客馬拉松比賽都是你不可或缺的磨練技能的絕佳途徑。?
2. Probability and Statistics
概率論和數(shù)理統(tǒng)計
概率的形式表征(條件概率、貝葉斯法則、可能性、獨立性等)和從其中衍生出的技術(貝葉斯網(wǎng)、馬爾科夫決策過程、隱藏式馬可夫模型等)是機器學習算法的核心,這些理論可以用來處理現(xiàn)實世界中存在的不確定性問題。和這個領域密切相關的還有統(tǒng)計學,這個學科提供了很多種衡量指標(平均值、中間值、方差等)、分布(均勻分布、正態(tài)分布、二項式分布、泊松分布等)和分析方法(ANOVA、假設實驗等),這些理論對于觀測數(shù)據(jù)模型的建立和驗證非常必要。很多機器學習算法的統(tǒng)計建模程序都是可以擴展的。
3. Data Modeling and Evaluation
數(shù)據(jù)建模及評估
數(shù)據(jù)建模就是對一個給定的數(shù)據(jù)庫的基本結構進行評估的過程,目的就是發(fā)現(xiàn)其中所蘊含的有用模式(相互關系,聚合關系、特征矢量等)和/或者預測以前案例(分類,回歸、異常檢測等)的特征。評估過程的關鍵就是不斷地對所給模型的優(yōu)良性能進行評價。根據(jù)手中的任務,你需要選取一種恰當?shù)木珳?誤差衡量指標(比如日志分類的損失、線性回歸的誤差平方和等等)和求值策略(培訓測試、連續(xù)Vs. 隨機交叉驗證等)。通過對算法的反復學習,我們可以發(fā)現(xiàn)其中會存在很多誤差,而我們可以根據(jù)這些誤差對模型(比如神經(jīng)網(wǎng)絡的反相傳播算法)進行細微的調(diào)整,因此即使你想能夠運用最基本的標準算法,也需要你對這些測量指標有所了解。?
4. Applying Machine Learning Algorithms and Libraries
應用機器學習算法和庫
盡管通過程式庫/軟件包/API(比如scikit-learn,Theano, Spark MLlib, H2O, TensorFlow等)可以廣泛地實現(xiàn)機器學習算法的標準化執(zhí)行,但是算法的應用還包括選取合適的模型(決策、樹形結構、最近鄰點、神經(jīng)網(wǎng)絡、支持向量機器、多模型集成等)、適用于數(shù)據(jù)的學習程序(線性回歸、梯度下降法、基因遺傳算法、袋翻法、模型特定性方法等),同時還需要你能夠了解超參數(shù)對學習產(chǎn)生影響的方式。你也需要注意不同方式之間存在的優(yōu)勢和劣勢,以及那些可能會讓你受牽絆的大量陷阱(偏差和方差、高擬合度與低擬合度、數(shù)據(jù)缺失、數(shù)據(jù)丟失等)。對于數(shù)據(jù)科學和機器學習所帶來的這些方面的挑戰(zhàn),大家可以去Kaggle網(wǎng)站獲取很多學習參考,你可發(fā)現(xiàn)不同的問題當中存在的細微差別,從而可以讓你更好的掌握機器學習的算法。
5. Software Engineering and System Design
軟件工程和系統(tǒng)設計
在每天工作結束的時候,機器學習工程師通常產(chǎn)生的成果或者應交付的產(chǎn)品就是一種軟件。這種軟件其實也是一種小型插件,它可以適用于相對更大型的產(chǎn)品或者服務的生態(tài)系統(tǒng)。你需要很好地掌握如何才能讓這些彼此不同的小插件協(xié)同工作,并與彼此進行流暢的溝通(使用庫函數(shù)調(diào)用、數(shù)據(jù)接口、數(shù)據(jù)庫查詢等)的方法,為了讓其他的插件可以依附你的插件進行很好的工作,你也得需要為你的差價建立合適的接口。精心設計的系統(tǒng)可以避免以后可能出現(xiàn)的瓶頸問題,并讓你的算法系統(tǒng)滿足數(shù)據(jù)量激增時候的擴展性能。軟件工程的最佳的實踐經(jīng)驗(需求分析、系統(tǒng)設計、模塊化、版本控制、測試以及歸檔等)對于產(chǎn)能、協(xié)作、質(zhì)量和可維護性而言是不可獲取的無價之寶。
Machine Learning Job Roles——機器學習的工作角色
由于現(xiàn)在越來越多的公司開始嘗試采用新興技術為自己挖掘更多的利潤,于是和機器學習相關的崗位需求也在不斷的增加。下面這幅圖片為大家展示了和數(shù)據(jù)分析師相比,對于一名典型的機器學習工程師而言,相對重要的核心技能包含以下內(nèi)容:?
The Future of Machine Learning——機器學技術的發(fā)展展望
機器學習工程師最讓人欲罷不能的特征或許就是這個崗位角色擁有看起來無所不能的廣泛適應性。包括教育行業(yè)、計算機科學還有更多領域在內(nèi)的很多行業(yè)已經(jīng)受到了機器學習的積極影響。實際上你會發(fā)現(xiàn)沒有哪個領域不會應用機器學習技術。對于某些行業(yè)案例而言,他們對機器學習技術有極其迫切的需求。健康醫(yī)療產(chǎn)業(yè)就是一個顯而易見的例子。機器學習技術已經(jīng)在健康醫(yī)療長夜中的很多重要領域得到了廣泛的應用,無論是致力于減少護理差異,還是醫(yī)學掃描分析,機器學習技術正在潛移默化地為這些領域帶來改變。來自紐約大學的數(shù)學科學克朗學院和數(shù)據(jù)科學中心的助理教授David Sontag先生最近發(fā)表了關于機器學習技術和健康醫(yī)療系統(tǒng)的演講,在演講中他討論了機器學習是如何通過自己的潛力改變了整個醫(yī)療產(chǎn)業(yè)。?
毫無疑問,這個世界正在發(fā)生著快速和戲劇性的轉變。對于機器學習工程師的需求正在呈現(xiàn)指數(shù)型的增長趨勢。世間充滿了復雜的挑戰(zhàn),并因此需要更加復雜的系統(tǒng)才可以將這些挑戰(zhàn)迎刃而解。而機器學習工程師們就是可以建造這些系統(tǒng)的最佳人選。如果你的未來需要借助機器學習技術獲得更好的發(fā)展,那么此時此刻就是你邁出腳步掌握相關技能并開發(fā)你思維的最佳時機!?
轉載于:https://www.cnblogs.com/Crysaty/p/6160987.html
總結
以上是生活随笔為你收集整理的[转人工智能工程师学习路线及具备的5项基本技能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于类的命令行notebook的实现
- 下一篇: SHELL编程(一)---------h