Sözlük

Gradyan İniş

Gradient Descent'in Ultralytics YOLO gibi yapay zeka modellerini nasıl optimize ettiğini ve sağlık hizmetlerinden sürücüsüz arabalara kadar çeşitli görevlerde doğru tahminler yapılmasını sağladığını keşfedin.

Gradient Descent, çoğu makine öğrenimi (ML) ve derin öğrenme modelinin kalbinde yer alan temel bir optimizasyon algoritmasıdır. Birincil amacı, iç parametrelerini yinelemeli olarak ayarlayarak bir modelin hatasını en aza indirmektir. Sisli bir dağın üzerinde durduğunuzu ve en alçak noktayı bulmaya çalıştığınızı düşünün. Hangi yönün en dik şekilde aşağıya doğru eğimli olduğunu görmek için ayaklarınızın etrafına bakar ve o yöne doğru bir adım atarsınız. Bu işlemi tekrarlayarak sonunda bir vadiye ulaşırsınız. Makine öğreniminde "dağ" kayıp fonksiyonudur, "yön" kayıp fonksiyonunun negatif gradyanıdır ve "adım boyutu" öğrenme oranıdır.

Degrade İniş Nasıl Çalışır?

Bir sinir ağı için eğitim süreci, mümkün olan en düşük hata veya kayıpla sonuçlanan en uygun model ağırlıkları kümesini bulmayı içerir. Gradyan İnişi bu aramayı otomatikleştirir. Süreç, her bir ağırlığa göre kaybın ne kadar değiştiğinin bir ölçüsü olan gradyanı hesaplayarak başlar. Bu hesaplama tipik olarak geriye yayılma algoritması kullanılarak gerçekleştirilir. Ağırlıklar daha sonra gradyanın ters yönünde küçük bir adım atılarak güncellenir ve kayıp yüzeyinde etkili bir şekilde "yokuş aşağı" hareket eder. Bu iteratif süreç, modelin performansı yakınsayana ve kayıp en aza indirilene kadar birçok epok boyunca devam eder. Her adımın boyutu, hiperparametre ayarlamasında önemli bir ayar olan öğrenme oranı tarafından belirlenen kritik bir faktördür. Bu sürecin ayrıntılı bir özeti Stanford CS231n ders notları gibi kaynaklarda bulunabilir.

Gradyan İniş Türleri

Gradyan İnişinin üç ana varyasyonu vardır ve her biri, her ağırlık güncellemesi için gradyanı hesaplamak için ne kadar veri kullanıldığına göre farklılık gösterir:

  • Toplu Gradyan İnişi (BGD): Tüm eğitim veri kümesini kullanarak gradyanı hesaplar. Bu yaklaşım kararlı ve doğru bir gradyan sağlar, ancak hesaplama açısından çok pahalı ve bellek yoğundur, bu da ImageNet gibi büyük veri kümeleri için pratik değildir.
  • Stokastik Gradyan İnişi (SGD): Sadece tek bir rastgele seçilmiş veri örneğini işledikten sonra ağırlıkları günceller. BGD'den çok daha hızlıdır ve daha az bellek gerektirir, ancak güncellemeler gürültülüdür ve daha düzensiz bir yakınsama yoluna yol açar. Bu rastgelelik bazen modelin zayıf yerel minimumlardan kaçmasına yardımcı olabilir.
  • Mini-Yığın Gradyan İnişi: Gradyanı verilerin küçük, rastgele bir alt kümesi ("mini parti") üzerinde, tipik olarak 32 ila 256 örnek arasında hesaplayarak bir denge kurar. Bu, modern derin öğrenmede kullanılan en yaygın yaklaşımdır çünkü SGD'nin verimliliğini BGD'nin kararlılığıyla birleştirir. PyTorch ve TensorFlow gibi çerçeveler, optimize edicilerinde varsayılan olarak bu yöntemi kullanır. Derinlemesine bir karşılaştırma için gradyan iniş algoritmalarına genel bakış bölümüne bakın.

Gradyan İnişi ve İlgili Kavramlar

Gradyan İnişini ilgili birkaç terimden ayırt etmek önemlidir:

  • Optimizasyon Algoritmaları: Gradient Descent, bir optimizasyon algoritmaları ailesi için temel kavramdır. Adam optimizer veya RMSprop gibi daha gelişmiş optimizerler, her parametre için öğrenme oranını ayrı ayrı ayarlayan ve genellikle daha hızlı yakınsamaya yol açan uyarlanabilir varyasyonlardır. Orijinal Adam makalesini arXiv'de bulabilirsiniz.
  • Geriye Yayılım: Geriye Yayılma ve Gradyan İnişi iki farklı ancak bağlantılı süreçtir. Geriye yayılma, kayıp fonksiyonunun gradyanlarını ağın ağırlıklarına göre verimli bir şekilde hesaplayan algoritmadır. Gradyan İnişi, daha sonra ağırlıkları güncellemek için bu gradyanları kullanan algoritmadır.
  • Kayıp Fonksiyonu: Kayıp fonksiyonu, Gradient Descent'in minimize etmeyi amaçladığı hedefi tanımlar. Kayıp fonksiyonunun seçimi (örneğin, görüntü sınıflandırması için Çapraz Entropi), optimize edicinin gezindiği belirli hata manzarasını oluşturur.

Gerçek Dünya Uygulamaları

Gradient Descent, sayısız yapay zeka modelinin eğitimine güç veren motordur.

  1. Nesne Algılama Modellerini Eğitme: Bir Ultralytics YOLO modeli COCO gibi büyük ölçekli bir veri kümesinde nesne alg ılama için eğitildiğinde, her iterasyonda mini toplu gradyan inişi kullanılır. Model sınırlayıcı kutuları tahmin eder, hataya göre bir kayıp hesaplanır ve Gradient Descent, doğruluğu artırmak için modelin omurgası ve kafası boyunca milyonlarca ağırlığı ayarlar. Tüm bu iş akışı Ultralytics HUB gibi platformlar kullanılarak yönetilebilir ve ölçeklendirilebilir.
  2. Dil Modellerinin Eğitimi: Doğal Dil İşleme'de (NLP), BERT gibi modeller duygu analizi gibi görevler için eğitilir. Gradient Descent, modelin tahmin edilen duygusu ile gerçek etiket arasındaki farkı ölçen bir kayıp fonksiyonunu en aza indirerek modelin geniş metin derlemelerinden insan dilinin nüanslarını öğrenmesini sağlar. Stanford NLP Grubu bu alanda kapsamlı araştırmalar yapmaktadır.

Zorluklar ve Dikkat Edilmesi Gerekenler

Güçlü olmasına rağmen Gradyan İnişinin zorlukları da yok değildir. Algoritma, kayıp yüzeyindeki mutlak en düşük nokta olmayan yerel minimum vadilerde takılıp kalabilir. Çok derin ağlarda, gradyanın ağırlıkları etkili bir şekilde güncellemek için çok küçük veya çok büyük hale geldiği kaybolan gradyan veya patlayan gradyan sorunlarından da muzdarip olabilir. Model eğitimi ipuçları kılavuzumuzda ayrıntılı olarak açıklandığı üzere, öğrenme oranının dikkatli bir şekilde seçilmesi, sağlam bir optimize edicinin seçilmesi ve toplu normalleştirme gibi teknikler başarılı bir eğitim için çok önemlidir.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve büyüyün

Şimdi katılın
Panoya kopyalanan bağlantı