目前,各行業(yè)都在嘗試著用機(jī)器學(xué)習(xí)/深度學(xué)習(xí)來(lái)解決自身行業(yè)的需求。在這個(gè)過(guò)程中,最為稀缺的也是高質(zhì)量人工智能人才。 這一年我們見(jiàn)證了不斷有非計(jì)算機(jī)專業(yè)學(xué)生轉(zhuǎn)行人工智能的現(xiàn)象,每個(gè)想轉(zhuǎn)行人工智能算法崗的同學(xué)或多或少都有著類(lèi)似的原因:人工智能領(lǐng)域的火熱需求和高于其他行業(yè)的薪資水準(zhǔn)。那么,非計(jì)算機(jī)專業(yè)如何轉(zhuǎn)行人工智能,并找到算法 offer?
以下為作者 Nick-Atom 在知乎上的回答,希望對(duì)你有所啟發(fā):
作為轉(zhuǎn)專業(yè)算法黨,分享些經(jīng)驗(yàn)吧。開(kāi)門(mén)見(jiàn)山,轉(zhuǎn)專業(yè)和本專業(yè)沒(méi)什么區(qū)別,該學(xué)的還得學(xué),只有學(xué)的好與差的區(qū)別。好處是,只要你想學(xué)(并且英文好),超一流的學(xué)習(xí)資料滿天飛。
首先說(shuō)幾個(gè)非常非常非常重要的原則(我認(rèn)為這幾個(gè)原則要比具體的方法論重要):
1、算法工程師也是軟件工程師,編程基礎(chǔ)要求很高(只是在架構(gòu)和系統(tǒng)這塊不做高要求)
基本上,你要花三分之一的時(shí)間處理數(shù)據(jù),三分之一的時(shí)間修改線下線上代碼以適配你的算法,三分之一的時(shí)間調(diào)試模型。
前兩者都需要進(jìn)行大量的代碼閱讀和自己 coding。
指望跑跑模型,調(diào)調(diào)參數(shù)不需要碼代碼是不可能的,除非你面的是科學(xué)家崗,但轉(zhuǎn)行的科學(xué)家崗基本不現(xiàn)實(shí)吧。
2、80% 的算法優(yōu)化來(lái)自與對(duì)業(yè)務(wù)架構(gòu)的理解
這一點(diǎn)有點(diǎn)反直覺(jué)了。
很多人以為算法工程師的工作就是把從論文和公開(kāi)課里學(xué)到的 fancy 的算法用到業(yè)務(wù)里。這個(gè)基本上就是大錯(cuò)特錯(cuò)了。首先,絕大多數(shù)的先進(jìn)算法只是相對(duì)于 baseline 算法有了一點(diǎn)點(diǎn)小的提升,這對(duì)于做科研是有意義的,畢竟積少成多。但是在工程中,這些算法的性價(jià)比是極低的,收益不大,卻要大幅度調(diào)整系統(tǒng),增加系統(tǒng)復(fù)雜度,得不償失。
所以除非是非常顛覆性的想法,大幅度提升性能,像是 DNN,ResNet,Word2Vec,Bert,Seq2Seq 這樣的模型算法,才會(huì)在業(yè)界廣泛的應(yīng)用。
那么更多時(shí)候,算法工程師的工作是結(jié)合業(yè)務(wù),用上述提到的這些基本的模型去優(yōu)化業(yè)務(wù)流。比如,在廣告領(lǐng)域,原來(lái)要求完全匹配用戶的搜索詞,我可不可以用 Seq2Seq 模型改寫(xiě)出幾個(gè)類(lèi)似的搜索詞?或者,原來(lái)都是 Counting Feature,我可不可以用 DNN Embedding 來(lái)做一些離散 Feature?
換句話說(shuō),模型都是最基本的模型,但是怎么結(jié)合業(yè)務(wù),選對(duì)模型,用對(duì)地方,才是真正考驗(yàn)算法工程師能力的地方。而要充分理解業(yè)務(wù)架構(gòu),并且能夠在復(fù)雜的業(yè)務(wù)代碼中自由的翱翔,你的工程能力一定不能差。
3、優(yōu)秀的算法工程師都有很好的科研 sense
我個(gè)人覺(jué)得這一點(diǎn)被很多人忽略了。但其實(shí)這個(gè)非常重要。算法工程師和后臺(tái)/架構(gòu)工程師的一個(gè)很大區(qū)別在于算法工程師還是有一定的研究性質(zhì)的。換句話說(shuō),無(wú)論是上線一個(gè)業(yè)務(wù)還是開(kāi)發(fā)一個(gè)中間件,后臺(tái)工程師要解決的問(wèn)題比較明確(你不做還有產(chǎn)品***你做~~),結(jié)果也比較好度量(能不能用,性能如何)。
但算法工程師需要自己去找可以優(yōu)化的地方,且結(jié)果往往難以預(yù)測(cè),有些工作的結(jié)果甚至難以可靠度量。這就需要你有好的科研 sense,能夠發(fā)現(xiàn)值得解決且能夠解決問(wèn)題,設(shè)計(jì)合適的解決問(wèn)題的方案及科學(xué)的結(jié)果度量方法,充分的實(shí)驗(yàn)和論證,最后可靠的上線。
簡(jiǎn)而言之,你要自己找活干,找對(duì)活是成功的 80%,活沒(méi)找對(duì)半年一年沒(méi)成果的時(shí)候壓力也是很大的。
除此之外,其他能力還包括:
1、英文
這個(gè)不用多說(shuō)了。讀論文看視頻是少不了的,英文不行的話真的是,很累。
2、數(shù)學(xué)和機(jī)器學(xué)習(xí)理論
這一點(diǎn)我和一些高票意見(jiàn)不太一致,我覺(jué)得如果你理論能力很強(qiáng),當(dāng)然是錦上添花的事。但這不是必須的。能講清楚 LR 和 DNN,會(huì)推反向傳播和交叉熵,有一些項(xiàng)目經(jīng)驗(yàn)(對(duì)項(xiàng)目中用到的算法有深刻的理解),對(duì)于入門(mén)級(jí)算法工程師來(lái)說(shuō)足夠了。對(duì)于比較資深的算法工程師,也不要求對(duì)每個(gè)算法都理解的深刻,項(xiàng)目經(jīng)驗(yàn)豐富些,基礎(chǔ)扎實(shí)也夠了。
畢竟學(xué)習(xí)幾個(gè)新算法,對(duì)于編程和算法基礎(chǔ)扎實(shí)的同學(xué)來(lái)講,實(shí)在是最輕松的事了。
理解了上述這幾點(diǎn),準(zhǔn)備起來(lái)自然也比較簡(jiǎn)單了。
1、扎實(shí)的編程基礎(chǔ)
C++/Java + Python + 算法數(shù)據(jù)結(jié)構(gòu)。老三樣跑不掉的,而且要求只會(huì)高不會(huì)低。手寫(xiě)算法練起來(lái)吧。
2、機(jī)器學(xué)習(xí)基礎(chǔ)
不要求多求深,去試圖掌握一些很 fancy 的算法和模型。好好去理解最基礎(chǔ)的 LR/CNN/DNN, 理解正則化,交叉熵,反向傳播,normalization 等等等等這些最基礎(chǔ)的概念,一定要理解的透徹。最好就是把這幾個(gè)模型自己實(shí)現(xiàn)一遍,尤其是 BP.3,工程能力和項(xiàng)目經(jīng)驗(yàn)接觸過(guò)大型的工程項(xiàng)目,無(wú)論是開(kāi)發(fā)還是算法,都是非常重要的經(jīng)驗(yàn)。工程能力確實(shí)會(huì)讓你空有想法,難以發(fā)揮,戴著鐐銬跳舞。如果實(shí)在沒(méi)什么項(xiàng)目經(jīng)驗(yàn),可以考慮做一些比賽。但比賽用到的環(huán)境實(shí)在是太理想化了,導(dǎo)致價(jià)值實(shí)在有限,基本上我們找新人是不看比賽的(除非大賽成績(jī)特別好)。總結(jié)來(lái)說(shuō),大型項(xiàng)目的工程經(jīng)驗(yàn)(哪怕與算法無(wú)關(guān))也要好于比賽經(jīng)驗(yàn)。
3、論文
一流論文大殺四方,灌水論文沒(méi)什么價(jià)值,發(fā)論文是實(shí)習(xí)生的工作,full-time 是要給公司賺錢(qián)的,不要心存僥幸,大清已經(jīng)亡了。如果沒(méi)有什么厲害的成果,而你又志在 industry,不要浪費(fèi)時(shí)間灌水了,好好準(zhǔn)備面試。
4、聰明 or 優(yōu)秀的科研 sense
這一點(diǎn)其實(shí)非常非常重要,只是大家的考察方法五花八門(mén),實(shí)在難以總結(jié)。在我司,不聰明是我們拒人的第二理由。僅次于編程基礎(chǔ)差。至于什么樣的人算聰明的話見(jiàn)仁見(jiàn)智,我個(gè)人的話,數(shù)學(xué)好的人特別是概率,或者是講項(xiàng)目的時(shí)候能夠感受到非常好的科研 sense 的人,我會(huì)覺(jué)得是聰明的人。
最后幾句話送給轉(zhuǎn)行的各位,既然認(rèn)定了要走工程師這條路(不論算法還是工程),就一定要拿自己和專業(yè)的人去比較,付出更多的努力去趕超。不要奢望這個(gè)行業(yè)有什么不需要計(jì)算機(jī)基礎(chǔ)的特別適合轉(zhuǎn)行的同學(xué)的神奇崗位,真正好的崗位,你的競(jìng)爭(zhēng)對(duì)手就是計(jì)算機(jī)專業(yè)同學(xué),評(píng)價(jià)的指標(biāo)也就是計(jì)算機(jī)專業(yè)指標(biāo),你的專業(yè)所學(xué)基本不做考量,不要心存僥幸,好好加油吧。
-
算法
+關(guān)注
關(guān)注
23文章
4705瀏覽量
95073 -
人工智能
+關(guān)注
關(guān)注
1805文章
48898瀏覽量
247847 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8499瀏覽量
134315
原文標(biāo)題:非計(jì)算機(jī)專業(yè)如何轉(zhuǎn)行AI,找到算法offer?
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論