Hiểu toán học của AdaGrad và AdaDelta


8

Tôi đã xây dựng một số mô hình cho một dự án, nhưng tôi không thể xoay quanh toán học của thuật toán Adagrad và Adadelta.

Tôi không hiểu làm thế nào vanilla gradient gốc hoạt động và tôi đã viết mã để làm cho nó hoạt động thành công.

Tôi sẽ biết ơn nếu có ai giải thích hai điều này cho tôi hoặc cung cấp một số tài nguyên để hiểu chúng.


1
Giải thích tốt trong quora.com/ bào
mico

Câu trả lời:


6

Liên quan đến tài nguyên:



Dưới đây là một số trích dẫn trung tâm từ ADADELTA: Phương pháp tỷ lệ học tập thích ứng , cùng với một số ví dụ và giải thích ngắn:

QUẢNG CÁO

Các nguyên tắc cập nhật ADAGRAD là như sau: Ở đây mẫu số tính toánđịnh mứcl2của tất cả các gradient trước đó trên cơ sở mỗi chiều và η là tỷ lệ học tập toàn cầu được chia sẻ bởi tất cả các chiều. Mặc dù có tỷ lệ học tập toàn cầu được điều chỉnh bằng tay, mỗi chiều có tốc độ động riêng.

Δxt= =-ηΣτ= =1tgτ2gt(5)
tôi2

Tức là nếu độ dốc trong ba bước đầu tiên là , sau đó: Δ x 3 = - ηg1= =(một1b1c1),g2= =(một2b2c2),g3= =(một3b3c3) Ở đây dễ thấy hơn rằng mỗi chiều có tốc độ học tập năng động riêng, như đã hứa.

Δx3= =-ηΣτ= =13gτ2g3= =-η(một12+một22+một32b12+b22+b32c12+c22+c32)(một3b3c3)Δx3= =-(ηmột12+một22+một32một3ηb12+b22+b32b3ηc12+c22+c32c3)

Các vấn đề về ADAGRAD mà ADADELTA cố gắng khắc phục

Ý tưởng được trình bày trong bài viết này được lấy từ ADAGRAD để cải thiện hai nhược điểm chính của phương pháp: 1) sự phân rã liên tục của tỷ lệ học tập trong suốt quá trình đào tạo và 2) nhu cầu về tỷ lệ học tập toàn cầu được lựa chọn thủ công.

Hạn chế thứ hai là khá tự giải thích.

Dưới đây là một ví dụ khi nhược điểm đầu tiên là một vấn đề:
Hãy xem xét một trường hợp trong đó giá trị tuyệt đối của từng thành phần của lớn hơn nhiều so với giá trị tuyệt đối của thành phần tương ứng của gradient trong bất kỳ bước nào khác. Đối với bất kỳ t > 2 , nó cho rằng mọi thành phần của g2
t>2Στ= =1tgτ2g2g2gtΔxt
Δxt

QUẢNG CÁO

w

wtE[g2]t

E[g2]t=ρE[g2]t1+(1ρ)gt2(8)
where ρ is a decay constant [...]. Since we require the square root of this quantity in the parameter updates, this effectively becomes the RMS of previous squared gradients up to time t:
RMS[g]t=E[g2]t+ϵ(9)
where a constant ϵ is added to better condition the denominator

(RMS stands for Root Mean Square.)

Similarly:

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

[...] approximate Δxt by compute the exponentially decaying RMS over a window of size w of previous Δx to give the ADADELTA method:

Δxt=RMS[Δx]t1RMS[g]tgt(14)
where the same constant ϵ is added to the numerator RMS as well. This constant serves the purpose both to start off the first iteration where Δx0=0 and to ensure progress continues to be made even if previous updates become small.
[...]
The numerator acts as an acceleration term, accumulating previous gradients over a window of time [...]

I.e. if the gradient in step r is gr=(arbrcr) and Δxr=(irjrkr), then:

Δxt=RMS[Δx]t1RMS[g]tgt=E[Δx2]t1+ϵE[g2]t+ϵgt=ρE[Δx2]t2+(1ρ)Δxt12+ϵρE[g2]t1+(1ρ)gt2+ϵgt=ρ(ρE[Δx2]t3+(1ρ)Δxt22)+(1ρ)Δxt12+ϵρ(ρE[g2]t2+(1ρ)gt12)+(1ρ)gt2+ϵgt=ρ2E[Δx2]t3+p1(1ρ)Δxt22+p0(1ρ)Δxt12+ϵρ2E[g2]t2+p1(1ρ)gt12+p0(1ρ)gt2+ϵgt=ρt1E[Δx2]0+r=1t1ρt1r(1ρ)Δxr2+ϵρt1E[g2]1+r=2tρtr(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:

Δxtr=twt1ρt1r(1ρ)Δxr2+ϵr=t+1wtρtr(1ρ)gr2+ϵgt=r=twt1ρt1r(1ρ)(ir2jr2kr2)+ϵr=t+1wtρtr(1ρ)(ar2br2cr2)+ϵ(atbtct)Δxt(r=twt1ρt1r(1ρ)ir2+ϵr=t+1wtρtr(1ρ)ar2+ϵatr=twt1ρt1r(1ρ)jr2+ϵr=t+1wtρtr(1ρ)br2+ϵbtr=twt1ρt1r(1ρ)kr2+ϵr=t+1wtρtr(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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.