深度學(xué)習(xí)之寶可夢和數(shù)碼寶貝分類案例
通過寶可夢和數(shù)碼寶貝分類案例對深度學(xué)習(xí)的模型復(fù)雜度和樣本量進行分析討論,研究二者對深度學(xué)習(xí)精度的影響。
1.任務(wù)描述
輸入一個圖像,輸出對圖像的分類結(jié)果,讓深度學(xué)習(xí)模型判斷這張圖像里的動物是寶可夢還是數(shù)碼寶貝,這是一個典型的二分類任務(wù)。

2.定義分類模型函數(shù)
由文章“眾里尋他千百度”-深度學(xué)習(xí)的本質(zhì)可知,訓(xùn)練一個深度學(xué)習(xí)模型的步驟包括三個。第一步是定義一個含有未知參數(shù)的函數(shù)。在多數(shù)情況下,如果對拿到的任務(wù)沒有任何想法,首先需要對問題進行分析,找到任務(wù)輸入的關(guān)鍵特征,基于此建立模型,定義一個適合該任務(wù)的模型函數(shù)。
通過對寶可夢和數(shù)碼寶貝樣本的隨機抽樣,如下方圖所示。上方是從樣本庫中隨機抽取5張數(shù)碼寶貝圖像的結(jié)果,下方是從樣本庫中隨機抽取5張寶可夢圖像的結(jié)果。經(jīng)過對抽樣圖像的特征進行分析,發(fā)現(xiàn)寶可夢的線條輪廓比較簡單,而數(shù)碼寶貝的線條輪廓比較復(fù)雜。


一個可行的方案是,通過邊緣檢測(Edge detection)技術(shù)將圖像中的數(shù)碼寶貝和寶可夢的輪廓、線條提取出來,計算這些輪廓、線條的像素數(shù)量,作為一個區(qū)分數(shù)碼寶貝和寶可夢的主要特征。如上圖所示,上方是寶可夢,提取輪廓、線條后有3558個像素點;下方是數(shù)碼寶貝,提取輪廓、線條后有7389個像素點。
經(jīng)過上述分析,可以定義含有未知參數(shù)的函數(shù)如下,輸入一張圖片,通過邊緣檢測技術(shù)提取線條的復(fù)雜程度。當線條的復(fù)雜程度大于某閾值h時,分類模型將圖像判定為數(shù)碼寶貝;當線條的復(fù)雜程度小于某閾值h時,分類模型將圖像判定為寶可夢。式中的閾值h即為未知參數(shù)。可認為未知參數(shù)小h的取值范圍在大H集合中,本例中,大H的取值范圍為整數(shù),可設(shè)為1至10000,將大H的數(shù)量稱之為模型的復(fù)雜度,那么該模型的復(fù)雜度即為10000。

3.?定義損失函數(shù)

?定義損失函數(shù)的過程如圖所示。給定數(shù)碼寶貝和寶可夢的數(shù)據(jù)集D,D則為由特征x和標簽y構(gòu)成樣本對的集合,x為圖像,y為數(shù)碼寶貝和寶可夢的標簽。損失函數(shù)即為給定數(shù)據(jù)集D和閾值h的每個樣本對損失的平均值。每個樣本的損失結(jié)果可通過示性函數(shù)(Indicator function)來表示,即如果模型函數(shù)的預(yù)測與真實結(jié)果不一致,損失為1;如果模型函數(shù)的預(yù)測結(jié)果與真實結(jié)果一致,損失為0。當損失取示性函數(shù)時,損失函數(shù)的計算結(jié)果即為錯誤率(Error rate)。
4.?模型的訓(xùn)練
值得注意的是,此時定義的損失函數(shù)是錯誤率,它不是一個可微分的函數(shù),因此無法使用梯度下降法在數(shù)據(jù)集上找到一個最優(yōu)的參數(shù)h。但本例參數(shù)比較特殊,h是個有限集合,可以通過暴力枚舉的方法找到最優(yōu)的參數(shù),完成模型的訓(xùn)練。
假定為寶可夢和數(shù)碼寶貝所有的數(shù)據(jù)集,可以在給定
的情況下通過最小化損失函數(shù)的形式得到最優(yōu)的參數(shù)
,見式(1)。
事實上式(1)是最理想的情況,在現(xiàn)實的情況下無法獲得,只能搜集得到來自
的部分抽樣結(jié)果
作為模型的訓(xùn)練集樣本。將在
上計算得到的最優(yōu)參數(shù)記為
,則有式(2)。
一個好的訓(xùn)練結(jié)果是在
上的損失與
在
上非常接近。
4.1實驗結(jié)果
假定,已經(jīng)獲取了所有寶可夢和數(shù)碼寶貝的數(shù)據(jù)集,共計獲得1736張圖片,即的數(shù)量為1736。通過枚舉的方法可以計算得到使得損失函數(shù)最低的
為4824,此時模型的損失為0.28。
第一次隨機從中抽取200個樣本作為
,計算得
為4727,此時
在
上的損失為0.27,
在
上的損失也是0.28,此時,訓(xùn)練出的參數(shù)
效果較好。
第二次隨機從中抽取200個樣本作為
,計算得
為3642,此時
在
上的損失為0.20,
在
上的損失也是0.37,此時,訓(xùn)練出的參數(shù)
效果較差。
4.2數(shù)學(xué)表示與啟示
對于上述模型任務(wù),最好的結(jié)果是在
上的損失與
在
上山的差異足夠的小,即滿足式(3),
是一個很小的數(shù)。
公式(3)等價于,對于任意的h,h在上的損失與h在
的損失差距均小于
。此時意味著,
數(shù)據(jù)集可以近似代表所有的數(shù)據(jù)集
。
可以通過數(shù)學(xué)理論來推導(dǎo)(4)式成立,(3)式必然成立。由于是任意h的其中一個,且
在
上的損失是最小的,因此,
在
上的損失小于
在
上的損失。再次代入公式(4),得
在
上的損失小于等于
在
上的損失,由此式(4)可以寫成式(5)的形式,式(3)得到證明。
綜上,訓(xùn)練深度學(xué)習(xí)模型的關(guān)鍵在于取得一個具有代表性的數(shù)據(jù)集,讓理想損失和真實損失足夠接近。
公式(3)表明如果是一個壞數(shù)據(jù)集,至少存在一個h使得h在
和h在
上的損失足夠的大。利用這一點可以計算得出隨機抽樣出
是一個壞數(shù)據(jù)集的概率。下圖中,每個點代表隨機抽取的訓(xùn)練樣本,橙色的點表示訓(xùn)練樣本為壞數(shù)據(jù)集,藍色的點表示隨機抽樣出的
是一個具有代表性的數(shù)據(jù)集。在橙色矩形框中的點,均可找到參數(shù)h1,使得h1在
上的損失和h1在
上的損失差距足夠大。類似的粉色矩形框中的點可以找到參數(shù)h2,綠色矩形框中的點可以找到參數(shù)h3。
?

?由此可知是一個壞的數(shù)據(jù)集的概率為所有參數(shù)h導(dǎo)致壞數(shù)據(jù)集概率的連積,該式的上界為所有h導(dǎo)致壞數(shù)據(jù)集的概率之和,見式(6)。
由于是個壞數(shù)據(jù)集時,至少存在一個h滿足公式(7),且此時
是來自
的樣本,計算的損失是錯誤率在0至1之間。因此式(7)滿足霍特林不等式(Hoeffding’s Inequality),其中N為訓(xùn)練集樣本的數(shù)量。
由(8)式,易知式(6)轉(zhuǎn)換為式(9)。由式(9)可知是個壞數(shù)據(jù)集的概率上界取決于參數(shù)h的個數(shù)和訓(xùn)練集樣本量個數(shù)N。如果期望抽樣到壞數(shù)據(jù)集的概率變小,就要減少參數(shù)h的個數(shù)或者增加訓(xùn)練樣本量的個數(shù)N。
如下圖所示,實驗結(jié)果表明,當增加訓(xùn)練集樣本量的個數(shù),減小參數(shù)的范圍,能夠明顯增加藍色的點,即增加選擇好的訓(xùn)練集的概率。

?

?綜合以上分析可知,當面臨深度學(xué)習(xí)任務(wù)時,往往期望“理想”和“現(xiàn)實”的距離越接近越好,即保證δ越小越好??梢酝ㄟ^增大樣本量或者降低模型的復(fù)雜度兩種方式來減小δ的數(shù)量,然而,在現(xiàn)實的任務(wù)和落地場景中,往往要獲取更多的樣本需要付出昂貴的成本和代價,因此,相對成本較低的方式就是降低模型的復(fù)雜度。如果降低模型的復(fù)雜度,意味著理想的損失函數(shù)會變得更大,這就導(dǎo)致了一個“糟糕”的理想,即使現(xiàn)實的損失函數(shù)與理想的損失函數(shù)再接近,也是沒有意義的。因此,深度學(xué)習(xí)工程師往往陷入兩難的處境,在樣本量與模型的復(fù)雜度上進行選擇和折中。

?