算法工程師研發(fā)技能表
算法工程師
Author:louwill
Machine Learning Lab
? ??
由于算法工程師這個崗位根據(jù)不同的業(yè)務(wù)場景和應(yīng)用方向,各自的工作差異相對較大。所以很難有一個一概而論的算法工程師技術(shù)棧。比如說做圖像方向的有機器視覺算法崗、做文本方向的有自然語言處理算法崗、做語音的又有語音識別算法崗。
本文僅對算法工程師常用的、基礎(chǔ)的、必備的研發(fā)技能進行梳理。也就是說,不論你是做哪個業(yè)務(wù)場景下的算法工作,這些基礎(chǔ)研發(fā)技能都是必知必會的。
這組技能清單主要包括兩大類型,一類是理論技術(shù),另一類是編程語言和工具類。
數(shù)據(jù)分析
數(shù)據(jù)分析是算法工程師的基礎(chǔ)能力。當(dāng)前所有的算法都是基于數(shù)據(jù)驅(qū)動,數(shù)據(jù)分析可以算作是算法研究的前置條件。主要技術(shù)棧包括:
EDA
統(tǒng)計分析
統(tǒng)計繪圖與數(shù)據(jù)可視化
sql
...
數(shù)據(jù)結(jié)構(gòu)與算法
數(shù)據(jù)結(jié)構(gòu)與算法是計算機從業(yè)者的四大基礎(chǔ)課之一,對常用的數(shù)據(jù)結(jié)構(gòu)和基礎(chǔ)算法有深刻的理解是算法工程師的基本功。目前業(yè)界無論大廠小廠,面試考數(shù)據(jù)結(jié)構(gòu)與算法題是必備項目。刷leetcode是算法找工作前的必做準(zhǔn)備了。
數(shù)據(jù)結(jié)構(gòu)
線性表
數(shù)組
鏈表
字符串
棧
隊列
堆
哈希表
樹
圖
基礎(chǔ)算法
二分查找
排序
遞歸
回溯
分治
雙指針
深度優(yōu)先搜索
廣度優(yōu)先搜索
動態(tài)規(guī)劃
...
機器學(xué)習(xí)
機器學(xué)習(xí)是算法崗的核心能力。對于機器學(xué)習(xí)算法工程師而言,隨著算法崗越來越內(nèi)卷,對常用的機器學(xué)習(xí)模型與算法能夠做到深入理解和手推已是普遍要求了。常用的機器學(xué)習(xí)模型包括:
單模型
線性回歸
邏輯回歸
Lasso
Ridge
knn
ID3
C4.5
CART
感知機
神經(jīng)網(wǎng)絡(luò)
SVM
集成學(xué)習(xí)
GBDT
AdaBoost
XGBoost
LightGBM
CatBoost
Random Forest
無監(jiān)督模型
kmeans
層次聚類
譜聚類
PCA
SVD
LDA
概率模型
樸素貝葉斯
貝葉斯網(wǎng)絡(luò)
EM
MCMC
最大熵
CRF
HMM

機器學(xué)習(xí)模型導(dǎo)圖
深度學(xué)習(xí)
深度學(xué)習(xí)作為機器學(xué)習(xí)的一個最流行方向,不同的應(yīng)用領(lǐng)域也相對有各自的側(cè)重點,比如做圖像算法的更側(cè)重于CNN,做文本算法的更側(cè)重于RNN。但常用的網(wǎng)絡(luò)模型和發(fā)展沿革都應(yīng)該做到了然于胸。
DNN
MLP
BP
CNN
分類
檢測
分割
AlexNet/VGG/GoogleNet/ResNet/DenseNet
...
RNN
LSTM
Transformer
Attention
Bert
XLNet
...
GNN
...
Linux
Linux是算法工程師干活主要工具,基礎(chǔ)和常用命令必須熟練。
Linux
Shell
Vim
Git
版本管理
遠程倉庫
分支管理
...
Python
Python的重要性就不多說了。完整教程可參考廖雪峰老師:
https://www.liaoxuefeng.com/wiki/1016959663602400
算法人員應(yīng)熟練掌握的第三方庫包括:
sklearn
tensorflow
keras
pytorch
cv2
nltk
...
C++
C++跟Python一樣,甚至重要性還要強于Python,C++對于模型算法的工業(yè)化部署和落地至關(guān)重要。C++在線教程參考:https://www.w3cschool.cn/cpp/
SQL
SQL是算法人員的基礎(chǔ)研發(fā)工具。能寫一手熟練的SQL腳本也是非常重要的能力體現(xiàn)。
增刪改查
MySQL
Oracle
SQLite
...
Docker
Docker 是一個開源的應(yīng)用容器引擎,可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。
爬蟲
爬蟲對于算法工程人員而言可以自主的編寫腳本獲取web頁面上的一些結(jié)構(gòu)化數(shù)據(jù)。基于Python的爬蟲應(yīng)掌握:
前端知識
html
css
javascript
Python第三方庫
urllib
beautifulsoup
request
lxml
scrapy
以上僅為筆者根據(jù)個人經(jīng)驗列出的算法人員研發(fā)技能清單。不可能面面俱到,也不可能以偏概全。重在給大家一個參考。另有知道創(chuàng)宇公司的研發(fā)人員技能表PDF版,有需要的朋友可以加我微信獲取。
往期精彩:
【原創(chuàng)首發(fā)】機器學(xué)習(xí)公式推導(dǎo)與代碼實現(xiàn)30講.pdf
【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實戰(zhàn)指南.pdf
