Mengapa penting untuk memasukkan istilah koreksi bias untuk optimizer Adam untuk Pembelajaran Jauh?

15

Saya membaca tentang pengoptimal Adam untuk Deep Learning dan menemukan kalimat berikut dalam buku baru Deep Learning oleh Begnio, Goodfellow dan Courtville:

Adam menyertakan koreksi bias pada estimasi momen momen orde pertama (istilah momentum) dan momen orde kedua (tanpa fokus) untuk memperhitungkan inisialisasi mereka di titik asal.

tampaknya alasan utama untuk memasukkan ketentuan koreksi bias ini adalah karena entah bagaimana ia menghapus bias inisialisasi dan .mt=0vt=0

  • Saya tidak 100% yakin apa artinya tetapi bagi saya itu mungkin berarti bahwa momen ke-1 dan ke-2 mulai dari nol dan entah bagaimana memulainya dari nol, miringkan nilai yang mendekati nol dengan cara yang tidak adil (atau berguna) untuk pelatihan ?
  • Padahal saya ingin tahu apa artinya lebih tepatnya dan bagaimana hal itu merusak pembelajaran. Secara khusus, keunggulan apa yang dimiliki un-biasing dari optimizer dalam hal optimasi?
  • Bagaimana ini membantu melatih model pembelajaran yang mendalam?
  • Juga, apa artinya bila tidak bias? Saya tahu apa arti standar deviasi yang tidak bias tetapi bagi saya tidak jelas apa artinya dalam konteks ini.
  • Apakah koreksi bias benar-benar masalah besar atau apakah ada sesuatu yang overhyped dalam makalah optimizer Adam?

Hanya agar orang tahu saya sudah berusaha sangat keras untuk memahami kertas asli tetapi saya sudah sangat sedikit dari membaca dan membaca kembali kertas asli. Saya berasumsi beberapa dari pertanyaan ini mungkin dijawab di sana tetapi saya tidak bisa menguraikan jawabannya.

Charlie Parker
sumber
2
Tautan: arxiv.org/pdf/1412.6980v8.pdf Estimasi gradien momen ke-1 dan ke-2 diperbarui melalui moving average, dan dimulai dengan kedua estimasi menjadi nol, maka nilai-nilai awal yang nilai sebenarnya bukan nol, akan membiaskan hasil , karena perkiraan awal nol hanya secara bertahap mati. Yang tidak saya mengerti adalah mengapa gradien pada titik awal tidak digunakan untuk nilai awal dari hal-hal ini, dan kemudian pembaruan parameter pertama. Maka tidak akan ada kontaminasi oleh nilai nol awal, yang harus dibatalkan. Jadi tidak perlu untuk koreksi bias.
Mark L. Stone
1
Jadi tampaknya daripada memiliki kode khusus untuk iterasi awal, penulis telah memutuskan untuk melakukan hal yang setara secara matematis dengan memperkenalkan apa yang akan menjadi bias, dan kemudian membatalkannya. Ini menambahkan perhitungan yang tidak perlu, meskipun cepat, pada semua iterasi. Namun, mereka mempertahankan kemurnian kode yang terlihat sama di semua iterasi. Saya akan mulai dengan evaluasi gradien pertama sebagai gantinya, dan rumus pembaruan momen gradien hanya dimulai pada iterasi ke-2.
Mark L. Stone
@ MarkL. Batu para penulis menekankan begitu banyak koreksi bias sehingga menurut saya itulah yang baru atau penting dalam makalah mereka. Jadi mereka bisa saja tidak "mengoreksi bias" dan memiliki algoritma yang sama? Jika itu benar saya gagal untuk melihat mengapa adam adalah pengoptimal yang begitu penting atau apa masalahnya. Saya selalu berpikir itu adalah koreksi bias.
Charlie Parker
4
Mereka memperkenalkan bias dan kemudian memperbaikinya, tanpa alasan yang jelas bagi saya. Ini seperti mengalikan dengan 2 (oh my, hasilnya bias), dan kemudian membaginya dengan 2 untuk "memperbaiki" itu. Semuanya dengan pengenalan bias dan penghapusan sepertinya tontonan yang tidak perlu. Mungkin kertasnya tidak cukup panjang tanpa melakukannya, jadi mereka menambahkan spiel ini untuk membuatnya lebih lama :) Adam mungkin memiliki kelebihan, tetapi mereka akan melakukan hal yang sama seperti yang saya usulkan. Saya ingin penulis datang ke sini dan menjelaskannya. Mungkin saya kehilangan beberapa poin yang tidak jelas atau salah paham tentang sesuatu.
Mark L. Stone

Jawaban:

16

Masalahnya TIDAK mengoreksi bias
Menurut kertas

Dalam hal gradien jarang, untuk estimasi yang dapat diandalkan saat kedua seseorang perlu rata-rata lebih banyak gradien dengan memilih nilai β2 yang kecil; Namun justru ini kasus β2 kecil di mana kurangnya koreksi bias inisialisasi akan menyebabkan langkah-langkah awal yang jauh lebih besar.

masukkan deskripsi gambar di sini

β2β1β2=0.999β1=0.91β2=0.0011β1=0.1

m1=0.1gtv1=0.001gt2m1/(v1+ϵ)

m1^=g1v1^=g12mt^/(vt^+ϵ)β1β2


m0mt=βmt1+(1β)gtm0

m1=βm0+(1β)gtβm0m1(1β)m1^=(m1βm0)/(1β)m0=0mt^=mt/(1βt)


Seperti Mark L. Stone telah berkomentar dengan baik

Ini seperti mengalikan dengan 2 (oh my, hasilnya bias), dan kemudian membaginya dengan 2 untuk "memperbaiki" itu.

Entah bagaimana ini tidak persis setara dengan

gradien pada titik awal digunakan untuk nilai awal dari hal-hal ini, dan kemudian pembaruan parameter pertama

(tentu saja dapat diubah menjadi bentuk yang sama dengan mengubah aturan pembaruan (lihat pembaruan jawabannya), dan saya percaya baris ini terutama bertujuan menunjukkan perlunya memperkenalkan bias, tetapi mungkin ada baiknya memperhatikan perbedaannya)

Misalnya, momen pertama dikoreksi pada waktu 2

m2^=β(1β)g1+(1β)g21β2=βg1+g2β+1

g1

m2=βg1+(1β)g2
g1

Apakah koreksi bias benar-benar masalah besar
Karena hanya benar-benar memengaruhi beberapa langkah pertama pelatihan, tampaknya bukan masalah yang sangat besar, dalam banyak kerangka kerja populer (misalnya keras , caffe ) hanya estimasi bias yang diterapkan.

ϵ


m^t

m^t=βt1g1+βt2g2+...+gtβt1+βt2+...+1

m1g1

mtβmt+gt
m^t(1β)mt1βt

Oleh karena itu dapat dilakukan tanpa memperkenalkan istilah bias dan memperbaikinya. Saya pikir makalah ini meletakkannya dalam bentuk koreksi bias untuk kenyamanan membandingkan dengan algoritma lain (misalnya RmsProp).

dontloo
sumber
1
Apakah Anda setuju dengan komentar kedua saya pada pertanyaan? Bagi saya, itulah intinya. Hal tentang mengalikan dan membagi dengan 2 seharusnya menjadi analogi yang "lebih mudah dipahami", bukan matematika yang digunakan dalam soal yang ada. jika ada makalah lain, yang saya belum melihat, yang memperkenalkan bias dengan mekanisme yang sama, yang dalam kasus ADAM tampaknya sepenuhnya dapat dihindari, tetapi tidak memperbaikinya, maka itu hanya benar-benar bodoh (kecuali entah bagaimana bias membantu kinerja algoritma).
Mark L. Stone
@ MarkL. Batu ya! sebenarnya saya membatalkannya, maaf tentang bahasa Inggris saya. dan saya pikir algoritma yang tidak memperbaiki bias adalah rmsprop, tetapi tidak seperti adam rmsprop berfungsi dengan baik dengan bias.
dontloo
@dontloo apakah jawaban Anda menanggapi komentar Mark L. Stone tentang mengapa koreksi bias tampak berlebihan? (Yang saya pikir cukup penting, mungkin bahkan lebih dari parafrase perkataan makalah aslinya).
Charlie Parker
@CharlieParker maksud Anda mengapa koreksi bias berlebihan atau mengapa penulis membuatnya tampak berlebihan?
dontloo
@dontloo Saya tidak berpikir penulis membuatnya berlebihan. Saya pikir mereka memang membutuhkannya (mengingat kondisi khusus mereka). Namun, saya pikir itu tidak perlu diberikan saran Markus. Saya kira pertanyaan saya di bagian komentar saat ini adalah apakah mereka benar-benar membutuhkan istilah koreksi.
Charlie Parker