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