Die Mathematik von AdaGrad und AdaDelta verstehen


8

Ich habe einige Modelle für ein Projekt erstellt, aber ich kann mich nicht mit der Mathematik der Adagrad- und Adadelta-Algorithmen befassen.

Ich verstehe, wie Vanille-Gradienten-Abstieg funktioniert, und ich habe Code geschrieben, damit er erfolgreich funktioniert.

Ich wäre dankbar, wenn mir jemand diese beiden Dinge erklären oder eine Ressource bereitstellen würde, um sie zu verstehen.


1
Gute Erklärung in quora.com/…
— mico

Antworten:


6

In Bezug auf Ressourcen:



Hier sind einige zentrale Zitate aus ADADELTA: Eine adaptive Lernratenmethode , zusammen mit einigen Beispielen und kurzen Erklärungen:

ADAGRAD

Die Aktualisierungsregel für ADAGRAD lautet wie folgt: Hier berechnet der Nenner diel2-Norm aller vorherigen Gradienten pro Dimension und η ist eine globale Lernrate, die von allen Dimensionen geteilt wird. Während es die handabgestimmte globale Lernrate gibt, hat jede Dimension ihre eigene dynamische Rate.

Δxt=−η∑τ=1tgτ2gt(5)
l2

Dh wenn die Gradienten in den ersten drei Schritten , dann: Δ x 3 = - ηg1=(a1b1c1),g2=(a2b2c2),g3=(a3b3c3) Hier ist leichter zu erkennen, dass jede Dimension wie versprochen ihre eigene dynamische Lernrate hat.

Δx3=−η∑τ=13gτ2g3=−η(a12+a22+a32b12+b22+b32c12+c22+c32)(a3b3c3)↓Δx3=−(ηa12+a22+a32a3ηb12+b22+b32b3ηc12+c22+c32c3)

Probleme von ADAGRAD, denen ADADELTA entgegenzuwirken versucht

Die in diesem Artikel vorgestellte Idee wurde von ADAGRAD abgeleitet, um die beiden Hauptnachteile der Methode zu verbessern: 1) den kontinuierlichen Rückgang der Lernraten während des Trainings und 2) die Notwendigkeit einer manuell ausgewählten globalen Lernrate.

Der zweite Nachteil ist ziemlich selbsterklärend.


g2
t>2∑τ=1tgτ2g2g2gtΔxt
Δxt

ADADELTA

w

wtE[g2]t

E[g2]t=ρE[g2]t−1+(1−ρ)gt2(8)
ρRMSt
RMS[g]t=E[g2]t+ϵ(9)
ϵ

RMS

E[Δx2]t−1=ρE[Δx2]t−2+(1−ρ)Δxt−12
RMS[Δx]t−1=E[Δx2]t−1+ϵ

ΔxtRMSwΔx

Δxt=−RMS[Δx]t−1RMS[g]tgt(14)
ϵRMSΔx0=0

rgr=(arbrcr)Δxr=(irjrkr)

Δ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+p1(1−ρ)Δxt−22+p0(1−ρ)Δxt−12+ϵρ2E[g2]t−2+p1(1−ρ)gt−12+p0(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

ρ is a decay constant, so we choose it such that ρ∈(0,1) (typically ρ≥0.9).
Therefore, multiplying by a high power of ρ results in a very small number.
Let w be the lowest exponent such that we deem the product of multiplying sane values by ρw negligible.
Now, we can approximate Δxt by dropping negligible terms:

Δ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−ρ)(ir2jr2kr2)+ϵ∑r=t+1−wtρt−r(1−ρ)(ar2br2cr2)+ϵ(atbtct)↓Δxt≈−(∑r=t−wt−1ρt−1−r(1−ρ)ir2+ϵ∑r=t+1−wtρt−r(1−ρ)ar2+ϵat∑r=t−wt−1ρt−1−r(1−ρ)jr2+ϵ∑r=t+1−wtρt−r(1−ρ)br2+ϵbt∑r=t−wt−1ρt−1−r(1−ρ)kr2+ϵ∑r=t+1−wtρt−r(1−ρ)cr2+ϵct)

1

From quora you'll find a more complete guide, but main ideas are that AdaGrad tries to taggle these problems in gradient learning rate selection in machine learning:

1 Manual selection of the learning rate η.

2 The gradient vector gt is scaled uniformly by a scalar learning rate η.

3 The learning rate η remains constant throughout the learning process.

It resolves concerns 2 and 3 simply by dividing each current gradient component by an L2 norm of past observed gradients for that particular component.

It has in itself the following issues:

1 Continually decaying learning rate η.

2 Manual selection of the learning rate η.

AdaDelta resolves AdaGrad concern 1 by summing the gradients only within a certain window W.

Concern 2 solution relates to mismatch in gradient units and thus

the actual accumulation process is implemented using a concept from momentum.

The last calculation needs understanding on momentum theory and it was shortly explained there in article.

My idea was to give the main causes behind what was intended, maybe that makes reading easier.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.