工作以來一直在思考演算法工程師這個崗位的核心競爭力,自己的心路歷程分為三個階段。
第一階段
這一階段我認為演算法工程師的核心競爭力是對模型的理解,對於模型不僅知其然,還得知其所以然。
於是我把目標檢測的經典**翻來覆去地看,將各種目標檢測模型分解成了n個模組,針對每個模組,反覆比對各篇**處理方式的異同,思考各種處理方式各自的優缺點,以及有沒有更好的處理方式,比如:
深度卷積神經網路中的降取樣總結了降取樣的各種方式;
深度卷積神經網路中的公升取樣梳理了公升取樣的諸多方法;
關於物體檢測的思考簡述了anchor free與anchor based的異同、one stage和two stage的區別與聯絡;
深度學習高效網路結構設計和高效卷積神經網路一覽總結了高效網路的設計思路與具體細節;
在anchor free檢測器炙手可熱的時候,why anchor?分析了anchor free和anchor based的歷史由來,以及各自利弊。
同時對目標檢測實踐中一些開放式的問題也有一些自己的思考,比如:
關於感受野的總結詳述了感受野的計算方式和在應用時需要注意的地方;
目標檢測網路train from scratch問題猜想了一下目標檢測能夠train from scratch的關鍵,在這篇文章裡我質疑了dsod和dropblock這兩篇**對train from scratch問題下的結論(當時何愷明那篇討論train from scratch的*****還沒出來,從何愷明後來*****的實驗看來,我的質疑是對的)。
上面是把模型揉碎了看,最近開始有更多時間與精力接觸除了目標檢測以外的任務,於是思考如何將各個計算機視覺任務統一起來,最近有了一點小的想法,該想法形成了一篇簡短的文章。
第二階段
這一階段我認為演算法工程師的核心競爭力在於**功底好,一則知道各個模型的實現細節,二則能即快又好地實現idea。於是我用pytorch手擼了yolov2和yolov3。同時看了不少優秀的開源**,比如darknet、mmdetection等等。最近正在用pytorch仿照mmdetection擼乙個語意分割的訓練框架。
第三階段
最近開始接觸各個行業對計算機視覺的需求,我發現一名優秀的演算法工程師僅僅對模型理解不錯、**功底不錯是不夠的,還需要對有計算機視覺業務需求的行業有著較深入的理解。恰好最近看了一篇阿里雲機器智慧型首席科學家閔萬里的專訪文章,專訪裡這幾段話我深以為然:
在阿里雲的時候,我就親自打造了乙個崗位:dtc:data technology consultant。dt有兩個含義,乙個是資料技術data technology,乙個是數位化轉型digital transformation,一語雙關。他們像大夫,望聞問切,跟客戶一起梳理出業務流程中的痛點,找到優化方式。
dtc不只是對行業整體的判斷,還要對賽道中的選手體檢,有開藥的能力。可以把對方的難言之隱梳理出來,定量、優先順序排序,然後從整體到細節,一層層結構化分解,最後進入具體執行。你要在傳統行業創造新價值,就要搞清楚:什麼東西制約了你的產能,制約了你的效率,制約了你的利潤率。
技術人員今天往產業走,我相信整體遇到的障礙就是如何把技術思維變成以業務需求為導向的技術思維、技術分解思維。
雖然閔萬里這幾段話裡的主體是技術諮詢師,但我覺得這也是成為一名優秀演算法工程師的必備品質。
總結一段話就是:
演算法工程師往產業裡走,需要把技術思維轉變為以業務需求為導向的技術思維、技術分解思維;
演算法工程師需要像大夫一樣望聞問切,跟客戶一起梳理出業務流程中的痛點,找到優化方式;
演算法工程師不僅需要有對行業整體的判斷,還需要對客戶有體檢、開藥的能力,可以把客戶的難言之隱梳理出來,定量、優先順序排序,然後整體到細節,一層層結構化分解,最後進入具體執行;
要在傳統行業創造新價值就要搞清楚什麼東西制約了產能、效率、利潤率。
僅僅輸出模型的演算法工程師比較容易被替代,更高的追求是輸出一整套端到端的系統方案,從與客戶一起梳理業務痛點、硬體選型、模型部署環境的規劃與搭建、資料採集和標註標準制定、模型選型與設計等等。
軟體測試工程師的核心競爭力是什麼?
我以我們團隊招聘功能測試和測試開發工程師為例,帶你了解一下測試工程師的核心競爭力到底是什麼。這兩個實際案例,是否已經引發你去思考這樣乙個問題 什麼才是測試工程師的核心競爭力?目前的測試工程師分為兩大類別,一類是做業務功能測試的,另一類是做測試開發的,二者的核心競爭力有很大差別。那麼,接下來我就帶你一...
09 軟體測試工程師的核心競爭力是什麼?
我以我們團隊招聘功能測試和測試開發工程師為例,帶你了解一下測試工程師的核心競爭力到底是什麼。如果拋開這個特定的業務領域,他對測試技術本身以及產品技術實現都缺乏系統的思考和理解。換言之,他的價值僅僅能夠體現在這個特定的產品業務上,而一旦離開了這個業務領域,他的經驗積累很難被有效重用,也就是說他很難快速...
06 軟體測試工程師的核心競爭力是什麼?
一 教程裡這句話總結的比較好 只有當自己真正明白了自己的核心競爭力,才能理清 應該做什麼 和 應該怎麼做 這兩個問題,才能朝著正確的方向前行 二 根據作者列舉的兩個案例並寫的總結 作為測試人員,必須要深入理解業務,但是業務知識不能等同於測試能力 測試開發崗位的核心其實是 測試 開發 的目的是更好地服...