Lojistik Regresyonda Gradyan İnişi [Yeni Başlayanlar İçin Açıklandı]

Yayınlanan: 2021-01-08

Bu yazıda Lojistik Regresyonda çok popüler olan Gradient Descent Algoritmasını tartışacağız. Lojistik Regresyonun ne olduğuna bakacağız, ardından yavaş yavaş Lojistik Regresyon Denklemine, Maliyet Fonksiyonuna ve son olarak Gradient Descent Algoritmasına geçeceğiz.

İçindekiler

Lojistik Regresyon Nedir?

Lojistik Regresyon, bir postanın 'spam' olup olmadığını veya 'spam olmadığını' tahmin etmek gibi ayrı kategorileri tahmin etmek için kullanılan basit bir sınıflandırma algoritmasıdır; verilen bir rakamın '9' olup olmadığını veya '9 değil' vs. olup olmadığını tahmin etmek. Şimdi, isme bakarak, neden Regresyon olarak adlandırıldığını düşünmelisiniz?

Bunun nedeni, Lojistik Regresyon fikrinin, regresyon problemlerinde kullanılan temel Lineer Regresyon Algoritmasının birkaç unsuru üzerinde ince ayar yapılmasıyla geliştirilmiş olmasıdır.

Lojistik Regresyon, Çok Sınıflı (ikiden fazla sınıf) sınıflandırma problemlerine de uygulanabilir. Bununla birlikte, bu algoritmanın sadece İkili Sınıflandırma Problemleri için kullanılması tavsiye edilir.

Sigmoid Fonksiyonu

Sınıflandırma problemleri Doğrusal Fonksiyon problemleri değildir. Çıktı, örneğin bir ikili sınıflandırma problemi için 0 ve 1 gibi belirli ayrık değerlerle sınırlıdır. Doğrusal bir fonksiyonun çıktı değerlerimizi 1'den büyük veya 0'dan küçük olarak tahmin etmesi mantıklı değildir. Dolayısıyla, çıktı değerlerimizi temsil edecek uygun bir fonksiyona ihtiyacımız var.

Sigmoid İşlevi sorunumuzu çözüyor. Lojistik Fonksiyon olarak da bilinir, herhangi bir gerçek değer sayısını (0,1) aralığına eşleyen S-şekilli bir fonksiyondur ve herhangi bir rastgele fonksiyonu sınıflandırma tabanlı bir fonksiyona dönüştürmede çok kullanışlı hale getirir. Bir Sigmoid İşlevi şöyle görünür:

Sigmoid Fonksiyonu

kaynak

Şimdi, parametreli vektör ve X girdi vektörü için sigmoid fonksiyonunun matematiksel formu şudur:

(z) = 11+exp(-z) burada z = TX

(z) bize çıktının 1 olma olasılığını verecektir. Hepimizin bildiği gibi, olasılık değeri 0 ile 1 arasındadır. Şimdi, bu bizim ayrık tabanlı(sadece 0 ve 1) sınıflandırma problemimiz için istediğimiz çıktı değil. . Şimdi tahmin edilen olasılığı 0,5 ile karşılaştırabiliriz. Olasılık > 0,5 ise, y=1 olur. Benzer şekilde, olasılık < 0,5 ise, elimizde y=0 olur.

Maliyet fonksiyonu

Artık ayrık tahminlerimize sahip olduğumuza göre, tahminlerimizin gerçekten doğru olup olmadığını kontrol etmenin zamanı geldi. Bunu yapmak için bir Maliyet Fonksiyonumuz var. Maliyet İşlevi, yalnızca tüm veri kümesindeki tahminlerde yapılan tüm hataların toplamıdır. Elbette Lineer Regresyonda kullanılan Maliyet Fonksiyonunu kullanamıyoruz. Dolayısıyla Lojistik Regresyon için yeni Maliyet Fonksiyonu:

kaynak

Denklemden korkmayın. O çok basit. Her i yinelemesi için, tahminimizde yaptığımız hatayı hesaplıyor ve ardından Maliyet Fonksiyonumuzu J() tanımlamak için tüm hataları topluyor.

Parantez içindeki iki terim aslında iki durum içindir: y=0 ve y=1. y=0 olduğunda, ilk terim kaybolur ve sadece ikinci terim kalır. Benzer şekilde, y=1 olduğunda ikinci terim yok olur ve sadece birinci terim kalır.

Gradyan İniş Algoritması

Maliyet Fonksiyonumuzu başarıyla hesapladık. Ancak iyi bir tahmin algoritması yapmak için kaybı en aza indirmemiz gerekiyor. Bunu yapmak için Gradient Descent Algoritmasına sahibiz.

kaynak

Burada J() ve arasında bir grafik çizdik. Amacımız bu fonksiyonun en derin noktasını (global minimum) bulmaktır. Şimdi en derin nokta, J()'nin minimum olduğu yerdir.

En derin noktayı bulmak için iki şey gereklidir:

  • Türev – sonraki adımın yönünü bulmak için.
  • (Öğrenme Hızı) – sonraki adımın büyüklüğü

Buradaki fikir, önce fonksiyondan herhangi bir rastgele nokta seçmenizdir. O zaman J()wrt türevini hesaplamanız gerekir. Bu, yerel minimumun yönünü gösterecektir. Şimdi elde edilen gradyanı Öğrenme Oranı ile çarpın. Öğrenme Oranının sabit bir değeri yoktur ve problemlere göre karar verilmelidir.

Şimdi, yeniyi elde etmek için sonucu çıkarmanız gerekiyor.

Bu güncelleme her (i) için aynı anda yapılmalıdır .

Yerel veya genel minimuma ulaşana kadar bu adımları tekrar tekrar yapın. Global minimuma ulaşarak, tahmininizde mümkün olan en düşük kaybı elde ettiniz.

Türev almak basittir. Sadece lisede yapmış olmanız gereken temel hesap yeterlidir. En büyük sorun Öğrenme Oranı( ) ile ilgilidir. İyi bir öğrenme oranı almak önemlidir ve çoğu zaman zordur.

Çok küçük bir öğrenme oranı alırsanız, her adım çok küçük olacak ve bu nedenle yerel minimuma ulaşmak için çok zaman harcayacaksınız.

Şimdi, büyük bir öğrenme oranı değeri almaya meyilliyseniz, minimumu aşacaksınız ve bir daha asla yakınsamayacaksınız. Mükemmel öğrenme oranı için belirli bir kural yoktur.

En iyi modeli hazırlamak için ince ayar yapmanız gerekir.

Gradient Descent denklemi:

Yakınsayana kadar tekrarlayın:

Gradient Descent Algoritmasını şu şekilde özetleyebiliriz:

  1. Rastgele ile başlayın
  2. Yakınsamaya kadar döngü:
    1. Hesaplama Gradyanı
    2. Güncelleme
  3. Dönüş

Stokastik Gradyan İniş Algoritması

Şimdi, Gradient Descent Algoritması, özellikle küçük ve orta ölçekli veriler için Maliyet İşlevini en aza indirmek için iyi bir algoritmadır. Ancak daha büyük veri kümeleriyle uğraşmamız gerektiğinde Gradient Descent Algorithm'in hesaplamada yavaş olduğu ortaya çıkıyor. Nedeni basit: Gradyanı hesaplaması ve her parametre için değerleri aynı anda güncellemesi gerekiyor ve bu da her eğitim örneği için.

Öyleyse tüm bu hesaplamaları bir düşünün! Çok büyük ve bu nedenle biraz değiştirilmiş Gradyan İniş Algoritmasına, yani Stokastik Gradyan İniş Algoritmasına (SGD) ihtiyaç vardı.

SGD'nin Normal Gradient Descent ile tek farkı, SGD'de tüm eğitim örneğini tek seferde ele almamamızdır. SGD'de, her yinelemede yalnızca tek bir rastgele örnek için maliyet fonksiyonunun gradyanını hesaplarız.

Şimdi, bunu yapmak, özellikle büyük veri kümeleri için, hesaplamalar için geçen süreyi büyük bir farkla azaltıyor. SGD'nin izlediği yol çok gelişigüzel ve gürültülüdür (ancak gürültülü bir yol bize küresel minimuma ulaşma şansı verebilir).

Ama sorun değil, çünkü izlenen yol hakkında endişelenmemize gerek yok.

Sadece daha hızlı bir zamanda minimum kayba ulaşmamız gerekiyor.

Gradient Descent Algoritmasını şu şekilde özetleyebiliriz:

  1. Yakınsamaya kadar döngü:
    1. Tek veri noktası ' i' seçin
    2. Degradeyi bu tek nokta üzerinden hesaplayın
    3. Güncelleme
  2. Dönüş

Mini Toplu Degrade İniş Algoritması

Mini-Yığın Gradyan İnişi, Degrade İniş Algoritmasının bir başka hafif modifikasyonudur. Normal Gradyan İnişi ve Stokastik Gradyan İnişi arasında bir miktardır.

Mini-Batch Gradient Descent, tüm veri kümesinden yalnızca daha küçük bir toplu iş alıyor ve ardından üzerindeki kaybı en aza indiriyor.

Bu süreç, yukarıdaki iki Gradyan İniş Algoritmasından daha verimlidir. Artık parti boyutu elbette istediğiniz herhangi bir şey olabilir.

Ancak araştırmacılar, 32'nin en iyi parti boyutu olduğu 1 ila 100 arasında tutmanın daha iyi olduğunu göstermiştir.

Bu nedenle toplu iş boyutu = 32 çoğu çerçevede varsayılan olarak tutulur.

  1. Yakınsamaya kadar döngü:
    1. Bir grup ' b ' veri noktası seçin
    2. Bu toplu iş üzerinde Degrade Hesapla
    3. Güncelleme
  2. Dönüş

Çözüm

Artık Lojistik Regresyonun teorik anlayışına sahipsiniz. Lojistik fonksiyonu matematiksel olarak nasıl temsil edeceğinizi öğrendiniz. Maliyet Fonksiyonunu kullanarak tahmin edilen hatayı nasıl ölçeceğinizi biliyorsunuz.

Ayrıca Gradient Descent Algoritmasını kullanarak bu kaybı nasıl en aza indirebileceğinizi de biliyorsunuz.

Son olarak, probleminiz için Gradient Descent Algoritmasının hangi varyasyonunu seçmeniz gerektiğini biliyorsunuz. upGrad, Makine Öğrenimi ve Yapay Zeka alanında PG Diploması ve Makine Öğrenimi ve Yapay Zeka alanında size bir kariyer inşa etme yolunda rehberlik edebilecek bir Yüksek Lisans Diploması sağlar. Bu kurslar, Makine Öğrenimi ihtiyacını ve gradyan iniş algoritmalarından Sinir Ağlarına kadar çeşitli kavramları kapsayan bu alanda bilgi toplamak için daha sonraki adımları açıklayacaktır .

Gradyan iniş algoritması nedir?

Gradyan iniş, bir fonksiyonun minimumunu bulmak için bir optimizasyon algoritmasıdır. y = f(x) grafiğinde (a, b) ve (c, d) iki noktası arasındaki f(x) fonksiyonunun minimumunu bulmak istediğinizi varsayalım. Daha sonra gradyan inişi üç adım içerir: (1) iki uç nokta arasında ortada bir nokta seçin, (2) gradyan ∇f(x)'i hesaplayın (3) gradyanın tersi yönde hareket edin, yani (c, d)'den (a, b). Bunu düşünmenin yolu, algoritmanın bir noktada fonksiyonun eğimini bulması ve ardından eğimin tersi yönde hareket etmesidir.

sigmoid işlevi nedir?

Sigmoid işlevi veya sigmoid eğrisi, doğrusal olmayan ve şekil olarak S harfine (dolayısıyla adı) çok benzeyen bir tür matematiksel işlevdir. Yöneylem araştırması, istatistik ve diğer disiplinlerde, gerçek değerli büyümenin belirli biçimlerini modellemek için kullanılır. Ayrıca bilgisayar bilimi ve mühendisliğinde, özellikle sinir ağları ve yapay zeka ile ilgili alanlarda çok çeşitli uygulamalarda kullanılmaktadır. Sigmoid fonksiyonlar, yapay sinir ağlarına dayalı pekiştirmeli öğrenme algoritmalarının girdilerinin bir parçası olarak kullanılır.

Stokastik Gradyan İniş Algoritması Nedir?

Stokastik Gradient Descent, fonksiyonun yerel minimumunu bulmak için klasik Gradient Descent algoritmasının popüler varyasyonlarından biridir. Algoritma değeri minimize etmek için fonksiyonun gideceği yönü rastgele seçer ve yön yerel minimuma ulaşılana kadar tekrarlanır. Amaç, bu işlemi sürekli tekrarlayarak algoritmanın fonksiyonun global veya yerel minimumuna yakınsamasıdır.