哲學要回答的基本問題是從哪裏來、我是誰、到哪裏去,尋找答案的過程或許可以借鑒機器學習的套路:組織數據->挖掘知識->預測未來。組織數據即為設計特征,生成滿足特定格式要求的樣本,挖掘知識即建模,而預測未來就是對模型的應用。
特征設計依賴於對業務場景的理解,可分為連續特征、離散特征和組合高階特征。本篇重點是機器學習算法的介紹,可以分為監督學習和無監督學習兩大類。
無監督學習算法很多,最近幾年業界比較關註主題模型,LSA->PLSA->LDA 為主題模型三個發展階段的典型算法,它們主要是建模假設條件上存在差異。LSA假設文檔只有壹個主題,PLSA 假設各個主題的概率分布不變(theta 都是固定的),LDA 假設每個文檔和詞的主題概率是可變的。
LDA 算法本質可以借助上帝擲骰子幫助理解,詳細內容可參加 Rickjin 寫的《 LDA 數據八卦》文章,淺顯易懂,順便也科普了很多數學知識,非常推薦。
監督學習可分為分類和回歸,感知器是最簡單的線性分類器,現在實際應用比較少,但它是神經網絡、深度學習的基本單元。
線性函數擬合數據並基於閾值分類時,很容易受噪聲樣本的幹擾,影響分類的準確性。邏輯回歸(Logistic Regression)利用 sigmoid 函數將模型輸出約束在 0 到 1 之間,能夠有效弱化噪聲數據的負面影響,被廣泛應用於互聯網廣告點擊率預估。
邏輯回歸模型參數可以通過最大似然求解,首先定義目標函數 L ( theta ),然後 log 處理將目標函數的乘法邏輯轉化為求和邏輯(最大化似然概率 -> 最小化損失函數),最後采用梯度下降求解。
相比於線性分類去,決策樹等非線性分類器具有更強的分類能力,ID3 和 C4.5 是典型的決策樹算法,建模流程基本相似,兩者主要在增益函數(目標函數)的定義不同。
線性回歸和線性分類在表達形式上是類似的,本質區別是分類的目標函數是離散值,而回歸的目標函數是連續值。目標函數的不同導致回歸通常基於最小二乘定義目標函數,當然,在觀測誤差滿足高斯分布的假設情況下,最小二乘和最大似然可以等價。
當梯度下降求解模型參數時,可以采用 Batch 模式或者 Stochastic 模式,通常而言,Batch 模式準確性更高,Stochastic 模式復雜度更低。
上文已經提到,感知器雖然是最簡單的線性分類器,但是可以視為深度學習的基本單元,模型參數可以由自動編碼( Auto Encoder )等方法求解。
深度學習的優勢之壹可以理解為特征抽象,從底層特征學習獲得高階特征,描述更為復雜的信息結構。例如,從像素層特征學習抽象出描述紋理結構的邊緣輪廓特征,更進壹步學習獲得表征物體局部的更高階特征。
俗話說三個臭皮匠賽過諸葛亮,無論是線性分類還是深度學習,都是單個模型算法單打獨鬥,有沒有壹種集百家之長的方法,將模型處理數據的精度更進壹步提升呢?當然,Model Ensembe l就是解決這個問題。Bagging 為方法之壹,對於給定數據處理任務,采用不同模型/參數/特征訓練多組模型參數,最後采用投票或者加權平均的方式輸出最終結果。
Boosting為Model Ensemble 的另外壹種方法,其思想為模型每次叠代時通過調整錯誤樣本的損失權重提升對數據樣本整體的處理精度,典型算法包括 AdaBoost 、GBDT 等。
不同的數據任務場景,可以選擇不同的 Model Ensemble 方法,對於深度學習,可以對隱層節點采用 DropOut 的方法實現類似的效果。
介紹了這麽多機器學習基礎算法,說壹說評價模型優劣的基本準則。欠擬合和過擬合是經常出現的兩種情況,簡單的判定方法是比較訓練誤差和測試誤差的關系,當欠擬合時,可以設計更多特征來提升模型訓練精度,當過擬合時,可以優化特征量降低模型復雜度來提升模型測試精度。
特征量是模型復雜度的直觀反映,模型訓練之前設定輸入的特征量是壹種方法,另外壹種比較常用的方法是在模型訓練過程中,將特征參數的正則約束項引入目標函數/損失函數,基於訓練過程篩選優質特征。
模型調優是壹個細致活,最終還是需要能夠對實際場景給出可靠的預測結果,解決實際問題。期待學以致用! 作者 曉惑 本文轉自阿裏技術,轉載需授權