Gradient İncent'in alternatifleri nelerdir?


45

Gradient Descent'in Yerel Minima'da takılma sorunu var. Küresel minima bulmak için degrade iniş üstel zamanlar çalıştırmak gerekir.

Herhangi biri bana sinir ağları öğreniminde uygulandığı gibi gradyanlı iniş alternatiflerini artıları ve eksileriyle ilgili söyleyebilir.

Yanıtlar:


37

Bu, fonksiyonun asgariye indirilmesiyle ilgili bir problemdir, eğer gerçek global minimumun bulunması önemliyse, o zaman simüle edilmiş bir tavlama yöntemi kullanın . Bu, küresel asgariyi bulabilecek, ancak bunu yapmak çok zaman alabilir.

Sinir ağları söz konusu olduğunda, yerel minima mutlaka bir sorun yaratmaz. Yerel minimumların bir kısmı, gizli katman birimlerine izin vererek veya ağın giriş ve çıkış ağırlıklarını vb. Dikkate alarak işlevsel olarak özdeş bir model alabilmenizden kaynaklanmaktadır. performanstaki fark çok az olacak ve bu yüzden gerçekten önemli olmayacak. Son olarak, ve bu önemli bir nokta, bir sinir ağını yerleştirmedeki ana problem aşırı sığdırıcı, bu nedenle, agresif bir şekilde maliyet fonksiyonunun küresel asgari seviyesini aramak, aşırı yüklenme ve kötü performans gösteren bir modelle sonuçlanabilir.

Düzenli bir terim eklemek, örneğin kilo kaybı, yerel minima sorununu biraz azaltabilen maliyet işlevini hafifletmeye yardımcı olabilir ve zaten fazla uydurmamak için tavsiye edebileceğim bir şey.

Bununla birlikte, sinir ağlarında yerel minimadan kaçınmanın en iyi yöntemi, yerel minima ile daha az problemi olan bir Gauss Süreci modeli (veya Radyal Temel Fonksiyon sinir ağı) kullanmaktır.


8
Çok doğru. Küresel asgari şartı bulamama sorunu aşılıyor.
bayerj

2
Bir modelde birçok parametre kullandığınızda (tipik NN kullanım durumu), aşırı asılma, yerel minima ile ilgili değildir - en azından açık şekilde değildir. Küçük bir NN ile, yani çok az sayıda serbest parametre ile bile, kötü bir yerel asgari düzeyde sıkışıp kalabilirsiniz.
carlosayam

1
@DikranMarsupial, tek bir model parametresiyle bile birçok yerel minimuma sahip olabilirsiniz. Bu, kayıp fonksiyonunun şekline bağlıdır. Kararlı fakat basit örnek: , burada , en yakın ve 2. en yakın komşudur . Her iki ardışık nokta arasında yerel bir minimum olduğunu görmek kolaydır, yani ne kadar fazla veri olursa o kadar fazla yerel minima! Global, veri setindeki en yakın noktalar arasında sağlanır. Bu aşırı, biliyorum, ancak değişim problemlerini çözen benzer davranışlar gördüm. L(ω)=(x(1)ω)2+(x(2)ω)2x(1),x(2)ω
carlosayam

1
@DikranMarsupial - Cümleimi bitirmek için yeterli karakterim yoktu :) Değişim problemlerini çözen sinirsel ağları kullanarak benzer davranışlar gördüm. Bu tür problemlerde, yerel bir minimum genellikle zayıftır; bu yüzden bu sorunun abartıldığını kabul etmiyorum.
carlosayam

1
@DikranMarsupial, evet. Bir not: Burada görebileceğiniz gibi, gradyan iniş, popüler bir yaklaşım olan evrişimli sinir ağlarında gizli katmanları görselleştirmek için kullanılır. "Saksağanı" pek çok yerel minimadan sadece biri olarak görüyorum - ancak yazar bu şekilde görmüyor ve hiçbir bedenin inanmadığını düşünüyorum. Bence büyük hata.
carlosayam

24

Degrade iniş bir optimizasyon algoritmasıdır .

Bir ameliyat birçok optimizasyon algoritmaları vardır sabit sayıda bir gerçek değerlerle (ilişkilidir olmayan ayrılabilir ). Onları kabaca 2 kategoriye ayırabiliriz: gradyan tabanlı optimize ediciler ve türev içermeyen optimize ediciler. Genellikle nöral ağları denetimli bir ortamda optimize etmek için gradyanı kullanmak istersiniz çünkü bu türevsiz optimizasyondan çok daha hızlıdır. Yapay sinir ağlarını optimize etmek için kullanılan çok sayıda gradyan tabanlı optimizasyon algoritması vardır:

  • Stokastik Degrade İniş (SGD) , minibatch SGD, ...: Tüm eğitim seti için gradyanı değerlendirmek zorunda değilsiniz, ancak sadece bir numune veya numunelerin küçük bir kısmı için, bu genellikle toplu gradyan inişinden çok daha hızlıdır. Degradeyi yumuşatmak ve ileri ve geri yayılımını paralelleştirmek için minibatch'ler kullanılmıştır. Diğer birçok algoritmaya göre avantaj, her bir yinelemenin O (n) 'de olmasıdır (n, NN'nizdeki ağırlık sayısıdır). SGD genellikle yerel minimumda (!) Takılıp kalmaz, çünkü stokastiktir.
  • Doğrusal Olmayan Eşlenik Gradyan : regresyonda çok başarılı görünüyor, O (n), toplu gradyanı gerektiriyor (dolayısıyla, büyük veri kümeleri için en iyi seçenek olmayabilir)
  • L-BFGS : sınıflandırmada çok başarılı görünüyor, Hessian yaklaşımını kullanıyor, parti gradyanını gerektiriyor
  • Levenberg-Marquardt Algoritması (LMA) : Bu aslında bildiğim en iyi optimizasyon algoritması. Karmaşıklığının kabaca O (n ^ 3) olması dezavantajına sahiptir. Büyük ağlar için kullanmayın!

Ve sinir ağları optimizasyonu için önerilen diğer birçok algoritmalar olmuştur, optimizasyon veya v-SGD Hessian içermeyen google olabilir (adaptif öğrenme oranları ile SGD birçok türü vardır, örneğin bakınız buraya ).

NN'ler için optimizasyon çözülmüş bir problem değil! Tecrübelerime göre en büyük zorluk iyi bir yerel minimum bulmamak. Bununla birlikte, zorluklar çok düz bölgelerden uzaklaşmak, koşulsuz hata fonksiyonlarıyla uğraşmaktır. LMA ve Hessian'ın yaklaşımlarını kullanan diğer algoritmaların pratikte bu kadar iyi çalışmasının ve insanların stokastik versiyonları geliştirmeye çalışmasının nedeni budur. Bu düşük karmaşıklığı olan ikinci derece bilgiyi kullanır. Ancak, genellikle minibatch SGD için ayarlanmış çok iyi ayarlanmış bir parametre, herhangi bir karmaşık optimizasyon algoritmasından daha iyidir.

Genellikle global bir optimum bulmak istemezsiniz. Çünkü bu genellikle eğitim verilerinin yenilenmesini gerektirir.


15

Gradyan inişine ilginç bir alternatif, evrimsel algoritmalar (EA) ve partikül sürü optimizasyonu (PSO) gibi popülasyon bazlı eğitim algoritmalarıdır. Nüfusa dayalı yaklaşımların ardındaki temel fikir, bir aday çözüm popülasyonunun (NN ağırlık vektörleri) yaratılması ve aday çözümlerin arama alanını yinelemeli bir şekilde keşfetmesi, bilgi alışverişi yapması ve en sonunda bir asgariye yaklaşmasıdır. Birçok başlangıç ​​noktası (aday çözüm) kullanıldığından, küresel minimumda yakınlaşma şansı önemli ölçüde artar. PSO ve EA'nın karmaşık NN eğitim problemlerinde gradyan inişinden daha iyi performans göstererek sıklıkla (her zaman olmasa da) çok rekabetçi bir performans gösterdikleri gösterilmiştir.


+1 Eğitim kriterini agresif bir şekilde optimize etmenin, önlemi almak için adımlar atılmadığı sürece aşırı uyuşturmaya yol açması muhtemel olsa da, eğitim kriteri bazı düzenlileştirme veya diğer karmaşıklık temelli olmadıkça, PSO ve EA'dan kaçınacağım. ceza.
Dikran Marsupial

5
@ anna-earwen, lütfen PSO’nun SGD’ye kıyasla daha rekabetçi bir performans sergilediği referanslar sunabilir misiniz?
emrea

8

Bu konunun oldukça eski olduğunu biliyorum ve diğerleri yerel minima, fazladan takma vb. Kavramları açıklamak için harika bir iş çıkardılar. Ancak, OP alternatif bir çözüm ararken, bunlardan birine katkıda bulunmaya çalışacağım ve daha ilginç fikirlere ilham vereceğini umuyorum.

Fikir her ağırlığı w ile w + t arasında değiştirmektir, burada t Gauss dağılımını takip eden rastgele bir sayıdır. Ağın nihai çıktısı, t'nin tüm olası değerlerinin ortalama çıktısıdır. Bu analitik olarak yapılabilir. Ardından sorunu degrade iniş veya LMA veya diğer optimizasyon yöntemleriyle optimize edebilirsiniz. Optimizasyon tamamlandıktan sonra iki seçeneğiniz vardır. Bir seçenek, Gauss dağılımındaki sigmayı azaltmak ve sigma 0'a ulaşıncaya kadar optimizasyonu tekrar tekrar yapmaktır, o zaman daha iyi bir yerel asgariye sahip olacaksınız (ancak potansiyel olarak fazla uydurmaya neden olabilir). Diğer bir seçenek ise ağırlıkları rasgele sayı ile olanı kullanmaya devam etmektir, genellikle daha iyi genelleme özelliğine sahiptir.

İlk yaklaşım, bir optimizasyon numarasıdır (hedef işlevi değiştirmek için parametreler üzerinde evrişimi kullandığı için evrişimsel tünel olarak adlandırıyorum), maliyet fonksiyonu peyzajının yüzeyini yumuşatır ve bazı yerel minimumlardan kurtulur. Global minimum (veya daha iyi yerel minimum) bulmayı kolaylaştırın.

İkinci yaklaşım gürültü enjeksiyonu ile ilgilidir (ağırlıklar). Bunun analitik olarak yapıldığına dikkat edin, bu nihai sonucun birden çok ağ yerine tek bir ağ olduğu anlamına gelir.

Aşağıdakiler iki spiralli problem için örnek çıktılardır. Ağ mimarisi, her üçü için aynıdır: 30 düğümden yalnızca bir gizli katman vardır ve çıktı katmanı doğrusaldır. Kullanılan optimizasyon algoritması LMA'dır. Soldaki resim vanilya ayarı içindir; orta ilk yaklaşımı kullanıyor (yani, sürekli olarak sigmayı 0'a doğru düşürüyor); Üçüncüsü sigma = 2 kullanıyor.

İki spiralli problemin sonucu üç yaklaşımla

Vanilya çözümünün en kötü olduğunu, evrişimli tünellemenin daha iyi bir iş çıkardığını ve evriyal tünelleme ile gürültü enjeksiyonunun (genelleme özelliği açısından) en iyisi olduğunu görebilirsiniz.

Hem evri tünel hem de gürültü enjeksiyonunun analitik yolu benim orijinal fikirlerim. Belki birilerinin ilgisini çekebilecek alternatiflerdir. Ayrıntıları Makalemde Birinde Sinir Ağlarının Sonsuz Sayısını Birleştirmek . Uyarı: Profesyonel bir akademik yazar değilim ve makale hakem tarafından gözden geçirilmedi. Bahsettiğim yaklaşımlar hakkında sorularınız varsa, lütfen yorum yazın.


1

Extreme Learning Machines Temel olarak girişleri gizli düğümlere bağlayan ağırlıkların rastgele atandığı ve hiç güncellenmediği bir sinir ağıdır. Gizli düğümler ve çıkışlar arasındaki ağırlıklar, doğrusal bir denklem (matris ters) çözülerek tek bir adımda öğrenilir.

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.