萌萌panda我最愛(ài)
成為算法工程師的要求:專業(yè)要求:計(jì)算機(jī)、電子、通信、數(shù)學(xué)等相關(guān)專業(yè);學(xué)歷要求:本科及其以上的學(xué)歷,大多數(shù)是碩士學(xué)歷及其以上;語(yǔ)言要求:英語(yǔ)要求是熟練,基本上能閱讀國(guó)外專業(yè)書(shū)刊;必須掌握計(jì)算機(jī)相關(guān)知識(shí),熟練使用仿真工具M(jìn)ATLAB等,必須會(huì)一門編程語(yǔ)言。目前國(guó)內(nèi)從事算法研究的工程師不少,但是高級(jí)算法工程師卻很少,是一個(gè)非常緊缺的專業(yè)工程師。算法工程師根據(jù)研究領(lǐng)域來(lái)分主要有音頻/視頻算法處理、圖像技術(shù)方面的二維信息算法處理和通信物理層、雷達(dá)信號(hào)處理、生物醫(yī)學(xué)信號(hào)處理等領(lǐng)域的一維信息算法處理。在計(jì)算機(jī)音視頻和圖形圖形圖像技術(shù)等二維信息算法處理方面目前比較先進(jìn)的視頻處理算法:機(jī)器視覺(jué)成為此類算法研究的核心;另外還有2D轉(zhuǎn)3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),運(yùn)動(dòng)估計(jì)運(yùn)動(dòng)補(bǔ)償算法(Motion estimation/Motion Compensation),去噪算法(Noise Reduction),縮放算法(scaling),銳化處理算法(Sharpness),超分辨率算法(Super Resolution),手勢(shì)識(shí)別(gesture recognition),人臉識(shí)別(face recognition)。在通信物理層等一維信息領(lǐng)域目前常用的算法:無(wú)線領(lǐng)域的RRM、RTT,傳送領(lǐng)域的調(diào)制解調(diào)、信道均衡、信號(hào)檢測(cè)、網(wǎng)絡(luò)優(yōu)化、信號(hào)分解等。另外數(shù)據(jù)挖掘、互聯(lián)網(wǎng)搜索算法也成為當(dāng)今的熱門方向。算法工程師逐漸往人工智能方向發(fā)展。
cynthiahql
成為一名合格的開(kāi)發(fā)工程師不是一件簡(jiǎn)單的事情,需要掌握從開(kāi)發(fā)到調(diào)試到優(yōu)化等一系列能力,這些能力中的每一項(xiàng)掌握起來(lái)都需要足夠的努力和經(jīng)驗(yàn)。而要成為一名合格的機(jī)器學(xué)習(xí)算法工程師(以下簡(jiǎn)稱算法工程師)更是難上加難,因?yàn)樵谡莆展こ處煹耐ㄓ眉寄芤酝?,還需要掌握一張不算小的機(jī)器學(xué)習(xí)算法知識(shí)網(wǎng)絡(luò)。
下面我們就將成為一名合格的算法工程師所需的技能進(jìn)行拆分,一起來(lái)看一下究竟需要掌握哪些技能才能算是一名合格的算法工程師。
1.基礎(chǔ)開(kāi)發(fā)能力
所謂算法工程師,首先需要是一名工程師,那么就要掌握所有開(kāi)發(fā)工程師都需要掌握的一些能力。
有些同學(xué)對(duì)于這一點(diǎn)存在一些誤解,認(rèn)為所謂算法工程師就只需要思考和設(shè)計(jì)算法,不用在乎這些算法如何實(shí)現(xiàn),而且會(huì)有人幫你來(lái)實(shí)現(xiàn)你想出來(lái)的算法方案。這種思想是錯(cuò)誤的,在大多數(shù)企業(yè)的大多數(shù)職位中,算法工程師需要負(fù)責(zé)從算法設(shè)計(jì)到算法實(shí)現(xiàn)再到算法上線這一個(gè)全流程的工作。
筆者曾經(jīng)見(jiàn)過(guò)一些企業(yè)實(shí)行過(guò)算法設(shè)計(jì)與算法實(shí)現(xiàn)相分離的組織架構(gòu),但是在這種架構(gòu)下,說(shuō)不清楚誰(shuí)該為算法效果負(fù)責(zé),算法設(shè)計(jì)者和算法開(kāi)發(fā)者都有一肚子的苦水,具體原因不在本文的討論范疇中,但希望大家記住的是,基礎(chǔ)的開(kāi)發(fā)技能是所有算法工程師都需要掌握的。
2.概率和統(tǒng)計(jì)基礎(chǔ)
概率和統(tǒng)計(jì)可以說(shuō)是機(jī)器學(xué)習(xí)領(lǐng)域的基石之一,從某個(gè)角度來(lái)看,機(jī)器學(xué)習(xí)可以看做是建立在概率思維之上的一種對(duì)不確定世界的系統(tǒng)性思考和認(rèn)知方式。學(xué)會(huì)用概率的視角看待問(wèn)題,用概率的語(yǔ)言描述問(wèn)題,是深入理解和熟練運(yùn)用機(jī)器學(xué)習(xí)技術(shù)的最重要基礎(chǔ)之一。
概率論內(nèi)容很多,但都是以具體的一個(gè)個(gè)分布為具體表現(xiàn)載體體現(xiàn)出來(lái)的,所以學(xué)好常用的概率分布及其各種性質(zhì)對(duì)于學(xué)好概率非常重要。
對(duì)于離散數(shù)據(jù),伯努利分布、二項(xiàng)分布、多項(xiàng)分布、Beta分布、狄里克萊分布以及泊松分布都是需要理解掌握的內(nèi)容;
對(duì)于離線數(shù)據(jù),高斯分布和指數(shù)分布族是比較重要的分布。這些分布貫穿著機(jī)器學(xué)習(xí)的各種模型之中,也存在于互聯(lián)網(wǎng)和真實(shí)世界的各種數(shù)據(jù)之中,理解了數(shù)據(jù)的分布,才能知道該對(duì)它們做什么樣的處理。
此外,假設(shè)檢驗(yàn)的相關(guān)理論也需要掌握。在這個(gè)所謂的大數(shù)據(jù)時(shí)代,最能騙人的大概就是數(shù)據(jù)了,掌握了假設(shè)檢驗(yàn)和置信區(qū)間等相關(guān)理論,才能具備分辨數(shù)據(jù)結(jié)論真?zhèn)蔚哪芰?。例如兩組數(shù)據(jù)是否真的存在差異,上線一個(gè)策略之后指標(biāo)是否真的有提升等等。這種問(wèn)題在實(shí)際工作中非常常見(jiàn),不掌握相關(guān)能力的話相當(dāng)于就是大數(shù)據(jù)時(shí)代的睜眼瞎。
在統(tǒng)計(jì)方面,一些常用的參數(shù)估計(jì)方法也需要掌握,典型的如最大似然估計(jì)、最大后驗(yàn)估計(jì)、EM算法等。這些理論和最優(yōu)化理論一樣,都是可以應(yīng)用于所有模型的理論,是基礎(chǔ)中的基礎(chǔ)。
3.機(jī)器學(xué)習(xí)理論
雖然現(xiàn)在開(kāi)箱即用的開(kāi)源工具包越來(lái)越多,但并不意味著算法工程師就可以忽略機(jī)器學(xué)習(xí)基礎(chǔ)理論的學(xué)習(xí)和掌握。這樣做主要有兩方面的意義:
掌握理論才能對(duì)各種工具、技巧靈活應(yīng)用,而不是只會(huì)照搬套用。只有在這個(gè)基礎(chǔ)上才能夠真正具備搭建一套機(jī)器學(xué)習(xí)系統(tǒng)的能力,并對(duì)其進(jìn)行持續(xù)優(yōu)化。否則只能算是機(jī)器學(xué)習(xí)搬磚工人,算不得合格的工程師。出了問(wèn)題也不會(huì)解決,更談不上對(duì)系統(tǒng)做優(yōu)化。
學(xué)習(xí)機(jī)器學(xué)習(xí)的基礎(chǔ)理論的目的不僅僅是學(xué)會(huì)如何構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng),更重要的是,這些基礎(chǔ)理論里面體現(xiàn)的是一套思想和思維模式,其內(nèi)涵包括概率性思維、矩陣化思維、最優(yōu)化思維等多個(gè)子領(lǐng)域,這一套思維模式對(duì)于在當(dāng)今這個(gè)大數(shù)據(jù)時(shí)代做數(shù)據(jù)的處理、分析和建模是非常有幫助的。如果你腦子里沒(méi)有這套思維,面對(duì)大數(shù)據(jù)環(huán)境還在用老一套非概率的、標(biāo)量式的思維去思考問(wèn)題,那么思考的效率和深度都會(huì)非常受限。
機(jī)器學(xué)習(xí)的理論內(nèi)涵和外延非常之廣,絕非一篇文章可以窮盡,所以在這里我列舉了一些比較核心,同時(shí)對(duì)于實(shí)際工作比較有幫助的內(nèi)容進(jìn)行介紹,大家可在掌握了這些基礎(chǔ)內(nèi)容之后,再不斷探索學(xué)習(xí)。
4.開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)工具
掌握了足夠的理論知識(shí),還需要足夠的工具來(lái)將這些理論落地,這部分我們介紹一些常用的語(yǔ)言和工具。
5.架構(gòu)設(shè)計(jì)
最后我們花一些篇幅來(lái)談一下機(jī)器學(xué)習(xí)系統(tǒng)的架構(gòu)設(shè)計(jì)。
所謂機(jī)器學(xué)習(xí)系統(tǒng)的架構(gòu),指的是一套能夠支持機(jī)器學(xué)習(xí)訓(xùn)練、預(yù)測(cè)、服務(wù)穩(wěn)定高效運(yùn)行的整體系統(tǒng)以及他們之間的關(guān)系。
在業(yè)務(wù)規(guī)模和復(fù)雜度發(fā)展到一定程度的時(shí)候,機(jī)器學(xué)習(xí)一定會(huì)走向系統(tǒng)化、平臺(tái)化這個(gè)方向。這個(gè)時(shí)候就需要根據(jù)業(yè)務(wù)特點(diǎn)以及機(jī)器學(xué)習(xí)本身的特點(diǎn)來(lái)設(shè)計(jì)一套整體架構(gòu),這里面包括上游數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)流的架構(gòu)設(shè)計(jì),以及模型訓(xùn)練的架構(gòu),還有線上服務(wù)的架構(gòu)等等。這一套架構(gòu)的學(xué)習(xí)就不像前面的內(nèi)容那么簡(jiǎn)單了,沒(méi)有太多現(xiàn)成教材可以學(xué)習(xí),更多的是在大量實(shí)踐的基礎(chǔ)上進(jìn)行抽象總結(jié),對(duì)當(dāng)前系統(tǒng)不斷進(jìn)行演化和改進(jìn)。但這無(wú)疑是算法工程師職業(yè)道路上最值得為之奮斗的工作。在這里能給的建議就是多實(shí)踐,多總結(jié),多抽象,多迭代。
6.機(jī)器學(xué)習(xí)算法工程師領(lǐng)域現(xiàn)狀
現(xiàn)在可以說(shuō)是機(jī)器學(xué)習(xí)算法工程師最好的時(shí)代,各行各業(yè)對(duì)這類人才的需求都非常旺盛。典型的包括以下一些細(xì)分行業(yè):
推薦系統(tǒng)。推薦系統(tǒng)解決的是海量數(shù)據(jù)場(chǎng)景下信息高效匹配分發(fā)的問(wèn)題,在這個(gè)過(guò)程中,無(wú)論是候選集召回,還是結(jié)果排序,以及用戶畫(huà)像等等方面,機(jī)器學(xué)習(xí)都起著重要的作用。
廣告系統(tǒng)。廣告系統(tǒng)和推薦系統(tǒng)有很多類似的地方,但也有著很顯著的差異,需要在考慮平臺(tái)和用戶之外同時(shí)考慮廣告主的利益,兩方變成了三方,使得一些問(wèn)題變復(fù)雜了很多。它在對(duì)機(jī)器學(xué)習(xí)的利用方面也和推薦類似。
搜索系統(tǒng)。搜索系統(tǒng)的很多基礎(chǔ)建設(shè)和上層排序方面都大量使用了機(jī)器學(xué)習(xí)技術(shù),而且在很多網(wǎng)站和App中,搜索都是非常重要的流量入口,機(jī)器學(xué)習(xí)對(duì)搜索系統(tǒng)的優(yōu)化會(huì)直接影響到整個(gè)網(wǎng)站的效率。
風(fēng)控系統(tǒng)。風(fēng)控,尤其是互聯(lián)網(wǎng)金融風(fēng)控是近年來(lái)興起的機(jī)器學(xué)習(xí)的又一重要戰(zhàn)場(chǎng)。不夸張地說(shuō),運(yùn)用機(jī)器學(xué)習(xí)的能力可以很大程度上決定一家互聯(lián)網(wǎng)金融企業(yè)的風(fēng)控能力,而風(fēng)控能力本身又是這些企業(yè)業(yè)務(wù)保障的核心競(jìng)爭(zhēng)力,這其中的關(guān)系大家可以感受一下。
但是所謂“工資越高,責(zé)任越大”,企業(yè)對(duì)于算法工程師的要求也在逐漸提高。整體來(lái)說(shuō),一名高級(jí)別的算法工程師應(yīng)該能夠處理“數(shù)據(jù)獲取數(shù)據(jù)分析模型訓(xùn)練調(diào)優(yōu)模型上線”這一完整流程,并對(duì)流程中的各種環(huán)節(jié)做不斷優(yōu)化。一名工程師入門時(shí)可能會(huì)從上面流程中的某一個(gè)環(huán)節(jié)做起,不斷擴(kuò)大自己的能力范圍。
除了上面列出的領(lǐng)域以外,還有很多傳統(tǒng)行業(yè)也在不斷挖掘機(jī)器學(xué)習(xí)解決傳統(tǒng)問(wèn)題的能力,行業(yè)的未來(lái)可謂潛力巨大。
牛牛1223
1.算法工程師要求很高的數(shù)學(xué)水平和邏輯思維。其實(shí)語(yǔ)言是次要的,語(yǔ)言只是表達(dá)的方式而已。2 你想成為算法工程師還需要一定的英文水準(zhǔn),因?yàn)榭粗形臅?shū)你完全體會(huì)不到原滋味。3 不要太拘泥于教材。
妞妞love美麗
需要以下技能:1、熟練掌握C/C++和python語(yǔ)言編程,熟悉linux開(kāi)發(fā)環(huán)境,有扎實(shí)的數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)功底;2、熟悉推薦業(yè)務(wù)常用理論和算法,在多個(gè)領(lǐng)域(如排序模型,召回模型,用戶畫(huà)像,深度學(xué)習(xí)等)有三年以上實(shí)際工作經(jīng)驗(yàn);3、有優(yōu)秀的邏輯思維能力和數(shù)據(jù)分析能力,善于分析和解決問(wèn)題;良好的溝通能力與團(tuán)隊(duì)協(xié)作能力;4、有推薦系統(tǒng),廣告系統(tǒng),搜索引擎等開(kāi)發(fā)經(jīng)驗(yàn);熟練掌握機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的基礎(chǔ)理論和方法,并在自然語(yǔ)言處理任務(wù)中有實(shí)際應(yīng)用經(jīng)驗(yàn)者優(yōu)先;5、熟練使用一種或幾種深度學(xué)習(xí)框架(如tensorflow、caffe、mxnet、pytorch等),或者熟悉spark、hadoop分布式計(jì)算編程者優(yōu)先。硬技能:1. 數(shù)學(xué):包括概率論與數(shù)理統(tǒng)計(jì)、矩陣論、隨機(jī)過(guò)程。2. 計(jì)算機(jī)基礎(chǔ):包括操作系統(tǒng)、組成原理、數(shù)據(jù)結(jié)構(gòu)。3. 算法能力:包括對(duì)領(lǐng)域內(nèi)主流模型進(jìn)行優(yōu)缺點(diǎn)對(duì)比、在設(shè)定的場(chǎng)景中選擇合適的方案等。想要了解更多關(guān)于算法工程師的問(wèn)題可以咨詢一下CDA認(rèn)證機(jī)構(gòu),CDA是大數(shù)據(jù)和人工智能時(shí)代面向國(guó)際范圍全行業(yè)的數(shù)據(jù)分析專業(yè)人才職業(yè)簡(jiǎn)稱。全球CDA持證者秉承著先進(jìn)商業(yè)數(shù)據(jù)分析的新理念,遵循著《CDA職業(yè)道德和行為準(zhǔn)則》新規(guī)范,發(fā)揮著自身數(shù)據(jù)專業(yè)能力,推動(dòng)科技創(chuàng)新進(jìn)步,助力經(jīng)濟(jì)持續(xù)發(fā)展。
喵喵咪兒
BAT企業(yè)的算法工程師是這樣工作的:?jiǎn)栴}抽象、數(shù)據(jù)采集和處理、特征工程、建模訓(xùn)練調(diào)優(yōu)、模型評(píng)估、上線部署。(具體操作可以看阿里算法專家chris老師的算法工作流視頻算法工作流是怎樣的?)而一個(gè)算法工程師真正值錢的地方在于問(wèn)題抽象和上線部署這兩個(gè)。
以上是一個(gè)算法工程師的工作流,所以你要做以上內(nèi)容的話,需要的技能和知識(shí)有以下這些:
①機(jī)?學(xué)習(xí)的基礎(chǔ)是數(shù)學(xué),入門AI必須掌握一些必要的數(shù)學(xué)基礎(chǔ),但是并不是全部的數(shù)學(xué)知識(shí)都要學(xué),只學(xué)工作上實(shí)際有用到的,比如是微積分、概率論、線性代數(shù)、凸優(yōu)化等這些。
②數(shù)據(jù)分析里需要應(yīng)用到的內(nèi)容也需要掌握,但不是網(wǎng)上所說(shuō)的從0開(kāi)始幫你做數(shù)據(jù)分析的那種,而是數(shù)據(jù)挖掘或者說(shuō)是數(shù)據(jù)科學(xué)領(lǐng)域相關(guān)的東西,比如要知道計(jì)算機(jī)里面怎么挖掘數(shù)據(jù)、相關(guān)的數(shù)據(jù)挖掘工具等等
補(bǔ)足了以上數(shù)學(xué)和數(shù)據(jù)挖掘基本知識(shí),才可以正式進(jìn)行機(jī)器學(xué)習(xí)算法原理的學(xué)習(xí)。
③算法方面需要掌握一些基本的框架:python、spark、mllib、scikit-learning、pytorch、TensorFlow,數(shù)據(jù)方面需要懂得HQL、numpy、pandas,如果你本身是后臺(tái)開(kāi)發(fā)、app開(kāi)發(fā)、數(shù)據(jù)分析、項(xiàng)目管理,則是一個(gè)學(xué)習(xí)算法的一個(gè)加分項(xiàng)。
④最后需要對(duì)人工智能有全局的認(rèn)知,所以菜鳥(niǎo)窩的機(jī)器學(xué)習(xí)vip大課會(huì)講授到算法理論,包括機(jī)器學(xué)習(xí)、深度學(xué)習(xí)兩大模塊,相關(guān)的算法原理、推導(dǎo)和應(yīng)用的掌握,以及最重要算法思想。
老貓啊老貓
工作好找。待遇不錯(cuò)??赡苣隳茏鍪裁茨??你能幫公司盈利嗎?我不管你學(xué)的好與不好。也不管你喜歡什么。只要你能給公司盈利,你就能拿高工資。就拿馬云來(lái)說(shuō)。他也就是一個(gè)大學(xué)畢業(yè),現(xiàn)在呢?現(xiàn)在他的工資恐怕很多人都比不上吧?學(xué)歷什么都代表不了。你所能創(chuàng)造的利益,利益,才是王道。
優(yōu)質(zhì)工程師考試問(wèn)答知識(shí)庫(kù)