1 前言
學會機器學習不僅要懂得這些算法的理論過程,而且要非常熟悉怎樣使用它,什麼場合用它,算法的優缺點,以及如何調參等。學好機器學習數學真的很重要哇,高數、矩陣論、線性代數要硬啃,但是個人感覺還是在運用的過程中了解比較重要,融會貫通,畢竟最終我們還是要實際應用嘛
2 機器學習的分類-如何尋找合适的算法
2.1 分類
2.2 選擇算法流程
1 選進行大類的選擇
2 進行分類、聚類、回歸、降維小類的選擇
3 運用機器學習的步驟
1、抽象成數學問題
2、資料擷取及分析
擷取的資料要有代表性,否則必然會過拟合。對于分類問題,資料偏斜不能過于嚴重,不同類别的資料數量不要有數個數量級的差距。 而且還要對資料的量級有一個評估,多少個樣本,多少個特征,可以估算出其對記憶體的消耗程度,判斷訓練過程中記憶體是否能夠放得下。如果放不下就得考慮改進算法或者使用一些降維的技巧了。如果資料量實在太大,那就要考慮分布式了。
3、資料預處理
資料清洗、資料歸一化、擴充等。歸一化、離散化、因子化、缺失值處理、去除共線性等,資料挖掘過程中很多時間就花在它們上面。這些工作簡單可複制,收益穩定可預期,是機器學習的基礎必備步驟。
4、特征工程
篩選出顯著特征、摒棄非顯著特征,需要機器學習工程師反複了解業務。這對很多結果有決定性的影響。特征選擇好了,非常簡單的算法也能得出良好、穩定的結果。這需要運用特征有效性分析的相關技術,如相關系數、卡方檢驗、平均互資訊、條件熵、後驗機率、邏輯回歸權重等方法。
5、訓練模型選擇與調優
要根據資料的實際情況和具體要解決的問題來選擇模型,比如樣本數、特征次元,資料特征綜合考慮;要解決的問題是分類還是回歸,問題需要網絡去關注哪方面,結合實際情況選擇網絡。調優問題,可以采用交差驗證,觀察損失曲線,測試結果曲線等分析原因,調節參數:優化器、學習率、batchsize等。可以嘗試多模型融合,來提高效果。
6、後處理
網絡的到的結果一般不直接使用,通過一些後處理方案,不如加入先驗限制,一些處理,将明顯錯誤去除。
7、模型評估
從各個方面評估,模型準确率、誤差,時間、空間複雜度,穩定性、遷移性等
4 數學基礎
4.1 微積分基礎
泰勒公式,導數與梯度等等
4.2 機率統計基礎
機率論+統計(很多資料分析模組化基于統計模型)、統計推斷、随機過程。可以毫不誇張的說,機率論+統計是機器學習的核心數學理論。
4.3 線性代數基礎
矩陣表示、矩陣運算、特征根、特征向量是基礎中的基礎,主成分分析(PCA)、奇異值分解(SVD)、矩陣的特征分解、LU 分解、QR 分解、對稱矩陣、正交化和正交歸一化、矩陣運算、投影、特征值和特征向量、向量空間和範數(Norms),這些都是了解機器學習中基本概念的基礎。還有重要的矩陣求導,機器學習中好多優化問題最終都歸結到矩陣求導上。