人工智能工程師學習圖如下:
入門前需要的幾種技能:
統計學
要深入理解機器學習,必須要有紮實的統計學基礎知識,這涉及到幾個方面:
1、度量模型是否成功的各種方法(精確度、召回率、ROC曲線下面積等)。損失函數和評估指標的選擇是如何**偏離模型的輸出**的。
2、如何理解**過擬合**和**欠擬合**,以及**偏差/方差折衷**。
3、你對模型的結果有什麼樣的**信心**。
機器學習理論
在訓練神經網絡的時候,實際上發生了什麼?是什麼使得某些任務可行,而其他任務不可行?要弄清楚這些問題,最好的方法不是深入研究理論知識,而是試著通過圖形和示例來了解機器學習。
需要理解的概念範圍包括:不同的**損失函數**的工作原理是什麼、為什麼**反向傳播**是有用的、**計算圖**是什麼。而對於**如何建立一個功能模型**,以及**如何跟團隊裡的其他人員進行有效地交流**,這些都需要深入地理解。
另一個基本技能是閱讀、理解和實施論文的能力。這個一開始做起來可能會感覺比較困難,所以最好的方法就是閱讀附帶代碼的論文(例如,研究GitXiv上的論文),並試著去理解它是如何實現的。
數據處理
如果你去問任何一個數據科學家他們的主要工作是什麼,他們會告訴你,90%的工作是數據處理。這與應用AI同樣重要,因為模型的成功與否與數據的質量(和數量)強相關。數據工作包含多個方面,但可歸納為下面幾類:
數據採集(包括:找到好的數據源、準確度量數據的**質量**和**分類**、獲取和推斷標籤)
數據預處理(**缺失數據**填補、**特徵工程**、數據**增強**、數據**規範化**、交叉驗證分割)
數據後處理(使模型的輸出可用、清理工作、處理**特殊情況**和**異常值**)熟悉數據處理工作最好的方法是獲取一個數據集並試著使用它。有很多在線數據集,以及很多提供API的社交媒體和新聞媒體網站。基於上面提到的幾個步驟,我們可以這樣進行學習:
獲取一個開源的數據集,並對其進行檢查。它有多大(點和特徵的數量)?數據如何分佈?是否存在缺失值或異常值
構建一個將原始數據轉換為可用數據的轉換流程。如何填補缺失值?如何正確處理異常值?如何規範化數據?能創造出更多的表現特徵嗎?
軟件工程
許多的應用機器學習允許你充分發揮自己在軟件工程方面的技能,雖然有時也會有一點小改變。這些技能包括:
測試流水線的各個方面(數據的預處理和增強、輸入輸出的整理、模型推理時間)。
基於**模塊化**和可重用的原則來構建代碼。
在訓練過程中的不同點對模型進行備份(**設置檢查點**)。
配置一個**分佈式的基礎架構**,這樣能更加有效地進行訓練、超參數搜索或者推演。
閱讀更多 老孔說編程 的文章