我從非科班轉到圖像算法工程師(圖像識別、機器學習、深度學習)(3個月)的經歷


  首先,感謝@王子瑞/Aliloke邀請,來談談我從非科班轉行到圖像算法工程師的經歷吧。
  需要說明的是,我對算法這塊的理解是非常的膚淺的,因爲我接觸這塊也就三個多月的時間,說起來爲何進入這個領域,其中還真有些機緣巧合。
  2015年我從南理工機械工程專業畢業,畢業後在南京待了近兩年,從事機械、氣動方面工作,後想着離家太遠,自己的事業發展也一般,遂回老家桂林。回家後自己在家開起了淘寶店,註冊了營業執照,主要從事平面設計,影視後期特效,特效教程,淘寶教育課程等方面工作,同時自己開設了YOUTUBE頻道做油管主。不過由於自己能力有限,淘寶店、淘寶教育效益一般,電商這塊競爭激烈,遂放棄,算是創業失敗吧。
  後來有一段時間自己不知道該做什麼,碰巧那時候華爲大數據入駐桂林,公司剛好離家不遠,就想碰碰運氣,於是自學java以及hadoop、yarn、Mapreduce等大數據方面的內容,投了華爲大數據的簡歷。後來華爲HR打了電話過來,簡單詢問了一些技術方面的內容,我也簡單說明了自己的一些情況,後來HR的意思大致就是覺得我技術能力不行,同時又是非科班的。我自己也覺得是,要像華爲這樣的公司隨便水水就能進,那它就不是華爲了。
  再後來,就不打算在桂林找工作了,因爲機會少,待遇也不高,想着去深圳發展,後又自學了python,爬蟲方面的知識,想着再不濟,找個python工程師,爬蟲工程師方面的工作混個飯碗都行。就在去深圳的前幾個小時,票都買好了,但還是放棄了,想着父母在這邊,女朋友(後來分手了)也在這邊,沒人照顧,心軟了。後來還是決定在桂林找工作,當時也算是前女友的鼓勵吧(要感謝前女友),鼓起勇氣投了五個簡歷,其中1個做大數據運維和分析的,4個做深度學習、圖像算法的,可惜最後只有兩家公司迴應了,其中一家簡單問了我的情況後讓我做回機械,因爲他們公司除了算法崗外,也有機械崗,後來我拒絕了。然後另一家就是我現在的公司,跟HR簡單地溝通之後,她讓我過去面試,我跟她溝通後稍微延緩了面試的時間。下面這張圖片就是我當時面試的圖像算法工程師崗位的要求:

  • 圖像算法工程師
    在這裏插入圖片描述

我仔細看了一下崗位要求,對我來說要求還是蠻高的。首先opencv是啥我不知道;MATLAB我安裝過兩遍,但就是沒用過幾次;C語言大學自學過,但完全沒有項目經驗;機器學習的算法?我倒是能背出一兩個算法的名字;機器學習、深度學習具體怎麼學習的我也不知道,如果不是後來慢慢熟悉,我會以爲機器學習就是一個高度智能化的AI嬰兒,只要不停地投餵數據給他訓練,他就能不停地學習,從而變一個具有成人思維的AI人造人;而深度學習我的理解就是加了BUFF的機器學習。太天真了!
  後來,我去書店買了一本書,名字叫做《OpenCV+TensorFlow深度學習與計算機視覺實戰》,如下圖:
在這裏插入圖片描述
我心想,還好離面試還有一個星期時間,我可以仔細琢磨琢磨。翻開這本書,還是今年出版的,不錯喲!結果後來慢慢看後,發現示例代碼錯誤挺多,對於我這個編程小白來說真的增加難度不少,在安裝tensorflow-gpu那兒還卡了挺長時間,不得不說,這玩意還真難安裝,我後來在三個不同版本系統上安裝,屢屢失敗,不是GPU對不上,就是python版本對不上,這還是我之後安裝多次終於成功的版本筆記:win10下安裝tensorflow-gpu==1.11.0的詳細教程
  沒過多久,就差不多到面試時間了,而我opencv只看了一點,然後我直接到網上找了個與opencv相關的demo(蔡徐坤教你用OpenCV實現素描效果)跑了一下,然後又去學習了如何用python從頭實現一個神經網絡(雖然自己對人工神經網絡毫無認知),然後接下來熟悉了常見機器學習算法就去面試了,可能我們公司不是主流AI公司的原因,面試相當輕鬆,後來回想起來,爲啥會這麼輕鬆,我去HR那看她現在篩簡歷都是非研究生不要的。。。後來才知道,是我們的AI模塊的負責人那會準備要走了,當時時間緊迫,HR就幾天時間,一時實在招不到人,碰巧我出現了,就勉強把我收了!後來我進公司後,那個負責人帶了我一個月,那一個月,我也就是勉強熟悉了一些項目流程,算法那方面沒啥增進。不得不說,算法工程師還是需要寫代碼的功底在,像基本的機器學習、深度學習語言比如c還有python是需要特別熟練地掌握的,還有計算機組成原理,數據結構,操作系統,編譯原理,這些個基本理論,非科班人員相比較科班人員來,差距真的不是一點兩點!
  再後來,我就基本成了自行摸索狀態了,我們公司確實缺人,好不容易公司招進來一些附近大學計算機學院的實習生,我都得抓緊時間向他們請教,因爲不懂的實在太多了。我們公司現在的項目主要是做單一對象的目標識別的,目前使用的是基於darknet框架的yolo-v2算法模型,是目前兩種主流單目標識別算法中的一種,另一種是SSD,SSD沒用過,日後優化識別能力時倒是可以對比試試。
  入職差不多1個半月也就是7月初那會,我們部門技術人員還一起到新疆去測試了識別設備,槽點頗多,老總不滿意,回來讓我們繼續對算法以及設備進行優化,我目前的主要任務就是熟悉算法中卷積神經網絡卷積層的各功能實現,以及對算法模型進行參數調節,簡稱調參,對採集圖像進行預處理、標定、訓練等,然後分析識別效果,還需要編寫優化算法篩選目標,提高識別率,以及閱讀一些主流算法的相關論文等,有必要時還得學習其他深度學習框架,比如tensorflow、pytorch、Keras,不過摻插在裏面相對比較重要的一項就是提高自己編寫代碼以及優化代碼的能力,畢竟自己菜,一定得好好刷刷leetcode!
  關於機器學習,我看了一本叫做《深入淺出python機器學習》的書,如下圖:
在這裏插入圖片描述
裏面基本上介紹了機器學習常用的算法,並都附有python程序示例,過一遍基本上都熟悉了,但它對算法的數學實現那塊並沒有細講,如果要講的話,估計又要燒掉不少腦細胞!其他的一些比較受歡迎的機器學習的書籍比如《機器學習實戰》《西瓜書》,網上人們推薦挺多的,還有吳恩達的機器學習和深度學習的視頻教程,比較適合入門吧!
  至於卷積神經網絡,我還買了一本叫做《深度學習的數學》,如下:
在這裏插入圖片描述
我自知大學數學沒學好,理解矩陣變換,概率問題來有難度,所以買這本書是爲了幫我更好理解卷積神經網絡中的相關數學問題的,還沒看完呢,先不作評價。
  前段時間關注了知乎的這個板塊:如何看待 2020 屆校招算法崗「爆炸」的情況?,確實如大衆所言,想要進入此領域的人很多,但符合要求的太少,前段時間有個女獵頭找我(太感動了!),問我基本情況,我說我是本科生,還不是科班出身的,她說算法崗基本研究生起步了。
  所以我覺得我還是比較幸運吧,雖然很多人認爲機器學習、深度學習最近幾年在學術層鮮有突破性進展,比如這位兄臺,他五年前基本上對DL在學術層面持保守態度:
在這裏插入圖片描述
儘管如此,他大概也沒料到DeepLearn在應用層面能發展這麼快(不過確實需要人們的共同努力),我認爲未來DL在應用層面是比較樂觀的,人臉識別、人臉變換(比如最近比較火的ZAO)、自動駕駛、語音識別、文字識別、遊戲AI(如Alpha Go)、推薦機制、硬件加速、表情分析、行爲分析、心理分析、病情分析、氣象預測、災害預測等,除了正向運用外,還有逆向運用(我不懂該如何描述就隨便用了這個詞),比如Gan(生成式對抗網絡),試想一下,在未來,一個建築設計師只需草草幾筆畫個框架,就能立刻在電腦上生成建築的三維模型,並且還都幫你渲染好了,然後再給幾個參數,立馬給你生成二維CAD圖;一個畫師,隨便畫個草圖,電腦就能立即生成與草圖相對應的可媲美於實景的照片(爲什麼說GAN很快就要替代現有攝影技術了?);
(電腦生成的3D魚):
在這裏插入圖片描述
(電腦生成的3D貓):
在這裏插入圖片描述
遊戲建模師們就更爽了,那些什麼場景,光線都不用自己花大量時間去設置,只需給個草圖,給幾個參數,電腦立馬能生成比真實場景還真實的遊戲場景(可以說更爽的是遊戲玩家嗎!)(這夢一般的街景,全是AI僞造的(把GAN秒成渣渣));
在這裏插入圖片描述
而那些開發移動APP的人才,比如開發一個類似於ZAO的APP,但並非生成圖像而是生成聲音,用戶隨便哼個調調,app便能通過聲音自動生成可媲美專業歌手級別的歌曲,通過識別曲風自動填詞,並且用戶可簡易設置生成的歌曲風格,估計又可圈一波錢了!(GAN僞造音視頻文件,眼見耳聽不再爲實 );再進一步設想,創造生物!誒誒誒好像哪裏不對,違反倫理是要捱打的,那就創造器官吧,生成式對抗網絡能基於已有的基因、蛋白質結構找出其中規律去生成符合設想的基因、蛋白質結構,以滿足特定的組織功能(深度丨斯坦福 AI Lab 重磅生物學成果:用 GAN 合成基因),等等。在未來幾年,可以猜測,沒有及時享受機器學習、深度學習所帶來的紅利期的企業是容易在競爭中被淘汰的,無論是金融行業、房地產行業、還是數碼產品行業、教育行業、機械行業、製造業等,即使是最傳統的農業,也需要AI Buff加持(比如像我現在的公司,囧)。
  SO,以上,就是我轉到算法崗之後3個多月的經歷和感悟,如有錯誤疏漏,請務必指出!如果還有什麼想起來再作補充吧!
—— Dontla 更新於2019年8月

附錄1:From 2016: Why Deep Learning Is Suddenly Changing Your Life

From 2016: Why Deep Learning Is Suddenly Changing Your Life

附錄2:深度學習如何入門?

深度學習如何入門?

附錄3:20個令人驚歎的深度學習應用

20個令人驚歎的深度學習應用

附錄4:機器學習、深度學習等人工智能技術在工業界的應用狀況是怎樣的?人力供需狀況如何?

機器學習、深度學習等人工智能技術在工業界的應用狀況是怎樣的?人力供需狀況如何?

附錄5:深度學習在電影特效製作上有哪些應用?

深度學習在電影特效製作上有哪些應用?

附錄6:深度學習(AI)在醫療領域應用、需求及未來發展概述

深度學習(AI)在醫療領域應用、需求及未來發展概述

Google開發專家帶你學 AI:入門到實戰(Keras/Tensorflow)(附源碼)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章