Gradyan iniş optimizasyonu


9

ML (makine öğrenimi) algoritmalarında gradyan iniş optimizasyonunu anlamaya çalışıyorum. Bir maliyet fonksiyonu olduğunu anlıyorum - amacın hatayı en aza indirmektir . Ağırlıkları senaryoda en az hata vermek için optimize edilmektedir ve kısmi türevleri kullanılmaktadır, her iki değiştirir ve az sayıda iterasyon içinde, her bir aşamada ya da bir kombinasyonu (örneğin, bir değiştirilir ve zaman devamı, türev başlar herhangi bir hata azaltmadığını )? Uygulama doğrusal bir regresyon modeli, bir lojistik regresyon modeli veya yükseltme algoritmaları olabilir.y^yw1,w2w1w2w1w1w2

Yanıtlar:


10

Degrade iniş her adımdaki tüm parametreleri günceller. Bunu güncelleme kuralında görebilirsiniz:

w(t+1)=w(t)ηf(w(t)).

İşlev kaybı gradyanı yana vektör değerli bu boyut eşleme ile tüm parametreler, her tekrarda güncellenir.f(w)w

Öğrenme oranı , degradeyi yeniden ölçeklendiren pozitif bir sayıdır. Çok büyük bir adım atmak, kayıp fonksiyonunuzda hiçbir iyileşme olmadan sizi kayıp yüzeyi boyunca sonsuz bir şekilde zıplayabilir; çok küçük bir adım, optimum seviyeye doğru yorucu yavaş ilerleme anlamına gelebilir.η

Degrade iniş kullanarak doğrusal regresyon parametrelerini tahmin edebilmenize rağmen, bu iyi bir fikir değildir.

Benzer şekilde, lojistik regresyon katsayılarını tahmin etmenin daha iyi yolları vardır.


Yani algoritma, kısmi türevden yerel minimaya ulaşma yönüne bağlı olarak artış w1, azalma gibi farklı kombinasyonları deneyebilir w2ve sadece algoritmanın küresel minima'yı her zaman vermeyeceğini doğrulamak için?
Pb89

ve kısmi türev da yardım için yapılması gereken ne kadar artış veya azalma açıklamak yok w1ve w2ya kısmi türev sadece iniş yönünü sağlarken oranı / büzülme öğrenerek yapılır?
Pb89

Degrade bir vektördür, bu nedenle bir yön ve büyüklük verir . Bir vektör, pozitif bir skaler tarafından keyfi olarak yeniden ölçeklenebilir ve aynı yöne sahip olacaktır, ancak yeniden ölçekleme büyüklüğünü değiştirecektir.
Sycorax, Reinstate Monica'ya

Gradyan tarafından da büyüklük verilirse, büzülme veya öğrenme hızının rolü nedir?
Pb89

Öğrenme oranı degradeyi yeniden ölçeklendirir. Diyelim ki büyük bir norma (uzunluğa) sahiptir. Büyük bir adım atmak sizi kayıp yüzeyinin uzak bir bölümüne götürür (bir dağdan diğerine atlamak). Degrade inişin temel gerekçesi, civarında doğrusal bir yaklaşım olmasıdır . Bu yaklaşım her zaman kesin değildir, ancak muhtemelen ne kadar uzaklaşırsanız o kadar kötü olur - bu nedenle, küçük adımlar atmak istersiniz, bu yüzden 'küçük' tamamen probleme özgü olan küçük kullanırsınız . f(x)w(t)η
Sycorax, Reinstate Monica'ya

7

Optimizasyon kısmi türevler aracılığıyla gerçekleştiğinde, her bir dönüşte hem w1 hem de w2'yi değiştirir mi veya sadece birkaç yinelemede olduğu gibi bir kombinasyon mudur w1 değiştirilir ve w1 hatayı daha fazla azaltmazsa, türev w2 - ile başlar yerel minima'ya ulaşmak?

Her yinelemede, algoritma degrade vektörüne bağlı olarak tüm ağırlıkları aynı anda değiştirecektir. Aslında, gradyan bir vektördür. Degradenin uzunluğu, modeldeki ağırlıkların sayısıyla aynıdır.

Öte yandan, bir kerede bir parametrenin değiştirilmesi mevcuttu ve buna , bir tür gradyansız optimizasyon algoritması olan koordinat iyi algoritması denir . Uygulamada, gradyan tabanlı algoritmanın yanı sıra çalışmayabilir.

İşte degrade ücretsiz algoritma üzerine ilginç bir cevap

Geri yayılım olmadan bir sinir ağını eğitmek mümkün mü?


1

Gradyan inişin amacı maliyet fonksiyonunu en aza indirmektir. Bu minimizasyon, w1 ve w2 kasanız için ağırlıkların ayarlanmasıyla elde edilir. Genel olarak var olabilir , n gibi ağırlıklar.

Gradyan inişi şu şekilde yapılır:

  1. ağırlıkları rastgele başlat.
  2. maliyet fonksiyonu ve gradyanı başlangıç ​​ağırlıklarıyla hesaplar.
  3. güncelleme ağırlıkları: Bazı ağırlıklar için degradenin O olması olabilir, bu durumda bu ağırlıklar güncelleme sonrasında herhangi bir değişiklik göstermez. örneğin: Degradenin [1,0] olduğunu varsayalım, W2 değişmeden kalacaktır.
  4. maliyet fonksiyonunu güncellenmiş ağırlıklarla kontrol edin, eğer azalma kabul edilebilir düzeydeyse, diğer iterasyonlara devam edin.

hangi ağırlığın (W1 veya W2) değiştirildiği ağırlıkların güncellenmesine tamamen gradyan ile karar verilir. Tüm ağırlıklar güncellenir (bazı ağırlıklar gradyana göre değişmeyebilir).


"Azaltma yeterince kabul edilebilirse, yinelemelerin sonlandırılmasına devam et", python ( sklearn) veya R paketlerinde uygulanan varsayılan bir değer var caretmı? Kullanıcı yalnızca elle oluşturulan bir degrade iniş işlevinde belirtilebilir mi?
Pb89

1

Degrade düzgün, her yineleme için w1ve w2her yineleme için uygulanır . Her yineleme sırasında parametreler degradelere göre güncellenir. Muhtemelen farklı kısmi türevleri olacaktır.

Buradan kontrol edin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.