隨著我們設(shè)計越來越深的網(wǎng)絡(luò),了解添加層如何增加網(wǎng)絡(luò)的復(fù)雜性和表現(xiàn)力變得勢在必行。更重要的是設(shè)計網(wǎng)絡(luò)的能力,其中添加層使網(wǎng)絡(luò)嚴格更具表現(xiàn)力而不僅僅是不同。為了取得一些進展,我們需要一點數(shù)學(xué)知識。
import torch
from torch import nn
from torch.nn import functional as F
from d2l import torch as d2l
import tensorflow as tf
from d2l import tensorflow as d2l
8.6.1. 函數(shù)類
考慮F,特定網(wǎng)絡(luò)架構(gòu)(連同學(xué)習(xí)率和其他超參數(shù)設(shè)置)可以達到的功能類別。也就是說,對于所有 f∈F存在一些參數(shù)集(例如,權(quán)重和偏差),可以通過在合適的數(shù)據(jù)集上進行訓(xùn)練來獲得。讓我們假設(shè)f?是我們真正想要找到的“真實”功能。如果它在F,我們的狀態(tài)很好,但通常我們不會那么幸運。相反,我們將嘗試找到一些fF?這是我們最好的選擇 F. 例如,給定一個具有特征的數(shù)據(jù)集 X和標(biāo)簽y,我們可以嘗試通過解決以下優(yōu)化問題來找到它:
我們知道正則化 (Morozov,1984 年,Tikhonov 和 Arsenin,1977 年)可以控制復(fù)雜度F并實現(xiàn)一致性,因此更大的訓(xùn)練數(shù)據(jù)通常會帶來更好的效果fF?. 唯一合理的假設(shè)是,如果我們設(shè)計一個不同的、更強大的架構(gòu)F′我們應(yīng)該取得更好的結(jié)果。換句話說,我們期望fF′? 比“更好”fF?. 然而,如果 F?F′甚至不能保證這會發(fā)生。實際上,fF′?可能會更糟。如圖 8.6.1所示,對于非嵌套函數(shù)類,較大的函數(shù)類并不總是向“真實”函數(shù)靠攏f?. 例如,在圖 8.6.1的左側(cè),雖然F3更接近f?比F1,F6 遠離并且不能保證進一步增加復(fù)雜性可以減少距離f?. 對于嵌套函數(shù)類,其中 F1?…?F6在圖 8.6.1右側(cè),我們可以從非嵌套函數(shù)類中避免上述問題。
因此,只有當(dāng)較大的函數(shù)類包含較小的函數(shù)類時,我們才能保證增加它們會嚴格增加網(wǎng)絡(luò)的表達能力。對于深度神經(jīng)網(wǎng)絡(luò),如果我們可以將新添加的層訓(xùn)練成恒等函數(shù) f(x)=x,新模型將與原始模型一樣有效。由于新模型可能會得到更好的解決方案來擬合訓(xùn)練數(shù)據(jù)集,因此添加的層可能更容易減少訓(xùn)練錯誤。
這是He等人提出的問題。( 2016 )在處理非常深的計算機視覺模型時考慮。他們提出的殘差網(wǎng)絡(luò)( ResNet )的核心思想是,每個附加層都應(yīng)該更容易地包含身份函數(shù)作為其元素之一。這些考慮相當(dāng)深刻,但它們導(dǎo)致了一個非常簡單的解決方案,即殘差塊。憑借它,ResNet 在 2015 年贏得了 ImageNet 大規(guī)模視覺識別挑戰(zhàn)賽。該設(shè)計對如何構(gòu)建深度神經(jīng)網(wǎng)絡(luò)產(chǎn)生了深遠的影響。例如,殘差塊已添加到循環(huán)網(wǎng)絡(luò)中 (Kim等人,2017 年,普拉卡什等。, 2016 年)。同樣,Transformers (
評論
查看更多