Memahami matematika dari AdaGrad dan AdaDelta


8

Saya telah membangun beberapa model untuk sebuah proyek, tetapi saya tidak dapat membungkus kepala saya dengan matematika dari algoritma Adagrad dan Adadelta.

Saya mengerti bagaimana cara kerja gradient descent vanilla dan saya telah menulis kode untuk membuatnya bekerja dengan sukses.

Saya akan berterima kasih jika ada yang menjelaskan dua hal ini kepada saya atau menyediakan sumber daya untuk memahaminya.


1
Penjelasan yang bagus di quora.com/…
mico

Jawaban:


6

Berkenaan dengan sumber daya:



Berikut adalah beberapa kutipan utama dari ADADELTA: Metode Tingkat Pembelajaran Adaptif , bersama dengan beberapa contoh dan penjelasan singkat:

ADAGRAD

Aturan pembaruan untuk ADAGRAD adalah sebagai berikut:

Δxt=ητ=1tgτ2gt(5)
Di sini penyebut menghitung l2norma semua gradien sebelumnya atas dasar per-dimensi dan η adalah tingkat pembelajaran global yang dimiliki oleh semua dimensi.
Meskipun ada tingkat pembelajaran global yang disesuaikan dengan tangan, setiap dimensi memiliki tingkat dinamisnya sendiri.

Yaitu jika gradien dalam tiga langkah pertama adalah g1=(a1b1c1),g2=(a2b2c2),g3=(a3b3c3), kemudian:

Δx3=ητ=13gτ2g3=η(a12+a22+a32b12+b22+b32c12+c22+c32)(a3b3c3)Δx3=(ηa12+a22+a32a3ηb12+b22+b32b3ηc12+c22+c32c3)
Di sini lebih mudah untuk melihat bahwa setiap dimensi memiliki tingkat pembelajaran dinamisnya sendiri, seperti yang dijanjikan.

Masalah ADAGRAD yang coba dilawan oleh ADADELTA

Gagasan yang disajikan dalam makalah ini berasal dari ADAGRAD untuk memperbaiki dua kelemahan utama dari metode ini: 1) peluruhan tingkat pembelajaran terus menerus selama pelatihan, dan 2) kebutuhan untuk tingkat pembelajaran global yang dipilih secara manual.

Kelemahan kedua cukup jelas.

Berikut adalah contoh ketika kelemahan pertama adalah masalah:
Pertimbangkan kasus di mana nilai absolut dari setiap komponeng2jauh lebih besar dari nilai absolut dari masing-masing komponen gradien pada langkah lainnya.
Untuk apapunt>2, itu menyatakan bahwa setiap komponen τ=1tgτ2 lebih besar dari nilai absolut dari masing - masing komponen g2. Tetapi nilai absolut dari setiap komponeng2 jauh lebih besar dari nilai absolut dari masing - masing komponen gt, dan sebagainya Δxtsangat kecil.
Selain itu, seiring dengan kemajuan algoritma, semakin dekat ke minimum, sehingga gradien semakin kecil, dan seterusnyaΔxtmenjadi lebih kecil dan lebih kecil.
Jadi, mungkin saja algoritma tersebut hampir macet sebelum mencapai minimum.

ADADELTA

Alih-alih mempertimbangkan semua gradien yang dihitung, ADADELTA hanya mempertimbangkan yang terakhir w gradien.

Sejak menyimpan wgradien kuadrat sebelumnya tidak efisien, metode kami mengimplementasikan akumulasi ini sebagai rata-rata peluruhan gradien kuadrat secara eksponensial. Asumsikan tepat waktut rata-rata berjalan ini E[g2]t maka kami menghitung:

E[g2]t=ρE[g2]t1+(1ρ)gt2(8)
dimana ρadalah konstanta peluruhan [...]. Karena kami memerlukan akar kuadrat dari jumlah ini di pembaruan parameter, ini secara efektif menjadiRMS dari gradien kuadrat sebelumnya hingga waktu t:
RMS[g]t=E[g2]t+ϵ(9)
dimana konstan ϵ ditambahkan ke kondisi penyebut yang lebih baik

(RMSsingkatan dari Root Mean Square .)

Demikian pula:

E[Δx2]t1=ρE[Δx2]t2+(1ρ)Δxt12
RMS[Δx]t1=E[Δx2]t1+ϵ
Dan akhirnya:

[...] perkiraan Δxt dengan menghitung peluruhan secara eksponensial RMS di atas jendela ukuran w dari sebelumnya Δx untuk memberikan metode ADADELTA:

Δxt=RMS[Δx]t1RMS[g]tgt(14)
di mana konstan yang sama ϵ ditambahkan ke pembilang RMSdemikian juga. Konstanta ini berfungsi baik untuk memulai iterasi pertama di manaΔx0=0dan untuk memastikan kemajuan terus dilakukan bahkan jika pembaruan sebelumnya menjadi kecil.
[...]
Pembilang berfungsi sebagai istilah akselerasi, mengakumulasi gradien sebelumnya dalam rentang waktu [...]

Yaitu jika gradien dalam langkah r adalah gr=(arbrcr) dan Δxr=(irjrkr), kemudian:

Δxt=-RMS[Δx]t-1RMS[g]tgt=-E[Δx2]t-1+ϵE[g2]t+ϵgt=-ρE[Δx2]t-2+(1-ρ)Δxt-12+ϵρE[g2]t-1+(1-ρ)gt2+ϵgt=-ρ(ρE[Δx2]t-3+(1-ρ)Δxt-22)+(1-ρ)Δxt-12+ϵρ(ρE[g2]t-2+(1-ρ)gt-12)+(1-ρ)gt2+ϵgt=-ρ2E[Δx2]t-3+hal1(1-ρ)Δxt-22+hal0(1-ρ)Δxt-12+ϵρ2E[g2]t-2+hal1(1-ρ)gt-12+hal0(1-ρ)gt2+ϵgt=-ρt-1E[Δx2]0+r=1t-1ρt-1-r(1-ρ)Δxr2+ϵρt-1E[g2]1+r=2tρt-r(1-ρ)gr2+ϵgt

ρ adalah konstanta peluruhan, jadi kami memilihnya sedemikian rupa ρ(0,1) (khas ρ0,9).
Oleh karena itu, dikalikan dengan kekuatan tinggiρhasil dalam jumlah yang sangat kecil.
Membiarkanw menjadi eksponen terendah sehingga kami anggap produk mengalikan nilai waras dengan ρwdapat diabaikan.
Sekarang, kita bisa memperkirakanΔxt dengan menjatuhkan istilah yang diabaikan:

Δxt-r=t-wt-1ρt-1-r(1-ρ)Δxr2+ϵr=t+1-wtρt-r(1-ρ)gr2+ϵgt=-r=t-wt-1ρt-1-r(1-ρ)(sayar2jr2kr2)+ϵr=t+1-wtρt-r(1-ρ)(Sebuahr2br2cr2)+ϵ(Sebuahtbtct)Δxt-(r=t-wt-1ρt-1-r(1-ρ)sayar2+ϵr=t+1-wtρt-r(1-ρ)Sebuahr2+ϵSebuahtr=t-wt-1ρt-1-r(1-ρ)jr2+ϵr=t+1-wtρt-r(1-ρ)br2+ϵbtr=t-wt-1ρt-1-r(1-ρ)kr2+ϵr=t+1-wtρt-r(1-ρ)cr2+ϵct)

1

Dari quora Anda akan menemukan panduan yang lebih lengkap, tetapi ide utamanya adalah bahwa AdaGrad mencoba untuk menandai masalah ini dalam pemilihan tingkat gradien pembelajaran dalam pembelajaran mesin:

1 Pemilihan tingkat pembelajaran secara manual η.

2 Vektor gradien gt diskalakan secara seragam oleh tingkat pembelajaran skalar η.

3 Tingkat pembelajaran η tetap konstan selama proses pembelajaran.

Ini menyelesaikan masalah 2 dan 3 hanya dengan membagi setiap komponen gradien saat ini dengan norma L2 dari gradien yang diamati di masa lalu untuk komponen tertentu.

Itu sendiri memiliki masalah berikut:

1 Tingkat pembelajaran yang terus membusuk η.

2 Pemilihan tingkat pembelajaran secara manual η.

AdaDelta menyelesaikan kekhawatiran AdaGrad 1 dengan menjumlahkan gradien hanya dalam jendela tertentu W.

Solusi Concern 2 berkaitan dengan ketidakcocokan dalam satuan gradien dan karenanya

proses akumulasi aktual diimplementasikan menggunakan konsep dari momentum.

Perhitungan terakhir membutuhkan pemahaman tentang teori momentum dan itu dijelaskan secara singkat di artikel.

Gagasan saya adalah untuk memberikan penyebab utama di balik apa yang dimaksudkan, mungkin itu membuat membaca lebih mudah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.