不同的學習系統通常都遵循相同的設計流程。它們首先獲取知識庫並從資料中選擇相關的可解釋特徵,然後遍歷一系列候選的學習演算法並監測每一個演算法的效能,最後對它進行評估,以衡量訓練過程是否成功。
本節將更詳細地敘述所有的設計步驟,如圖1.9所示。
圖1.9模擬學習流程的框架
1.2.1資料預處理
學習週期裡的資料預處理相當於演算法的知識庫。為了使學習演算法能夠對未知資料做出更精確的決策,使用者必須以最佳形式提供這種知識庫。因此,資料可能需要許多的清洗與預處理(轉換)。
1.資料清洗
大多數資料集都需要經歷這個步驟,在這個步驟裡需要去除資料中的錯誤、噪聲和冗餘。資料必須是準確、完整、可靠和無偏的,這是因為使用劣質的知識庫可能產生如下許多的問題。
結論不精確、有偏。錯誤率增加。泛化能力降低,泛化能力是指模型在之前訓練中未使用過的未知資料上表現良好的能力。2.資料預處理
在這個步驟裡,資料通過一些轉換而變得一致且具體。在資料預處理前有許多不同的轉換方法可供參考。
重新命名(重標記):這表示將類別的值轉換為數值,這是因為類別的值與某些學習演算法一起使用是危險的,並且數字會在不同的值之間附加一個順序。改變尺度(歸一化):將連續的數值轉換或限制在某個範圍內,通常是[−1,1]或[0,1]。新特徵:從現有的特徵中合成新的特徵。比如,肥胖因子=體重/身高。1.2.2特徵選擇
樣本的解釋特徵性(輸入變數)可能是非常龐大的,比如使用者拿到一個輸入x=
,將它作為訓練樣本(觀察資料/示例),並且d非常大。這種情形的一個例子是文件分類任務3,在這個任務裡使用者拿到10 000個不同的單詞,而輸入變數則是這些不同單詞的出現頻次。
這種數量巨大的輸入變數可能是有問題的,有時候甚至是災難性的,因為開發人員有很多的輸入變數,卻只有很少的訓練樣本來幫助他們進行學習。為了避免擁有大量輸入變數這個問題(維度災難),資料科學家用降維技術來選取輸入變數的一個子集。比如,在文字分類任務中,可以採用以下方法。
提取相關的輸入(如互資訊方法)。主成分分析(PCA)。將相似的單詞分組(聚類),這裡用到了相似性度量。1.2.3模型選擇
利用降維技術選擇了一個合適的輸入變數子集後,接下來就是模型選擇了。選擇合適的輸入變數子集,將使得接下來的學習過程變得非常簡單。
在這個步驟裡,使用者試圖找到一個正確的模型來學習。
如果讀者之前有過資料科學方面的經驗,並曾經將學習方法應用到不同的領域和不同的資料當中,那麼這部分內容會相對比較簡單,因為這個步驟需要預先了解資料的樣貌,以及知道什麼樣的假設是適合資料的本質的,並基於此來選擇合適的學習方法。如果讀者沒有預備知識也沒有關係,因為讀者可以通過猜測和嘗試不同引數的不同模型,並選擇一個在測試集上表現最好的模型,來完成這個步驟。
此外,初始資料分析和資料視覺化將會幫助你對資料的分佈形式與性質做出更好的猜測。
1.2.4學習過程
學習指的是使用者用來選擇最佳模型引數的優化指標。有以下不同的優化指標可以選擇:
均方誤差(MSE);最大似然(ML)準則;最大化後驗概率(MAP)。有些優化問題可能本身很難解決,但選擇正確的模型和誤差函式會使得情況有所改善。
1.2.5評估模型
在這一步中,使用者嘗試測量模型在未知資料上的泛化誤差。既然使用者只有特定的資料而無法事先了解任何未知的資料,就可以通過在資料集裡隨機地選擇一部分作為測試集,並且在訓練過程中從不使用它,從而使得這部分資料充當未知的有效資料。有很多方法可用於評估所選模型的效能。
簡單的留出(holdout)法,這種方法將資料簡單地分為訓練集和測試集。其他更復雜的方法,如基於交叉驗證和隨機降取樣的方法。這一步的目的是比較在相同資料集上訓練出來的不同模型的預測效能,並選擇一個擁有最小的測試誤差的模型,這個模型將會在未知資料上表現出較好的泛化誤差。使用者也可以用統計方法判斷結果的顯著性,以得到泛化誤差更準確的資訊。
本文摘自《深度學習案例精粹》