Apakah Jaringan Sisa terkait dengan Peningkatan Gradien?

11

Baru-baru ini, kami melihat kemunculan Residual Neural Net, di mana, setiap lapisan terdiri dari modul komputasi dan koneksi pintasan yang mempertahankan input ke lapisan seperti output dari pameran lapisan ke-i: Jaringan memungkinkan untuk mengekstraksi fitur residu dan memungkinkan untuk kedalaman yang lebih dalam sambil lebih kuat terhadap masalah gradien menghilang, mencapai kinerja canggih.ci

yi+1=ci+yi

Setelah mempelajari gradien boosting , teknik ansambel yang sangat kuat dalam dunia pembelajaran mesin, yang juga tampaknya melakukan bentuk optimasi gradien pada sisa kerugian, Sulit untuk tidak melihat beberapa bentuk kesamaan.

Saya tahu bahwa mereka serupa tetapi tidak sama - satu perbedaan utama yang saya perhatikan adalah bahwa meningkatkan gradien melakukan optimasi pada istilah aditif sementara net residual, mengoptimalkan seluruh jaringan.

Saya tidak melihat He et al mencatat ini sebagai bagian dari motivasi mereka dalam makalah asli mereka . Jadi saya bertanya-tanya apa wawasan Anda tentang topik ini dan meminta Anda membagikan sumber daya menarik yang Anda miliki.

Terima kasih.

radar
sumber

Jawaban:

7

Berpotensi makalah yang lebih baru yang mencoba untuk mengatasinya lebih banyak dari tim Langford dan Shapire: Mempelajari Blok Deep ResNet secara Berurutan menggunakan Teori Peningkat

Bagian yang menarik adalah (Lihat bagian 3):

Perbedaan utama adalah bahwa meningkatkan adalah ensemble dari estimasi hipotesis sedangkan ResNet adalah ensemble dari perwakilan fitur yang diestimasi . Untuk mengatasi masalah ini, kami memperkenalkan classifier linier bantu di atas setiap blok residual untuk membangun modul hipotesis . Secara formal modul hipotesis didefinisikan sebagait=0Tft(gt(x))wt

ot(x):=wtTgt(x)R

...

(di mana)ot(x)=t=0t1wtTft(gt(x))

Makalah ini jauh lebih detail seputar konstruksi classifier modul lemah dan bagaimana hal tersebut terintegrasi dengan algoritma BoostResNet mereka .ht(x)


Menambahkan sedikit lebih detail pada jawaban ini, semua algoritma peningkatan dapat ditulis dalam beberapa bentuk [1] (p 5, 180, 185 ...):

FT(x):=t=0Tαtht(x)

Di mana adalah hipotesis lemah , untuk beberapa pilihan . Perhatikan bahwa algoritma peningkatan yang berbeda akan menghasilkan dan dengan cara yang berbeda.httthαtαtht

Misalnya AdaBoost [1] (hal 5.) menggunakan untuk meminimalkan kesalahan tertimbang denganhtϵtαt=12log1ϵtϵt

Di sisi lain, dalam pengaturan peningkatan gradien [1] (p 190.), dipilih yang memaksimalkan , dan dipilih (sebagai tingkat pembelajaran dll)htL(Ft1(x))htαt>0

Sedangkan seperti pada [2] dalam Lemma 3.2, ditunjukkan bahwa output kedalaman- ResNet adalah yang setara denganTF(x)

F(x)t=0Tht(x)

ini melengkapi hubungan antara boosting dan resnet. Makalah [2] mengusulkan menambahkan lapisan linier bantu untuk memasukkannya ke dalam bentuk , yang mengarah ke algoritma BoostResNet mereka dan beberapa diskusi seputar ituFT(x):=t=0Tαtht(x)

[1] Robert E. Schapire dan Yoav Freund. 2012. Meningkatkan: Yayasan dan Algoritma. MIT Press. p 5, 180, 189
[2] Furong Huang, Jordan Ash, John Langford, Robert Schapire: Mempelajari Blok ResNet Dalam Secara Berurutan menggunakan Teori Peningkat, ICML 2018

chappers
sumber
4

Menjawab pertanyaan saya sendiri: Saya telah menemukan sebuah makalah terkenal yang menyelidiki dan membuktikan bahwa Deep Residual Networks memang merupakan ensemble dari jaringan dangkal.

EDIT LAIN, setelah memahami masalah ini lebih lanjut: Saya melihat Resnets sebagai cara untuk belajar 'Fitur Boosting'. Koneksi residual melakukan peningkatan tetapi tidak pada tujuan tetapi sebenarnya pada fitur output dari lapisan berikutnya. Jadi mereka sebenarnya terhubung, tetapi tidak meningkatkan gradien klasik, tetapi pada kenyataannya, 'Gradient Feature Boosting'.

radar
sumber