1 訓練資料集和輸入資料集不一致
機器學習適合解決影象識別,語音識別等方面的問題,但它也存在一些不足。訓練資料集和輸入資料集不同是機器學習面臨的一大挑戰,深度學習也有同樣的問題。例如,使用乙個人的手寫體字跡作為訓練集,讓這個模型去識別其他人的手寫體,識別成功的概率很小。
所以機器學習能夠成功建立合適的模型的乙個前提就是盡可能的使用和實際輸入資料集相同的訓練資料集。
2 過擬合
在訓練資料過程中,會出現一種過度擬合的情況,導致模型在實際使用時候魯棒性變差。
如圖2-2所示,(1)代表了兩組不同的資料,現在我們要把它們的位置進行分類,圖(1)中的資料就是訓練資料集,訓練的結果是確定了一條區分兩組不同點的曲線,如圖(2)所示,可以看到在邊界附近有一些點的分類不太正確,有的圓點被分到了三角形點的組裡。這樣的結果不是十分的精確,於是重新調整訓練結果,得到圖(3)的曲線,對於訓練集的資料來說,這一結果非常完美,圓點和三角形點被完全的分開。將這一結果拿到實際的輸入資料集中,如圖(4)所示,實際輸入中增加了正方形點這種分類,圖三的曲線將這個正方形點分到了三角形點的類中,但實際上,正方形點的形狀更適合於圓點的分類。可以看到訓練集得到的完美的結果在實際中使用會產生更大的誤差,這就是過度擬合。
實際上,這些邊界處的異常值就是雜訊,機器學習無法區分這一點,當考慮所有的資料時,得到乙個完全符合訓練集的完美模型,那麼在實際使用中反而可能會產生較大的偏差,即其魯棒性較低。但問題在於我們也不應該為了減小實際中的誤差,而在訓練時減小精度,這違背了機器學習的初衷。那麼有沒有兩全其美的方法呢?
3 過擬合的解決方法
克服過擬合有兩種典型的方法,正則化與驗證。
正則化是一種數值化的方法,建立模型的結構盡量簡單。簡化後的模型可以避免過擬合,需要付出的代價較小。例如上一節中的點的分類就是乙個很好的例子,使用簡單的曲線反而會得到較好的效果。具體的細節會在第三章中「成本函式和學習規則」中討論。
對於上一節中的點的分類問題,因為資料比較簡單直觀,我們可以畫出模型來直觀的評價過度擬合的情況,但是對於實際中的許多情形,資料有更高的維度,無法直觀的評價過度擬合情況。因此,我們需要通過驗證來判斷是否處於過擬合。驗證法是在使用輸入資料集時,保留部分訓練資料來監視模型的表現。這部分資料不參與訓練,叫做驗證集。因為訓練資料的建模誤差不能反映過擬合,所以使用一部分訓練資料來檢驗模型是否過擬合。當訓練好的模型使用之前保留的驗證集作為輸入時,如果模型表現出來的效能比較低,那麼該模型是過擬合的。這時,需要對模型進行調整修改。
引入驗證集後,機器學習的訓練過程有如下步驟,
1)將訓練資料分為兩組,一組用來訓練,另一組用來驗證,根據經驗,訓練集和驗證集的比例是8:2;
2)使用訓練集訓練資料;
3)使用驗證集檢驗模型的效能,如果對模型的效能比較滿意,結束訓練,如果效能不好,修改模型後重複步驟2和3。
在驗證過程中也可以使用交叉驗證,同樣是將訓練資料分為訓練集和驗證集,但是不斷更改資料集。交叉驗證不保留最初劃分的集合,而是不斷進行新的資料劃分。這樣做的原因是,在固定驗證集驗證時,模型表現很好,但此時仍有可能是過擬合的。由於交叉驗證保證了驗證資料集的隨機性,可以更好的檢測模型是否過擬合。
深度學習 MATLAB 入門系列(二)
本系列來自 mathworks load a pre trained,deep,convolutional network alex alexnet layers alex.layers modify the network to use five categories layers 23 full...
Matlab學習筆記(二)
四灰色 五遺傳演算法 六神經網路 先等等再學這個。主程式 用遺傳演算法求解y 200 exp 0.05 x sin x 再 2 2 上的最大值 clc clear all close all global bitlength global st global ed bounds 2 2 一維變數的取...
Python深度學習讀書筆記(二)(機器學習基礎)
第四章,機器學習基礎 二分類,多分類,標量回歸都屬於監督學習的例子。機器學習四大分支 監督學習 學會將輸入資料對映到已知目標,也叫做標註。監督學習變體 序列生成,語法樹檢測,目標檢測,影象分割。無監督學習 沒有目標的情況下尋找輸入資料的變換,目的在於資料視覺化,資料壓縮,資料去噪或更好理解資料中的相...