MXNet ile Derin Öğrenme 2.1: Softmax Regresyon (Teori)
Herkese merhabalar, MXNet ile derin öğrenme serisine devam ediyoruz. İlk iki bölümde doğrusal regresyon konusunda teorik bilgiler paylaşıp python programlama dili ile uygulama yapmıştık. Bu bölümde softmax regresyon konusunda teorik bilgiler paylaşılacaktır.
Doğrusal regresyon teori kısmına buradan
Doğrusal regresyon uygulama kısmına buradan ulaşabilirsiniz.
Regresyon, ne kadar veya kaç tane? gibi sorulara cevap vermek ıstediğimizde kullandığımız yöntemdir. Bir evin satılacağı fiyatı veya bir basketbol takımının kazanabileceği galibiyet sayısını veya bir hastanın taburcu edilmeden önce hastanede kalacağı gün sayısını tahmin etmek istiyorsanız, o zaman muhtemelen bir regresyon modeli kullanmanız gerekmektedir.
Fakat genellikle sınıflandırma uygulamasında ne kadar sorusunu değil hangisi? sorusunun cevabına erişmek için kullanılmaktadır:
- Bu e-posta spam klasörüne mi yoksa gelen kutusuna mı ait?
- Bu müşterinin bir abonelik hizmetine kaydolma veya kaydolmama olasılığı daha mı yüksek?
- Bu resim bir eşeği, köpeği, kediyi veya horozu mu tasvir ediyor?
Sınıflandırma Problemi
Basit bir görüntü sınıflandırma problemiyle başlayalım. Buradaki her giriş 2 × 2 gri tonlamalı bir görüntüden oluşur. Her piksel değerini tek bir skaler ile temsil edebiliriz ve bize dört özellik x1, x2, x3, x4 verir. Ayrıca her görüntünün “kedi”, “tavuk” ve “köpek” kategorilerinden birine ait olduğunu varsayalım.
Daha sonra, etiketlerin nasıl temsil edileceği seçilmelidir. İki bariz seçenek var. Birincisi ve en kullanışlı olan, tam sayıların sırasıyla {köpek, kedi, tavuk} ‘u temsil ettiği y ∈ {1, 2, 3}’ ü seçmek olacaktır. Bu seçenek, bilgileri bir bilgisayarda depolamanın harika bir yoludur.
Ancak genel sınıflandırma sorunları, sınıflar arasında doğal sıralamalarla gelmez. Neyse ki, istatistikçiler uzun zaman önce kategorik verileri temsil etmenin basit bir yolunu keşfettiler: one hot encoding. one hot encoding, kategorilerimiz kadar bileşen içeren bir vektördür. Belirli bir örneğin kategorisine karşılık gelen bileşen 1’e ve diğer tüm bileşenler 0’a ayarlanmıştır. Buradaki durumdada, bir etiket y üç boyutlu bir vektör olur ve (1, 0, 0) “cat” e karşılık gelir, ( 0, 1, 0) “tavuk” a ve (0, 0, 1) “köpek” e:
Şekil 1: Etiketlere one hot encoding uygulanması
Sinir Ağı Mimarisi
Tüm olası sınıflarla ilişkili koşullu olasılıkları tahmin etmek için, sınıf başına bir tane olmak üzere birden çok çıktıya sahip bir modele ihtiyaç var. Doğrusal modellerle sınıflandırmayı ele almak için, çıktılar olduğu kadar çok sayıda afin dönüşümüne ihtiyacımız olacak. Her çıktı kendi afin işlevine karşılık gelecektir. Bizim durumumuzda, 4 özellik ve 3 olası çıktı kategorisi olduğu için, ağırlıkları (w) temsil etmek için 12 skalere ve önyargıları (bias) temsil etmek için 3 skalere ihtiyaç olacak. Her giriş için şu üç logit’i, o1, o2 ve o3’ü hesaplanacak:
Şekil 2: Logitlerin hesaplanması
Doğrusal regresyonda olduğu gibi, softmax regresyon da tek katmanlı bir sinir ağıdır. Ve her çıktının (o1, o2 ve o3) hesaplanması tüm girişlere (x1, x2, x3 ve x4) bağlı olduğundan, softmax regresyonunun çıkış katmanı da tam bağlantılı katman olarak tanımlanabilir.
Şekil 3: Softmax regresyon mimarisi
Modeli daha kompakt bir şekilde ifade etmek için doğrusal cebir gösterim kullanabilmektedir. Vektör biçiminde, hem matematik hem de kod yazmak için daha uygun bir form olan o = Wx + b‘ye ulaşabilriz. tüm ağırlıklarımızı 3 × 4 bir matris halinde toplandı ve belirli bir veri örneği x’in özellikleri için, çıktılarımız, girdi özelliklerimiz artı önyargılarla (bias) ağırlıkların bir matris-vektör çarpımı tarafından verilmektedir.
Softmax Operasyonu
Buradaki ana yaklaşım, modelin çıktılarını olasılıklar olarak yorumlamaktır. Gözlemlenen verilerin olasılığını en üst düzeye çıkaran olasılıklar üretmek için parametreler optimize edilecektir. Ardından, tahminler oluşturmak için bir eşik belirlenecek, örneğin maksimum tahmin edilen olasılıklara sahip etiket seçilecek.
Biçimsel olarak ifade etmek gerekirse, herhangi bir yˆj çıktısının, belirli bir öğenin j sınıfına ait olma olasılığı olarak yorumlanmasını isteriz. Daha sonra tahmini argmaxj yj olarak en büyük çıktı değerine sahip sınıf seçilebilir. Örneğin, yˆ1, yˆ2 ve yˆ3 sırasıyla 0.1, 0.8 ve 0.1 ise, o zaman (örnekte) “tavuğu” temsil eden kategori 2 tahmin edilir.
Çıktıları olasılıklar olarak yorumlamak için, bunların negatif olmayacağını ve toplamının 1 olacağını garanti edilmelidir. Dahası, modeli gerçeğe uygun olasılıkları tahmin etmeye teşvik eden bir eğitim hedefine ihtiyaç var. Bir sınıflandırıcı 0.5 çıktı verdiğinde tüm örneklerden, bu örneklerin yarısının gerçekte tahmin edilen sınıfa ait olacağını umuluyor. Bu, kalibrasyon adı verilen bir özelliktir.
Sosyal bilimci R. Duncan Luce [1] tarafından seçim modelleri bağlamında icat edilen softmax işlevi tam da bunu yapıyor. Logitleri negatif olmayacak ve toplamı 1 olacak şekilde dönüştürmek için, modelin farklılaştırılabilir kalmasını gerektirirken, önce her logit üslenir (negatif olmamasını sağlar) ve sonra toplamlarına bölünür (toplamlarının 1 olmasını sağlamak için):
Şekil 3: Softmax formülü
Tüm j için 0 ≤ yˆj ≤ 1 ile yˆ1 +y2 + ˆy3 = 1 görmek kolaydır. Dolayısıyla yˆ, eleman değerleri buna göre yorumlanabilen uygun bir olasılık dağılımıdır. Softmax işleminin, her sınıfa atanan olasılıkları belirleyen basitçe pre-softmax değerleri olan logitler arasındaki sıralamayı değiştirmediğini unutmayın. Bu nedenle, tahmin sırasında en olası sınıf yine de seçilebilir:
Şekil 4: Argmax uygulanması
Softmax doğrusal olmayan bir fonksiyon olmasına rağmen, softmax regresyonunun çıktıları hala girdi özelliklerinin afin dönüşümü ile belirlenir; dolayısıyla, softmax regresyon doğrusal bir modeldir.
Minibatchler için vektörleştirme
Hesaplama verimliliğini artırmak ve GPU’lardan yararlanmak için, genellikle mini parti grupları için vektör hesaplamaları yaparız. Özellik boyutluluğuna (girdi sayısı) d ve parti boyutuna n sahip bir mini grup X örneğinin verildiğini varsayalım. Ayrıca, çıktıda q kategorilerinin olduğunu varsayalım. Daha sonra, mini parti özellikleri X, R n × d, ağırlıkları W ∈ R d × q ve sapma b b R 1 × q’yu karşılar.
Şekil 5: Vektörleştirme
Kayıp Fonksiyonu
Tahmin edilen olasılıkların kalitesini ölçmek için bir kayıp fonksiyonuna ihtiyaç var. Doğrusal regresyonda ortalama kare hata hedefi için olasılıksal bir gerekçelendirme sağlarken karşılaştığımız aynı kavram olan maksimum olasılık tahminine güvenilecektir.
Log-Likelihood
Softmax işlevi bize herhangi bir x girdisi verildiğinde her sınıfın tahmini koşullu olasılıkları olarak yorumlayabileceğimiz bir yˆ vektörü verir, örneğin, yˆ1 = P (y = cat | x). {X, Y} veri kümesinin tamamının n tane örneğe sahip olduğunu varsayalım, burada i tarafından indekslenen örnek bir özellik vektörü x(i) ve bir tekli etiket vektörü y(i) içerir. Özellikleri göz önüne alındığında, gerçek sınıfların modelimize göre ne kadar olası olduğunu kontrol ederek tahminleri gerçeklikle karşılaştırabiliriz:
Şekil 6: Olasılık tahmini
Maksimum olasılık tahminine göre, log-lıkelihoodu en aza indirmeye eşdeğer olan P (Y | X) ‘i maksimize ederiz:
Şekil 7: Maksimize edilmiş log-likelihood
herhangi bir etiket y çifti ve yˆ model tahmini için q sınıfları için, kayıp fonksiyonu l
Şekil 8: Kayıp fonksiyonu
Kayıp işlevi genellikle çapraz entropi kaybı olarak adlandırılır. Y, q uzunluğunda tek sıcak bir vektör olduğundan, tüm koordinatlarının toplamı j, bir terim hariç tümü için kaybolur. Tüm yˆj tahmin edilen olasılıklar olduğundan, logaritmaları hiçbir zaman 0’dan büyük değildir. Sonuç olarak, gerçek etiketi kesin olarak doğru tahmin edersek, yani tahmin edilen olasılık P (y | x) = 1 ise, kayıp fonksiyonu daha fazla küçültülemez. Örneğin, veri kümesinde etiket gürültüsü olabilir (bazı örnekler yanlış etiketlenmiş olabilir). Girdi özellikleri her örneği mükemmel bir şekilde sınıflandırmak için yeterince bilgilendirici olmadığında da mümkün olmayabilir.
Softmax ve Türevleri
Kayıp tanımını ve softmax tanımını kullanarak:
Şekil 9: Kayıp ve softmaks fonksiyounun entegresi
Neler olduğunu biraz daha iyi anlamak için herhangi bir logit oj’ye göre türevi düşünün.
Şekil 10: Kayıp fonksiyınun herhangi bir logite göre türevi
Türev, softmax işlemiyle ifade edilen modelimiz tarafından atanan olasılık ile one-hot etiket vektöründeki öğeler tarafından ifade edilen gerçekte ne olduğu arasındaki farktır. Bu anlamda, regresyonda görülene çok benzer, burada gradyan y gözlemi ile yˆ tahmini arasındaki farktır. Herhangi bir üstel aile modelinde, log-likelihood gradyanları tam olarak bu terim tarafından verilmektedir.
Cross-Entropy Kayıp Fonksiyonu
Şimdi, sadece tek bir sonucu değil, sonuçlara göre bütün bir dağılımın gözlemlendiği durumu düşünün. Y etiketi için önceki ile aynı gösterim kullanabilir. Tek fark, yalnızca ikili girişler içeren bir vektör yerine (örneğin (0, 0, 1)), artık genel bir olasılık vektörüne (örneğin (0.1, 0.2, 0.7) sahip olunduğudur. Daha önce kayıp l’yi tanımlamak için kullandığımız matematik hala iyi çalışıyor, sadece yorum biraz daha genel. Etiketler üzerinden dağıtım için beklenen kayıp değeridir. Bu kayıp, çapraz entropi kaybı olarak adlandırılır ve sınıflandırma problemlerinde en sık kullanılan kayıplardan biridir.
Model Tahmin ve Değerlendirme
Softmax regresyon modelini eğittikten sonra, herhangi bir örnek özellik verildiğinde, her bir çıktı sınıfının olasılığını tahmin edilebilir. Normalde, en yüksek tahmin edilen olasılığa sahip sınıfı çıktı sınıfı olarak kullanılır. Gerçek sınıfla (etiket) tutarlıysa tahmin doğrudur. Deneyin bir sonraki bölümünde, modelin performansını değerlendirmek için doğruluğu kullanacağız. Bu, doğru tahmin sayısı ile toplam tahmin sayısı arasındaki orana eşittir.
Serinin üçüncü bölümünü tamamlamış bulunmaktayız. Bu bölümde softmax regresyounun teorik altyapısını anlattık. Serinin dördüncü bölümde softmax regresyonu MXNet derin öğrenme kütüphanesini kullanarak python programlama dili ile gerçekleştireceğiz.
Serinin sonraki bölümlerinde görüşmek dileğiyle.