<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最差的算法工程師能差到什么程度?

          共 5201字,需瀏覽 11分鐘

           ·

          2020-10-12 20:35

          點擊上方小白學(xué)視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達


          編輯:Amusi(CVer)?|? 來源:知乎

          https://www.zhihu.com/question/347545092

          本文僅作為學(xué)術(shù)分享,如果侵權(quán),會刪文處理


          你見過最差的算法工程師能差到什么程度?


          作者:Guosheng Hu
          https://www.zhihu.com/question/347545092/answer/934820526


          真事。


          這周面試了一個候選人,面CV/DL/AI的TechLead。簡歷很牛逼,做過很多CV的工業(yè)項目,涵蓋detection, OCR, face recognition, fire/smoke detection等好多項目. 給我們講了45分鐘做得項目,講得很自信。我挑了一個大項目,我說你在這個項目中的貢獻是什么?他說整個項目的所有算法部分都是他實現(xiàn)的。


          OK,我開始進行深度學(xué)習(xí)的技術(shù)面。


          我先問了兩個深度學(xué)習(xí)的中等難度的問題,他都說不知道。有點冷場,那我趕緊問點簡單的吧。我說,深度學(xué)習(xí)網(wǎng)絡(luò),進行分類時有哪些loss?他猶豫了一下,回答: relu.

          瞬間把見過大場面的我還有同事都震住了。



          作者:王喆
          https://www.zhihu.com/question/347545092/answer/864222675


          我們組一個年輕的印度小哥,UCSD畢業(yè)的,按說教育背景也不錯,寫model serving過程中的一步。每個request開20個線程計算。


          我說你一個m*n復(fù)雜度的過程,m和n還都小于100,有必要開20個線程計算嗎?你那線程開銷絕對比并行計算收益大多了好嗎。不聽,給我說(大概意思):


          并行計算比較cool,老老實實寫那個過程太boring


          行吧,不聽不聽吧,自己折騰去吧。


          過兩天給我說load test的時候server的latency翻倍,我一看線程數(shù)都超過JVM上限了能不翻倍嗎。


          講這個倒不是想取笑這小哥,而是跟大家討論一個問題,就是什么是比“技術(shù)上最差”更糟糕的情況。


          如果你只是基礎(chǔ)差,但總體上是一個嚴謹?shù)娜?,其實到不那么麻煩,就是按部就班的學(xué)習(xí),按部就班的積攢工程經(jīng)驗,無論是哪個領(lǐng)導(dǎo)還是老同事應(yīng)該都是樂于幫助這樣的年輕人的,因為總體來說你還是在解決問題,哪怕速度慢一點,你總歸在成長,而且是讓系統(tǒng)整體混亂程度降低的。


          最差的算法工程師其實是什么呢?是自己對技術(shù)的感覺很差,但對自己的感覺挺好,試圖用一些比較fancy的手段解決問題,但實質(zhì)上引入了更高的系統(tǒng)復(fù)雜度,增加了系統(tǒng)潛在風(fēng)險,這樣的人,其實對整個團隊是負能量的存在,始終需要更senior的人幫著擦屁股,這無形增加了整個團隊的工作量,這就是最差的算法工程師。


          我特別喜歡的一句話是:


          “不帶評論的觀察是人類智慧的最高境界”


          希望剛?cè)胄械乃惴ㄍ聜兡軌蛑肋@句話的意義,其實公司不急于讓每個人都發(fā)表意見,在自己技術(shù)能力不那么足的時候,不帶評論,不帶主觀情緒的去學(xué)習(xí)一段時間,好好思考一下別人為什么要做出這樣的技術(shù)決策,好好積攢一下自己的技術(shù)感覺,這是最重要的。相信度過最初的積累階段之后,你能夠為團隊做出,為整個系統(tǒng)做出“熵減”的技術(shù)決策。



          作者:胡津銘
          https://www.zhihu.com/question/347545092/answer/1212688723


          先歪個題,從反面回答一下,我碰到什么樣的算法工程師會認為他/她是優(yōu)秀甚至是卓越的大佬,并選擇緊緊抱住大腿不松手。之前與@熊風(fēng)學(xué)長還有很多來自不同公司的前輩們討論過這個問題,本文很多觀點也是來源于他們,這里也感謝大家的指點??偟脕碚f,以下幾個特點是我特別留意的,如果碰到了我就會認為這位很厲害:


          1. 基礎(chǔ)非常扎實。問他/她一些比較經(jīng)典的算法,能夠很清晰地說出算法的特點、適用的場景、坑點、里面的細節(jié)等等。

          2. 工程能力很強。我是一位“工程狗”,自己的工程能力很菜,但對工程能力強的同學(xué)非常崇拜 Orz 如果碰到一位算法工程師的工程能力很強,僅憑這一點,我就認為他/她基本上一定是大佬Orz

          3. 重視代碼的測試。算法崗的工作并不完全就是調(diào)參煉丹,往往也是需要去寫一些代碼的,例如寫些spark/sql代碼獲得特征,寫模型等等。既然是寫代碼,就可以而且應(yīng)該在其中加上測試。實際上,根據(jù)我的經(jīng)驗,如果碰到某個其他地方好用的模型在自己的場景下效果很差(不reasonable得差),那很可能是數(shù)據(jù)、特征的處理代碼有問題,或者模型的代碼有問題。這種問題可以用單元測試(斷言等)來提前發(fā)現(xiàn),也可以用一些sanity check來發(fā)現(xiàn)。

          4. 對場景業(yè)務(wù)的認識很深刻。軟件工程沒有銀彈,機器學(xué)習(xí)也沒有銀彈。用什么樣的特征、什么樣的預(yù)估目標、什么樣的評價指標、甚至什么樣的模型,這些東西都是要與場景業(yè)務(wù)結(jié)合的。換言之,工業(yè)屆里,業(yè)務(wù)先于技術(shù)。很多大神在這個方面做得尤其出色。

          5. 在實際場景中,注重先把整個pipeline搭建起來。個人認為,這一點在實際應(yīng)用中往往應(yīng)該是最優(yōu)先的。搭建起來之后,機器學(xué)習(xí)系統(tǒng)的上下游也都可以工作,也可以更好地判斷系統(tǒng)的瓶頸所在,把好剛用在刀刃上。這其實就與做開發(fā)的程序設(shè)計一樣,較早地抽象出比較好的接口、搭建一個系統(tǒng)原型是很重要的。

          6. 能夠持續(xù)學(xué)習(xí)新的知識,跟蹤最新的成果,對各種模型的motivation有自己的理解,有自己的insight與vision。這里舉幾個我自己學(xué)習(xí)過程中碰到的例子來說明一下這點。例如,推薦系統(tǒng)中,在Youtube 16年的推薦paper中,為何step1和step2的優(yōu)化目標是不一樣的?人臉檢測中,MTCNN為何要分為多階段?landmark檢測中,3000FPS為何要分為兩個階段?(這些是設(shè)計相關(guān)的motivation)Google的wide&deep為何在Google store的場景下效果好,而在其他的場景下效果不一定好(這是對場景的motivation理解)?文字檢測中,PixelLink為何要引入link?OCR中,CRNN為何要引入一個RNN?機器學(xué)習(xí)系統(tǒng)中,LightGBM是如何針對xgboost存在的哪些缺點進行改進的?(這些是對改進的motivation理解)我認識的一些大佬們會主動結(jié)合文章思考這些問題,有的時候會有與paper所claim的不同的理解(畢竟寫paper的story很多時候也不一定靠譜,大家都懂),甚至還會做實驗驗證自己的理解。然后拿這些問題來考我,在我思考不出來后再告訴我他們的理解與實驗結(jié)果Orz

          7. 做多數(shù)實驗之前有自己的假設(shè),根據(jù)實驗結(jié)果會根據(jù)實驗結(jié)果做進一步實驗,或修正假設(shè)、或進一步探究。

          8. 自己參與的項目,對其中與自己比較相關(guān)的內(nèi)容的細節(jié)比較清楚,自己負責(zé)的部分能夠了如指掌。

          9. 能系統(tǒng)性地分析出機器學(xué)習(xí)整個系統(tǒng)的瓶頸所在,并提出相應(yīng)的解決方案。當(dāng)系統(tǒng)效果不好的時候,知道如何去debug,找到問題所在,改進系統(tǒng)的性能。這方面是我個人尤其欠缺的點。


          相應(yīng)地,這些也是我要努力提升的地方。如果我是面試官,我想我也會從這些方面去考察算法工程師的候選人。當(dāng)然了,以上幾點不一定要面面俱到,例如很多大佬不一定工程能力很強,但仍然可以做出很好的東西。換言之,上述特點的precision應(yīng)該很高,但recall不一定特別高。不過,在我看來,與以上描述相反的算法工程師,即基礎(chǔ)不牢、工程差勁、不做測試、不怎么考慮場景、在搭建起pipeline之前過早地沉迷于某一步的優(yōu)化、不學(xué)習(xí)新東西、拿所有實驗當(dāng)黑箱煉丹等等,這樣的算法工程師(其實就是我了)在我看來就比較一般。而差勁的算法工程師,在我看來,是不僅這些方面做不好,還瞧不起這些方面的人。



          作者:LinT
          https://www.zhihu.com/question/347545092/answer/865893798


          強答一波,講講在學(xué)校或網(wǎng)上見到的現(xiàn)象(AI方面,嚴格來說,這些人放到今天的行業(yè)標準下,基本不可能成為一名算法工程師)。

          (純屬吐槽,請勿對號入座)


          百度百科型選手/PPT選手:常見于各類創(chuàng)新競賽、課程答辯,張口閉口一定是「人工智能」「神經(jīng)網(wǎng)絡(luò)」,上來一定要氣壓群雄,盡管對各類AI問題的進展沒有任何了解,但是在他們這里,各種算法一定是封裝好了,準確率100%,拿來就可以用(plug-and-play)的。什么文本情感分析做輿情監(jiān)控啊,人臉識別智能面試啊,不在話下,章口就來。


          博客型選手:大概率嘗試過Andrew Ng的網(wǎng)課,但大概率沒看下去,手里一定有一本Python深度學(xué)習(xí),對原理不求甚解,數(shù)學(xué)公式大概都不想看,論文不想讀,輾轉(zhuǎn)各個博客網(wǎng)站希望找到一個好一點的解讀;跑了一通實例代碼,很有成就感,可能會在某個博客網(wǎng)站發(fā)布一篇博客,標題諸如《自然語言處理入門-XXX》,成功為網(wǎng)絡(luò)貢獻一篇與其他博客雷同率90%的文章,雖然文章名字像是一個系列,但是相信我,他大概率不會再發(fā)布同系列的文章了。


          Github選手:常常和PPT選手合作,拿到需求,「人臉識別是吧?」,Github一搜,好多倉庫,全克隆了再說;挑挑揀揀,調(diào)試了半天,依賴裝完代碼跑通了(沒有error),任務(wù)完成,功德無量,接下來的任務(wù)交給其他隊友!


          AI+型選手(教師):傳統(tǒng)方向出身,沒有學(xué)過ML/DL,在AI興起以后,把DL當(dāng)萬精油用,深度學(xué)習(xí)預(yù)測地震啊,深度學(xué)習(xí)驗證軟件啊...管它什么數(shù)據(jù)驅(qū)動不驅(qū)動,經(jīng)費拿到手就行了。這類老師對AI的認知可能和PPT選手差不多,比學(xué)生多的本領(lǐng)就是寫本子、打招呼了。帶一個PPT選手加一個Github選手,基本上可以在各類創(chuàng)新競賽/項目中拿到還不錯的成績。


          名詞流選手:行走的AI術(shù)語詞典,討論問題時就喜歡堆砌名詞,但從不解釋,故弄玄虛,讓外行有一種「不明覺厲」的感覺,其實一些言論根本經(jīng)不起推敲。


          潮流型選手:走在AI潮流前列,除了最新的算法,其他的都是垃圾,「不加attention?你這算法不行!」,「2019年了,還用概率圖模型?!」這類人對算法應(yīng)用場景一無所知,對新算法的狂熱程度堪比娛樂圈流量小生的瘋狂粉絲們。





          何去何從型選手:多半是半路出家,轉(zhuǎn)行想做AI的,但是奈何基礎(chǔ)弱,一心只想掙大錢,所以會很迷茫,于是到知乎拋下一個問題:「非cs科班可以學(xué)xxx嗎?」「本人xx,應(yīng)不應(yīng)該xxx?」。奈何這類問題沒有什么深度,基本得不到什么可以參考的回答。這類人問題不在沒有基礎(chǔ),而在沒有主見。


          (別打我...)



          作者:盛夏的果核
          https://www.zhihu.com/question/347545092/answer/840206839


          EMMMMMM,原回答不夠嚴謹,下文所說的僅為AI算法工程師。


          ————————以下為原回答———————————

          0級算法工程師——只知道神經(jīng)網(wǎng)絡(luò)和幾個名詞,這一級的人一談到算法和人工智能,無腦牛逼(或無腦diss)就完事了。


          1級算法工程師——拜讀過西瓜書/小藍書/花書,看過算法視頻教程,對算法基礎(chǔ)知識有一定的了解;掉過幾個算法包,跑過幾個模型和典型數(shù)據(jù)。這一級通常是調(diào)包俠,調(diào)參怪??陬^禪:xxx算法模型是真的強!實際上對于算法原理思想一無所知,看的書也只是囫圇吞棗。


          2級算法工程師——參加過一兩個算法競賽/項目,跑過知名的幾個效果好的算法模型,并且獲得了中規(guī)中矩的成績(前10-20%)。此時認為算法不過如此,數(shù)據(jù)處理、特征構(gòu)建、模型選擇無非那么幾種套路,僅僅靠著模型融合和毫無想法的數(shù)據(jù)處理過程來上分。這一級充斥著大量的校招算法工程師,承擔(dān)著大中廠算法崗炮灰的角色。


          3級算法工程師——參加一些算法競賽并獲得比較靠前的名次,對于使用的模型和方法有叫深入的理解,競賽中存在獨立和較深刻的思考?;蛘哂嘘P(guān)于算法項目相關(guān)的論文。這一級在基礎(chǔ)算法能力上來說已經(jīng)過關(guān),可以找到還不錯的工作。比較容易擔(dān)憂的是自身的工程能力。


          4級算法工程師——除了比較扎實的算法基礎(chǔ)外,還有比較不錯的工程能力。不僅理論知識過關(guān),同時能將算法結(jié)合到業(yè)務(wù)場景、實際項目當(dāng)中去,并對算法本身進行一定的更改以適應(yīng)背景。這一級的人已經(jīng)能成為offer收割機了,往往能拿到心儀的offer。

          (我認為四級已經(jīng)是絕大多數(shù)算法工程師的上限,對于工程師來說繼續(xù)升級需要的是對相關(guān)業(yè)務(wù)的理解、敏銳度和工程能力了,超越了“算法”本身的范疇)


          …………

          N級算法工程師

          對于現(xiàn)有的算法進行創(chuàng)新和改進/開發(fā)算法框架造福AI領(lǐng)域等造成比較大的影響的巨佬。這一級答主根本無法想象那種高度,實屬算法領(lǐng)域的大牛級人物。


          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  水多多成人免费A片 | 亚洲IV秘 一区二区三区 | 亚洲无 码A片在线观看APP | 伊人中文在线 | 日本A片黄色 |