`` Kuru mallar '' makine öğrenimi için en yaygın kullanılan optimizasyonlardan biri - gradyan iniş optimizasyon algoritmalarına genel bakış

1 Xinzhiyuan yeniden basma yetkisine sahiptir

içindekiler

  • Üç gradyan iniş optimizasyon çerçevesi

    Toplu gradyan inişi

Stokastik gradyan inişi

Mini toplu gradyan inişi

  • Sorunlar ve zorluklar

  • Gradyan iniş optimizasyon algoritması

İtme

Nesterov hızlandırılmış gradyan

Adagrad

Adadelta

RMSprop

Adam

  • Algoritma görselleştirme

  • Hangi optimizasyon algoritması seçilmeli?

  • Paralel ve dağıtılmış SDG

Vahşi domuz!

Sağanak SGD

SGD için gecikmeye dayanıklı Algoritmalar

TensorFlow

Elastik Ortalama SGD

  • Daha fazla SDG optimizasyon stratejisi

Eğitim seti ve kurs öğreniminin rastgele karıştırılması

Toplu normalleştirme

Erken Durma

Gradyan gürültüsü

  • sonuç olarak

  • Alıntı

Üç gradyan iniş optimizasyon çerçevesi

  • Toplu gradyan inişi

Model parametrelerini güncellemek için tam eğitim seti örnekleri her kullanıldığında, yani: = J ()

epochs, kullanıcı tarafından girilen maksimum yineleme sayısıdır. İtiraz kodundan, tüm eğitim seti örneklerinin, kayıp fonksiyonu kayıp_fonksiyonunun gradyan params_grad'ını hesaplamak için kullanıldığı ve daha sonra öğrenme oranı öğrenme hızının, gradyanın ters yönünde modelin her parametre parametrelerini güncellemek için kullanıldığı görülebilir. Genel olarak, bazı mevcut makine öğrenimi kitaplıkları gradyan hesaplama api'si sağlar. Kod hesaplamasını kendiniz yazmak istiyorsanız, program hata ayıklaması sırasında gradyan hesaplamasının doğru olup olmadığını doğrulamanız gerekir.

  • Stokastik gradyan inişi

Şekil 1 SGD rahatsızlığı

  • Mini toplu gradyan inişi

= J (; xi: i + m; yi: i + m)

Sorunlar ve zorluklar

Gradyan iniş algoritması iyi çalışmasına ve yaygın olarak kullanılmasına rağmen, çözülmesi gereken bazı zorlukları ve sorunları da vardır:

  • Makul bir öğrenme oranı seçmek zordur. Öğrenme hızı çok küçükse, yakınsama hızı yavaş olacaktır. Öğrenme hızı çok büyükse, yakınsamayı engelleyecektir, yani en uç noktanın yakınında salınacaktır.

  • Öğrenme oranı ayarlaması (öğrenme oranı programları olarak da bilinir), tavlama gibi her güncelleme sırasında öğrenme oranını değiştirmeye çalışır. Genellikle önceden belirlenmiş belirli bir strateji kullanın veya her yinelemede daha küçük bir eşiği azaltın. Ayarlama yöntemine bakılmaksızın, önceden sabit bir ayar gereklidir ve her öğrenme için veri setinin özelliklerine uyum sağlamak imkansızdır.

  • Modelin tüm parametreleri, her seferinde aynı öğrenme oranıyla güncellenir. Veri özellikleri seyrekse veya her özelliğin farklı bir değer istatistiksel özelliği ve alanı varsa, her parametre her güncellemede aynı öğrenme oranını kullanamaz ve nadiren görünen özellikler nispeten büyük Öğrenme oranı.

  • Dışbükey olmayan objektif işlevler için, sinir ağları gibi optimal olmayan yerel uç noktalara düşmek kolaydır. Peki bundan nasıl kaçınılır. Dauphin, daha ciddi sorunun yerel uç noktalar değil, eyer noktaları olduğuna dikkat çekti.

Gradyan iniş optimizasyon algoritması

  • İtme

  • Nesterov hızlandırılmış gradyan (NAG)

t = t 1 + J ( t 1), = t

  • Adagrad

  • Adam

Algoritma görselleştirme

Yukarıdaki şekilde görülebileceği gibi, eyer noktalarında (yani, gradyan bazı boyutlarda sıfırdır ve bazı boyutlarda gradyan sıfır değildir), SGD, Momentum ve NAG, semer noktası gradyanının sıfır olduğu yönde salınmaktadır. Eyer noktası konumunun simetrisini kırmak zordur; Adagrad, RMSprop ve Adadelta hızla gradyanın sıfır olmadığı yöne kayabilir.

SGD optimize edici nasıl seçilir

Paralel ve dağıtılmış SGD

  • Vahşi domuz

Niu, Hogwild adlı paralel bir SGD yöntemi önerdi. Bu yöntem, birden çok CPU zamanında paralel olarak gerçekleştirilir. İşlemci, paylaşımlı bellek aracılığıyla parametrelere erişir ve bu parametreler kilitli değildir. Her cpu için parametrelerin örtüşmeyen kısımlarını tahsis eder (karşılıklı dışlamanın tahsisi) ve her cpu yalnızca sorumlu parametrelerini günceller. Bu yöntem yalnızca seyrek olan veri özellikleriyle uğraşmak için uygundur. Bu yöntem neredeyse optimum bir yakınsama oranına ulaşabilir çünkü aynı bilgiler CPU'lar arasında yeniden yazılmaz.

  • Sağanak SGD

Downpour SGD, Dean tarafından DistBelief'te (Google TensorFlow'un öncülü) kullanılmak üzere önerilen asenkron bir SGD çeşididir. Eğitim alt kümesinde aynı anda birden fazla model kopyasını eğitir. Bu kopyalar ilgili güncellemelerini parametre sunucusuna (PS, parametre sunucusu) gönderir ve her parametre sunucusu yalnızca birbirini dışlayan parametrelerin bir bölümünü günceller ve kopyalar arasında iletişim yoktur. Bu nedenle parametrelerin birbirinden uzaklaşmasına ve yakınsamasına neden olabilir.

  • SGD için gecikmeye dayanıklı Algoritmalar

McMahan ve Streeter, yalnızca geçmiş gradyanlara uyum sağlamakla kalmayıp aynı zamanda gecikmeleri de güncelleyen gecikmeye dayanıklı algoritmalar geliştirerek AdaGrad'ı genişletiyor. Bu yöntemin pratikte etkili olduğu gösterilmiştir.

  • TensorFlow

TensorFlow, Google tarafından açık kaynaklı büyük ölçekli bir makine öğrenimi kitaplığıdır ve önceki sürümü DistBelief'tir. Çok sayıda mobil cihazda veya büyük ölçekli dağıtılmış kümelerde kullanılmış ve pratikte test edilmiştir. Dağıtılmış uygulaması grafik hesaplamaya dayanır. Grafiği birden çok alt grafiğe böler.Her bir hesaplama varlığı grafikte bir hesaplama düğümü olarak çalışır ve Rend / Receive aracılığıyla iletişim kurarlar.

  • Elastik Ortalama SGD

Zhang ve diğerleri, parametre asenkron güncellemesi gerçekleştirmek için her çalışmaya bağlanmak için elastik bir kuvvet (parametreleri depolayan parametre sunucu merkezi) kullanan Elastic Averaging SGD'yi (EASGD) önerdi.

Daha fazla SGD optimizasyon stratejisi

  • Karıştırma ve Müfredatla Öğrenme

Öğrenme sürecini daha tarafsız hale getirmek için eğitim setindeki örnekler her yinelemede rastgele karıştırılmalıdır.

Öte yandan birçok durumda problemi adım adım çözüyoruz ve eğitim setini anlamlı bir düzende düzenlemek, modelin performansını ve SGD'nin yakınsamasını artıracaktır.Eğitim setinin anlamlı bir düzenlemesi nasıl kurulur? Müfredat Öğrenimi olarak adlandırılır.

Zaremba ve Sutskever bazı basit problemleri çözmek için LSTM'leri eğitmek için Müfredat Öğrenimini kullanıyorlar.Eğitim zorluğunun artan sırasına göre bir kombine stratejinin veya hibrit stratejinin eğitim setinden daha iyi olduğunu gösteriyorlar. (Anlamıyorum, kötü)

  • Toplu normalleştirme

Eğitimi kolaylaştırmak için genellikle parametreleri 0 ortalama 1 varyansa göre başlatırız.Sürekli eğitim ile parametreler farklı derecelerde güncellenir, bu nedenle bu parametreler 0 ortalama 1 varyans dağılım özelliğini kaybedecek ve bu da eğitim hızını azaltacak ve parametreleri büyütecektir. Değişiklikler, ağ yapısının derinleşmesini takip eder.

Parti normalizasyonu, parametreleri her mini parti geri yayılımından sonra 0 ortalama ve 1 varyansla yeniden normalleştirir. Bu, daha yüksek bir öğrenme oranı kullanabilir ve parametre başlatma noktalarında daha az çaba harcayabilir. Toplu normalleştirme, Bırakma gerekliliğini azaltan ve hatta ortadan kaldıran bir düzenleme görevi görür.

  • Erken durma

Doğrulama setinde, birden fazla ardışık yineleme sırasında kayıp işlevi artık önemli ölçüde azalmazsa eğitim erken sonlandırılmalıdır.Ayrıntılar için, NIPS 2015 Eğitim slaytlarına bakın veya aşırı uyumu önlemek için bazı yöntemlere bakın.

  • Gradyan gürültüsü

Gradyan gürültüsü, her bir yinelemenin gradyanına rastgele bir Gauss dağılımı hatası N (0, 2t) eklemektir.

gt, i = gt, i + N (0, 2t)

Gauss hatasının varyansının tavlanması gerekir:

2t = (1 + t)

Gradyana rastgele hatalar eklemek, başlangıçtaki parametre değerleri iyi seçilmemiş olsa bile modelin sağlamlığını artıracaktır ve özellikle derin seviyeli ve sorumlu ağları eğitmek için uygundur. Bunun nedeni, rastgele gürültü eklemenin yerel uç noktaları atlamak ve daha iyi bir yerel uç nokta bulmak için daha fazla olasılığa sahip olmasıdır.Bu olasılık derin ağlarda daha yaygındır.

sonuç olarak

Bu makalenin tercümesi adresinden yeniden basılabilir.

WeChat makalelerinin sayısındaki sınırlama nedeniyle, bu makalede tüm referanslar listelenmemiştir, lütfen görüntülemek için orijinal metne tıklayın

Xinzhiyuan'ın işe alım bilgilerini görüntülemek için orijinal metni okumak için tıklayın

Şiir Şiir bu 40 şarkıyı okur! Kesinlikle klasik!
önceki
Küresel para hızlanıyor, yabancı medya: Çin pazarı tekrar kazandı, Buffett: Çin'den öğrenin
Sonraki
Afrika'da Çin hikayeleri anlat Anavatan yurtdışında izledim
Satın almak kazandırıyor, bu çok satan butik SUV'lar fiyatları düşürmeye başladı!
Yazılım dünyamızı yiyor ve derin öğrenme makine öğrenimini yiyor
Apple Empire'a bir iş modeliyle bakıldığında iPhone sadece küçük bir rol
Renminbi toparlanmaya başlayabilir, küresel piyasa Fed ile alay ediyor
Karaya 150.000, hem geniş alan hem de yüksek güvenlik, bu dört arabaya bakın
Bir yığın çöp tasarladı, onu sadece Jackie Chan çağırmakla kalmadı, tüm dünya alkışladı!
Arabam olmadığında istiyorum ama aldığım için pişmanım. Bu nedenlerden başka bir şey değil
Bir iş modelinin taklit edilmesi en zor kısmı nedir? Chen Xuepin
Dünyanın ilk kendi kendini iyileştiren elastik yarı iletkeni olan "doğa gişe rekorları kıran" başarılı bir şekilde geliştirildi ve akıllı bir biyonik robot bir atılım yaptı
Adamın mahallede park etmiş 300.000 özel arabası ve mülkiyeti onu atık ürün olarak söküp sattı.
Tengchong'da sonbahara bu ginkgo ağacı kadar yakınsınız!
To Top