Dropout也能自動化了,谷歌Quoc Le等人利用強化學習自動找尋模型…


Dropout也能自動化了,谷歌Quoc Le等人利用強化學習自動找尋模型…

2021-01-11 澎湃新聞

機器之心報導

作者:魔王、杜偉

人工智慧「我訓練我自己」系列又有了新進展。

在機器學習領域裡,Dropout 是一個較爲重要的方法,其可以暫時丟棄一部分神經元及其連接,進而防止過擬合,同時指數級、高效地連接不同網絡架構。

2012 年,Hinton 等人在論文《Improving neural networks by preventing co-adaptation of feature detectors》中首次提出 Dropout 技術。在這之後,Dropout 的變體大量湧現,該方法也成爲機器學習研究者常用的訓練技巧。

我們知道,機器學習可以讓很多人們的工作自動化,而機器學習本身的自動化程度也在不斷提高。近日,卡內基梅隆大學在讀博士 Hieu Pham、谷歌大腦研究科學家 Quoc V. Le 提出了一種自動學習 Dropout 的方法。研究者稱,通過強化學習來學習 Dropout 的規律,AutoDropout 可以提高圖像識別、語言理解和機器翻譯的性能。

該研究已被人工智慧頂會 AAAI-2021 接收。

dropout 方法的利與弊

現代神經網絡常常過參數化,因而需要適當的正則化來避免過擬合現象。Dropout 是一種常見的正則化方法,該方法從網絡的一些中間層中隨機選擇神經元,並將這些神經元的值替換爲零。換言之,這些神經元被從當前訓練步中丟棄。近來更多的研究表明,爲丟棄的神經元施加某些結構要比隨機均勻丟棄神經元帶來更顯著的性能提升。但在實踐中,dropout 模式爲適應不同的應用需要進行調整變化。

例如在文本領域,Zaremba 等人(2014)認爲,對於多層 LSTM 而言,僅丟棄垂直連接中的神經元要好於丟棄任何位置的神經元。之後,Gal 和 Ghahramani(2016b)提出了 Variational Dropout,他們丟棄了網絡中任何位置的神經元,但在時間維度上共享了同一個 dropout 模式。然而,當前 Transformer 架構未使用這兩種方法,僅使用了原版 Dropout。LSTM 和 Transformer 在如何實現 Dropout 方面的差異表明,dropout 模式需要根據 NLP 中不同的模型架構進行調整。

在圖像領域,原版 Dropout 通常僅應用於卷積神經網絡(ConvNet)中的全連接層,其他卷積層往往需要特定結構的 dropout 神經元。例如,Stochastic Depth 丟棄殘差網絡中的整個殘差分支,DropPath 丟棄多分支卷積單元中的整個分支。Ghiasi 等人(2018)提出的 DropBlock 丟棄卷積層中的相鄰神經元方塊(按塊丟棄)。雖然 DropBlock 在 ResNet-50 和 AmoebaNet 架構中表現良好,但它並未被證實在 EfficientNet 和 EfficientDet 等更近期架構中實現成功應用。所以,ConvNet 架構使用 dropout 模式的差異也表明需要針對不同架構進行專門調整。

谷歌:用自動化方式尋找 dropout 模式

最近,來自谷歌大腦的兩位研究者通過研究以往工作中的 dropout 模式,發現這些模式不僅難以設計,而且還需要針對每個模型架構、任務和域進行專門調整。

爲了解決這些難題,研究者提出了 AutoDropout,它可以實現專用 dropout 模式設計過程的自動化。AutoDropout 的主要貢獻是一個新穎的結構化 dropout 模式搜索空間。在這個搜索空間中,人們可以爲每個模型架構和任務找到適合的 dropout 模式。此外,該搜索空間還泛化了很多現有的 dropout 模式。

文章合併:https://arxiv.org/pdf/2101.01761.pdf

下圖 1 展示了 AutoDropout 搜索空間中的一種 dropout 模式,該模式通過對鄰近區域鋪展並進行幾何轉換而生成。得到的 dropout 模式可應用於卷積輸出通道(圖像識別模型中的常見構建塊)。

AutoDropout 的實現包括一個通過強化學習(RL)進行訓練的控制器。RL 的獎勵是將 dropout 模式應用於目標網絡後在感興趣數據集上的驗證性能。研究者設計了一種基於分布式 RL 的搜索算法,從而最大程度地利用任意計算節點集羣上的所有可用機器。

實驗結果表明,AutoDropout 找到的 dropout 模式能夠顯著提升常見 ConvNet 和 Transformer 架構的性能。在 ImageNet 數據集上,AutoDropout 將 ResNet-50 的 top-1 準確率從 76.5% 提升至 78.7%,EfficientNet-B7 的性能則從 84.1% 提升至 84.7%。在 CIFAR-10-4000 的半監督設置下,AutoDropout 也將 Wide-ResNet-28-2 的準確率從 94.9% 提升至 95.8%。對於語言建模任務而言,AutoDropout 將 Transformer-XL 在 Penn Treebank 數據集上的困惑度從 56.0 降至 54.9。

此外,在 IWSLT 14 數據集上執行德英翻譯任務時,AutoDropout 發現的 dropout 模式將 Transformer 的 BLEU 值從 34.4 提升至 35.8,實現了該數據集上的新 SOTA。在 WMT 2014 英法翻譯任務上,使用遷移 dropout 模式後的 BLEU 值也比使用原版 Dropout 的 Transformer 模型提升了 1.9。

雖然 AutoDropout 的搜索成本很高,但它具有一個簡單用例,即像使用 AutoAugment 策略來提升 SOTA 模型一樣,AutoDropout 發現的 dropout 模式可以被應用到現有 pipeline 中。

方法詳解

和之前的很多研究一樣,該研究也使用逐元素乘法掩碼在搜索空間中表示 dropout 模式。爲了彌補訓練和推斷之間的差距(訓練時使用掩碼,推斷時則不使用),研究者在訓練期間將未被丟棄神經元的值進行了恰當地縮放。具體而言,爲了在神經網絡層 h 應用 dropout 模式,研究者隨機生成二進位掩碼 m(其形狀與 h 相同),然後縮放掩碼 m 中的值,並替換 h:

研究者表示,該研究提出的方法是通用的,能夠很好地用於 ConvNet 和 Transformer。接下來就來看該方法用於 ConvNet 時的搜索空間,以及如何泛化至 Transformer。

ConvNet 中的 dropout 模式搜索空間

搜索空間中的基本模式是連續矩形(contiguous rectangle)。然後將矩形鋪展開得到 dropout 模式。對於 ConvNet,定義基礎矩形的超參數是高和寬的大小(size),定義鋪展的超參數是步幅(stride)和重複次數(repeat),示例參見下圖 2。如果有 C 個通道,則可以採樣 C 個單獨的 dropout 模式,或者僅採樣一個 dropout 模式,然後將其沿著特徵維度共享。

那麼要在哪裡應用 dropout 模式呢?

該研究選擇對批歸一化層的輸出應用 dropout 模式,因爲他們在實驗中發現,在網絡的其他位置應用 dropout 模式通常會導致搜索過程出現不穩定訓練。如果 ConvNet 中存在需要正則化的殘差連接,則可以選擇是否對殘差分支應用 dropout 模式。研究者決定將這一決策交給控制器。下圖 7 展示了在 ConvNet 中,研究者在批歸一化層之後應用 dropout 模式:

控制器模型和搜索算法

研究者使用 Transformer 網絡對控制器進行參數化,參見下圖 3:

Transformer 中的 dropout 模式搜索空間

Transformer 模型中的中間層通常有三個維度 (N, T, C),其中 N 和 C 是批歸一化和通道維度(與 ConvNet 類似),T 表示 token 數,如單詞或子詞單元。維度 T 的 dropout 模式通過生成四個超參數來實現:size、stride、share_t 和 share_c。size 表示 dropout 模式影響的 token 數;stride 表示 dropout 模式跳過的 token 數;share_t 表示使用相同的噪聲掩碼或單獨的噪聲掩碼,size 覆蓋的所有 token 是否設置爲 0;share_c 表示 dropout 模式是否沿著通道維度 C 共享。一旦這四個參數確定了,我們就可以在每一個訓練步上採樣起始位置,進而應用得到的 dropout 模式。研究者一直重複該模式直到序列結束。下圖 4 展示了控制器從搜索空間中採樣的 dropout 模式,以及如何將其應用於詞序列:

至於在哪裡應用 dropout 模式,研究者發現搜索空間中的 dropout 模式可以靈活應用於一個 Transformer 層內的多個子層,於是他們對每個子層分別應用一個 dropout 模式。下圖 8 展示了在 Transformer 模型中可以應用 dropout 模式的所有位置:

實驗

在實驗部分,研究者將 AutoDropout 應用到了 ConvNet 和 Transformer 架構中。對於 ConvNet,研究者分別進行了監督和半監督圖像分類實驗。對於 Transformer,他們進行了語言模型和機器翻譯應用實驗。最後,研究者還將本研究的搜索方法與隨機搜索進行了對比。

使用 ConvNet 的監督圖像分類

下表 1 展示了在 CIFAR-10 和 ImageNet 數據集上,在 ResNet 和 EfficientNet 模型中使用 DropBlock、Stochastic Depth 與 AutoDropout 的對照實驗結果。

在 CIFAR-10 數據集上,WRN-28-10 模型使用 AutoDropout 得到的準確率比使用 DropBlock 高出 0.6%,相當於誤差減少了 16%。需要注意的是,在該數據集上,與未使用任何正則化的模型相比,DropBlock 並沒有出現顯著提升,這表明丟棄鄰近區域塊的想法存在不足。

在 ImageNet 數據集上,與 DropBlock 相比,AutoDropout 將 ResNet-50 的 top-1 準確率提升了 0.4%,將所有 EfficientNet 模型的準確率平均提升了 0.7%。提升程度要高於 DropBlock 在 AmoebaNet 中提升的 0.5%,而且 EfficientNet 基線的準確率要高於 AmoebaNet。

接著,研究者通過結合 AutoDropout 與其他數據增強方法,突破了 WRN28-10 和 ResNet-5 的極限。如下表 2 所示,AutoDropout+RandAugment 在 CIFAR-10 和 ImageNet 數據集上優於現有 SOTA 結果。

使用 ConvNet 的半監督圖像分類

研究者將 AutoDropout 應用於無監督數據增強 (UDA)。如表 3 所示,AutoDropout 找到的 dropout 模式使 UDA 在 CIFAR-10 數據集上的性能提升了 0.9%,在 ImageNet 上的 Top-1 準確率提升了 4.1%。

語言模型與機器翻譯

研究者將 AutoDropout 應用於 Transformer 模型,結果參見下表 4。從中可以看出,使用 AutoDropout 後模型在 PTB 上獲得了最低困惑度。他們還與 Transformer-XL 使用的 Variational Dropout 進行了對比,發現使用 AutoDropout 後困惑度比使用 Variational Dropout 低了 1.1,性能提升顯著。

與隨機搜索的對比

在下圖 5 中,研究者繪製了這兩種方法的當前最優性能,並觀察了 AutoDropout 和隨機搜索之間的實質差異。具體來說,在 CIFAR-10 數據集上,AutoDropout 找到的最佳 dropout 模式要比隨機搜索準確率高 0.2%。

©完

轉載請聯繫本公衆號獲得授權

投稿或尋求報導:[email protected]

原標題:《Dropout也能自動化了,谷歌Quoc Le等人利用強化學習自動找尋模型專用Dropout》

閱讀原文