AI系統(tǒng)的建立必須估計算法的泛化能力
在新數(shù)據(jù)中,深度學(xué)習(xí)系統(tǒng)執(zhí)行(泛化)能力如何?其性能如何?要想建立AI系統(tǒng)的信賴度和可靠性,必須估計算法的泛化能力。我們能信任AI嗎?AI是否會像人類酗酒一樣毫無顧忌?一但AI啟動,是否會毀滅世界?AI系統(tǒng)必須安全可靠,一旦啟動AI,算法才能按預(yù)期執(zhí)行。確保AI算法性能良好是提高其采用度和信任度的必由之路 [5]。
此外,決策人在歐盟委員會發(fā)布的《可信賴AI的倫理準(zhǔn)則》(《ETHICS GUIDELINES FOR TRUSTWORTHY AI》)中明確規(guī)定要了解算法的泛化能力。
然而,模型泛化性(泛化理論)研究領(lǐng)域依然投資不足。目前唯一可繼續(xù)且可行的標(biāo)準(zhǔn)方法是進(jìn)行數(shù)據(jù)拆分、驗證集和測試集。然而,盡管在無法量化算法的泛化能力時,在測試(留出)集上進(jìn)行估計不失明智;但這一過程非常棘手,可能發(fā)生數(shù)據(jù)泄漏的風(fēng)險,需要另外進(jìn)行獨立性假設(shè)(獨立性驗證的參數(shù)單獨從留出集中選出),但會與p-hacking 等實踐所混淆[20]。
數(shù)據(jù)是由潛在的未知分布D生成的,這是上述工作的關(guān)鍵性假設(shè)。統(tǒng)計學(xué)習(xí)并非直接訪問分布,而是假定給出了訓(xùn)練樣本S,其中S的每個元素均由D生成,并呈獨立同分布。學(xué)習(xí)算法從函數(shù)空間(假設(shè)類)H中選擇函數(shù)(假設(shè)h),其中H = {f(x,α)},α是參數(shù)向量。
于是,假設(shè)h的泛化誤差可定義為:從分布D中選取的樣本x的預(yù)期誤差與經(jīng)驗損失(給定樣本S上的損失)之間的差值 [4,11]。我們的任務(wù)是給泛化錯誤設(shè)定上限,看究竟會出現(xiàn)多么嚴(yán)重的泛化錯誤。
傳統(tǒng)泛化理論中,根據(jù)假設(shè)類H的復(fù)雜度(容量)建立泛化能力模型。簡單來說,類的“容量”取決于可以在這個類上擬合良好的數(shù)據(jù)集的數(shù)量。類的容量越大,這個類就越靈活,但也越容易過度擬合。[..]容量控制使用的是更加靈活的模型,以獲得良好擬合,那些非常靈活但過度擬合的模型則棄之不用。如何界定假設(shè)類H的復(fù)雜性?傳統(tǒng)泛化理論概念包括VC維、Rademacher復(fù)雜度和PAC-Bayes邊界。
VC(Vapnik-Chervonenkis)維是一種通過評估函數(shù)彎曲程度來衡量函數(shù)類的復(fù)雜度的一種方式,H類的VC維即可以被H打散的最大樣本點數(shù)目。如果一組樣本點都能被函數(shù)打散,無論為一組內(nèi)所有樣本點分配什么樣的二進(jìn)制標(biāo)簽,該類樣本都可以將其完美分離。
Zhang等人的實驗[7]表明,在現(xiàn)實數(shù)據(jù)中訓(xùn)練的深網(wǎng)真實的“參數(shù)復(fù)雜度”目前無人知曉,20多年前巴特利特(Bartlett)的VC計算(#節(jié)點數(shù)*#層)只是一個粗略設(shè)定的上限[ 2]。死亡神經(jīng)元的實驗數(shù)據(jù)表明,當(dāng)網(wǎng)絡(luò)足夠大,并使用非線性激活函數(shù)ReLU時,許多權(quán)重為零,這一點可能不足為奇。
PAC(可能近似正確)可學(xué)習(xí)性的定義很簡單,即存在一種算法,對于每個分布D和,δ> 0,找到具有概率1-δ的“-最優(yōu)”假設(shè)。每個分布都有一個算法的呼聲十分強烈,即Rademacher復(fù)雜度反而針對特定但未知的分布D而定義。簡而言之,Rademacher復(fù)雜度衡量假設(shè)類H的能力,以適應(yīng)隨機±1二進(jìn)制標(biāo)簽。與VC維相比,Rademacher復(fù)雜度取決于分布,可用于任何類別的實值函數(shù)(不僅是離散值函數(shù))。
正如Bartlett的VC維計算,Rademacher復(fù)雜度缺乏有效的深度學(xué)習(xí)泛化界限。事實上,實驗測試表明,許多神經(jīng)網(wǎng)絡(luò)用任意標(biāo)簽完美擬合訓(xùn)練集,于是,我們也希望相應(yīng)模型H的Rademacher復(fù)雜度臻于完美。當(dāng)然,這只是Rademacher復(fù)雜度的一個微不足道的上限,在現(xiàn)實環(huán)境中得不到有用的泛化界限[7]。
換句話說,理論研究尚未取得有效成果,只能從“煉金術(shù)”或一些最佳實踐中尋找解決辦法。有實踐表明:對Rademacher這種復(fù)雜學(xué)習(xí)架構(gòu)來說,能夠真正降低其復(fù)雜度的唯一方法是使用訓(xùn)練分類器,并通過留出集檢測缺少的泛化。世界上每一位從業(yè)者其實無意中已經(jīng)做到了這一點。張等人的研究([7])得出的結(jié)論目前在該領(lǐng)域無人超越,獲得了認(rèn)同。
與之相關(guān)的另一個容量測量是網(wǎng)絡(luò)的利普希茨常數(shù)。利普希茨常數(shù)是權(quán)值矩陣的譜范數(shù)的乘積。譜范數(shù)是矩陣的最大奇異值:矩陣可以拉伸一個向量[9]。利普希茨常數(shù)與超額風(fēng)險相關(guān)(測試誤差減去訓(xùn)練誤差)。然而,盡管風(fēng)險過高,但這一度量隨著時間的推移而增長[4];其增長可以通過利普希茨常數(shù)的間距抵消掉,重復(fù)抵消可使增長歸一化(見圖4)
泛化的基本定理表明,如果訓(xùn)練集具有m個樣本,那么定義為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)誤差間差異的泛化誤差是sqrt(N'/ m)的量級,其中N'是網(wǎng)絡(luò)有效參數(shù)的數(shù)量 [或復(fù)雜度度量] [23,24]。采用具有N個可訓(xùn)練參數(shù)的矩陣C,并嘗試將其壓縮為另一個具有較少參數(shù)(N'')的C'和與C大致相同的訓(xùn)練誤差。根據(jù)泛化基本定理,只要訓(xùn)練樣本的數(shù)量超過N'',那么C'(壓縮網(wǎng)?。┚湍苓M(jìn)行良好的泛化[23,24]。
除了“彩票票據(jù)方法”之外,還有很多其他有趣的網(wǎng)絡(luò)壓縮方法。其中一個非常有吸引力的想法受到了TensorNetworks的啟發(fā):“Tensor Train”的概念顯示了DNN全連接層的權(quán)值矩陣,顯示出已經(jīng)很有希望的實證結(jié)果[17]。盡管這種壓縮通常需要重新訓(xùn)練壓縮網(wǎng)絡(luò),但[25]提供了對網(wǎng)絡(luò)壓縮方法的調(diào)查,這是基于[23,24]提供的基本定理和壓縮的泛化理論的方法所沒有考慮到的地方。