Her Yapay Zeka Mühendisinin Bilmesi Gereken Derin Öğrenmede Optimize Edici Türleri
Yayınlanan: 2020-12-01İçindekiler
Tanıtım
Derin öğrenme, esneklik, daha yüksek doğruluk ve endüstri uygulamalarında çok çeşitli olanaklar açısından makine öğrenimine göre büyük bir ilerlemedir. İster bir sohbet uygulaması, ister dilbilgisi otomatik düzeltme, farklı diller arasında çeviri, sahte haber tespiti veya bazı ilk ifadelere dayalı otomatik hikaye yazma olsun, Derin öğrenme hemen hemen her sektörde kullanım alanı bulur.
Bu kadar kullanımla birlikte, yinelenen maliyetleri azaltabilmemiz ve daha kısa sürede verimli sonuçlar verebilmemiz için bu algoritmaların minimum kaynaklarla çalışması önem kazanıyor. Optimize edici, kaybı çok daha az çabayla azaltabilecek çeşitli parametreleri güncellemek için bir yöntem veya algoritmadır. Kabul edilebilir sonuçlar veren bazı popüler Derin öğrenme optimize edicilerine bakalım.
Dünyanın en iyi Üniversitelerinden AI ML Kursları öğrenin . Kariyerinizi hızlandırmak için Master, Executive PGP veya Advanced Certificate Programları kazanın.
Gradyan İniş (GD)
Bu, kaybı azaltmak ve minimuma ulaşmak için doğrudan kayıp fonksiyonunun türevini ve öğrenme oranını kullanan en temel optimize edicidir. Bu yaklaşım aynı zamanda, minimum kaybın ne zaman elde edildiğine bağlı olarak, güncellenen parametrelerin farklı katmanlar arasında paylaşıldığı sinir ağlarında geri yayılımda da benimsenmiştir. Sonuçları uygulamak ve yorumlamak kolaydır, ancak çeşitli sorunları vardır.
Ağırlıklar, tüm veri kümesi gradyanı hesaplandığında güncellenir, bu da süreci yavaşlatır. Ayrıca, bu geçici verileri depolamak için büyük miktarda bellek gerektirir ve bu da onu kaynağa aç bir süreç haline getirir. Bu algoritmanın arkasındaki fikir çok uygun olsa da, ince ayar yapılması gerekiyor.
Stokastik Gradyan İniş
Bu, model parametrelerinin her yinelemede güncellendiği GD yönteminin değiştirilmiş bir versiyonudur. Bu, her eğitim örneğinden sonra kayıp fonksiyonunun test edilmesi ve modelin güncellenmesi anlamına gelir. Bu sık güncellemeler, minimuma daha kısa sürede yakınsamakla sonuçlanır, ancak modelin gerekli konumu aşmasına neden olabilecek artan varyans maliyetiyle gelir.

Ancak bu tekniğin bir avantajı, öncekine kıyasla düşük bellek gereksinimidir çünkü artık kayıp fonksiyonlarının önceki değerlerini saklamaya gerek yoktur.
Mini Toplu Degrade İniş
Bu GD yaklaşımının bir başka çeşidi, model parametrelerinin küçük parti boyutlarında güncellendiği mini partidir. Bu, her n partiden sonra model parametrelerinin güncelleneceği anlamına gelir ve bu, modelin sık sık raydan çıkmadan daha az adımda minimuma doğru ilerlemesini sağlar. Bu, modelde daha az bellek kullanımı ve düşük varyans ile sonuçlanır.
Okuyun: Makine Öğrenimi Proje Fikirleri
Momentum Tabanlı Gradyan İniş
Parametreleri güncellemek için kullandığımız yöntemi tekrar gözden geçirelim. Kayıp fonksiyonunun birinci dereceden türevine dayanarak, gradyanları geri yayıyoruz. Güncellemelerin sıklığı her yinelemeden sonra, toplu iş veya en sonunda olabilir, ancak parametrelerde kaç güncellememiz olduğunu düşünmüyoruz.
Bu geçmiş öğesi sonraki güncellemelere dahil edilirse, tüm süreci hızlandırabilir ve bu optimize edicide momentumun anlamı budur. Bu tarih öğesi, zihnimizin bir şeyleri nasıl ezberlediği gibidir. Bir sokakta yürüyorsanız ve oldukça uzun bir mesafe katediyorsanız, gideceğiniz yerin biraz ileride olduğundan emin olacak ve hızınızı artıracaksınız.
Bu öğe, önceki değere, öğrenme hızına ve bu geçmiş güncellemesini kontrol eden gama adlı yeni bir parametreye bağlıdır. Güncelleme kuralı w = w – v gibi bir şey olacaktır, burada v geçmiş öğesidir.
Nesterov Hızlandırılmış Gradyan (NAG)
Momentum tabanlı GD, en erken minimuma yakınsayarak şu anda kullanılan optimize edicilere bir destek verdi, ancak yeni bir sorun ortaya çıkardı. Bu yöntem, toplam süreye ek olarak, minimum vadide çok sayıda U dönüşü ve salınım yapar. Alınan zaman hala normal GD'den çok daha az, ancak bu sorunun da düzeltilmesi gerekiyor ve bu NAG'de yapılıyor.
Burada izlenen yaklaşım, parametre güncellemesinin önce geçmiş elemanı ile yapılması ve daha sonra sadece onu ileri veya geri yönde hareket ettirebilecek türevin hesaplanmasıydı. Buna ileriye dönük yaklaşım denir ve daha mantıklıdır çünkü eğri minimuma yaklaşırsa, türev onu daha yavaş hareket ettirebilir, böylece daha az salınım olur ve bu nedenle daha fazla zaman kazandırır.

Ayrıca Okuyun: Bilmeniz Gereken Derin Öğrenme Teknikleri
Adagrad
Şimdiye kadar sadece model parametrelerinin eğitimimizi nasıl etkilediğine odaklandık, ancak eğitim boyunca sabit değer atanan hiper parametrelerden bahsetmedik. Böyle önemli bir hiper parametre, öğrenme hızıdır ve bunu değiştirmek, eğitimin hızını değiştirebilir.
Değerlerin çoğunun sıfır olduğu bir seyrek özellik girişi için, bu seyrek özelliklerden kaynaklanan ölmekte olan gradyanı artıracak daha yüksek bir öğrenme oranı sağlayabiliriz. Yoğun veriye sahipsek, daha yavaş öğrenmeye sahip olabiliriz.
Bunun çözümü, sağlanan girdiye göre değişebilen uyarlanabilir bir öğrenme oranına sahip olmaktır. Adagrad optimizer, bu uyarlanabilirliği, degradelerin güncellenmiş geçmişiyle orantılı olarak öğrenme oranını azaltarak sunmaya çalışır.
Bu, daha büyük güncellemeler olduğunda, geçmiş öğesinin biriktirildiği ve bu nedenle öğrenme oranını azalttığı ve bunun tersi anlamına gelir. Bu yaklaşımın bir dezavantajı, öğrenme oranının agresif bir şekilde azalması ve bir süre sonra sıfıra yaklaşmasıdır.
RMSProp
Adagrad optimize edici için bir gelişmedir. Bu, kare gradyanların kümülatif toplamı yerine gradyanların üstel bir ortalamasını alarak öğrenme oranının agresifliğini azaltmayı amaçlar. Uyarlanabilir öğrenme oranı, artık üstel ortalama, daha az güncellemenin olduğu koşullarda daha büyük öğrenme oranını ve daha fazla sayıda güncellemede daha küçük bir oranı cezalandıracağından olduğu gibi kalır.
Adem
Uyarlanabilir Moment Tahmini, RMSProp (kök-ortalama-kare prop) ve momentum tabanlı GD'nin gücünü birleştirir. Adam optimize edicilerde, momentum GD'nin güncellemelerin geçmişini tutma gücü ve RMSProp tarafından sağlanan uyarlanabilir öğrenme oranı, Adam optimizer'ı güçlü bir yöntem haline getirir. Ayrıca, genellikle 0,9 ve 0,99 civarında tutulan, ancak bunları kullanım durumunuza göre değiştirebileceğiniz iki yeni hiper parametre beta1 ve beta2 sunar.

Okumalısınız: Derin Öğrenmede Düzenleme
Çözüm
Bu makalede, kullanım kolaylığı sırasına göre 8 Derin öğrenme optimize ediciye ve bir optimize edicinin sınırlamasının bir sonraki tarafından nasıl aşıldığına baktık. Burada bahsedilen optimize edicilerden birinin veya diğerinin daha fazla modifikasyonu vardır, ancak bunlar karmaşık çözümlere gitmeden önce göz önünde bulundurmanız gereken temel olanlardır.
Bunlar arasından bir kazanan seçmek, kullanım durumu ve uğraştığınız sorun açısından oldukça özneldir, ancak model parametrelerinin nasıl güncellenmesi gerektiğini değiştiren momentum kavramıyla kombinasyonu ve değişen duruma uyum sağlaması nedeniyle Adam Optimizer'ı kesinlikle en üstte sıralayabilirsiniz. Her türlü girdinin verimli işlenmesini sağlayan farklı senaryolar için öğrenme oranı.
Genel bir eğilim, aynı kayıp için bu optimize edicilerin farklı yerel minimumlarda birleştiğini göstermektedir. Uyarlanabilir öğrenme optimize edicileri daha keskin minimumlarda birleşirken, diğer teknik türleri genelleme için daha iyi olan daha düz minimumlarda birleşir. Bu teknikler ancak bir dereceye kadar yardımcı olabilir, çünkü Derin sinir ağları büyüdükçe, iyi sonuçlar elde etmek için daha verimli yöntemler gereklidir.
Makine öğrenimi ve yapay zekada ustalaşmayı merak ediyorsanız, IIIT-B ve Liverpool John Moores Üniversitesi ile Makine Öğrenimi ve Yapay Zeka alanında Yüksek Lisansımızla kariyerinizi artırın.
Optimize ediciler derin öğrenmeyi nasıl çalışır?
Sinir ağları şu anda tüm hype iken, bir optimize edici, bir sinir ağının öğrenilmesi için çok daha temel olan bir şeydir. Sinir ağları, önceden hiçbir bilgiye sahip olmadan kendi başlarına öğrenebilirken, optimize edici, sinir ağıyla birlikte çalışan ve onun çok daha hızlı öğrenmesini sağlayan bir programdır. Kısacası bunu, sinir ağının parametrelerini, o sinir ağıyla eğitimi çok daha hızlı ve kolay hale getirecek şekilde değiştirerek yapar. Bu optimize ediciler, sinir ağlarının gerçek zamanlı çalışmasına izin verir ve eğitim sadece birkaç dakika sürer. Onlar olmadan, eğitim kolayca günler alırdı.
Derin öğrenme algoritmalarını optimize etmek neden zor?
Derin öğrenme sistemleri genellikle optimize edilmesi zor olarak kabul edilir, çünkü bunlar büyük ve karmaşıktır, genellikle birden çok katman ve doğrusal olmayan özellikler içerir. Optimize edicilerin, anlaşılması kolay olmayan devasa bir sistemle uğraşması gerekiyor. Bazı derin öğrenme araçları, ayarlanabilen yalnızca sınırlı sayıda parametre sağlar ve bu da kullanımlarını sınırlar. Bununla birlikte, derin öğrenme modellerini optimize etmenin ve genelleştirmelerini geliştirmenin bazı etkili yolları vardır.
Derin öğrenmede farklı optimize ediciler nelerdir?
Derin öğrenmede, bir modelin parametrelerini ayarlamak için optimize ediciler kullanılır. Optimize edicinin amacı, bir kayıp fonksiyonunu maksimize etmek için model ağırlıklarını ayarlamaktır. Kayıp fonksiyonu, modelin ne kadar iyi performans gösterdiğini ölçmenin bir yolu olarak kullanılır. Bir sinir ağı modeli eğitilirken bir optimize edici kullanılmalıdır. Derin öğrenme modeliyle kullanılabilecek çeşitli farklı optimize ediciler vardır. En popüler optimize edicilerden bazıları RMSprop, momentum ve Adam'dır.