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