• Hesap Oluştur
  • Oturum Aç

Yapay sinir Ağlarında Skor fonksiyonu

admin    0

    • avatar

    admin  26-03-2019, 01:01

    Kredi:
    #1
    [color=rgba(0, 0, 0, 0.75)]Aşağıdaki gibi bir yapay sinir ağı düşündüğümüzde bu ağı temsil eden lineer fonksiyonumuz y = W1.x1 + W2.x2 olacaktır. Burada x değerleri daha önce tanımladığımız gibi fonksiyonun girdilerini ve W değerlerinin her bir x için tanımlanmış parametreler ve b değerinin de x'den bağımsız bias değeri olduğunu söylemiştik. Tek bir y değeri için birden fazla x girdisi olabileceği gibi bu x değerlerinin bağlı oldu ayrı y değerleri de olabilir.[/color]

    [color=rgba(0, 0, 0, 0.75)][Resim: VR1AlZ.jpg]
    [Resim: i3I8i5.jpg]
    [/color]

    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Böyle lineer fonksiyonun hesaplanmasında her bir x değeri kendisi için tanımlı W ağırlığı ile çarpılarak toplanır ve en son bias b değeri ile toplanarak y değeri hesaplanır. Burada dikkat edilmesi gereken husus her bir girdi x için bir adet W tanımlanırken, sadece çıktı değeri y kadar (nöron sayısı kadar) b değeri bulunduğudur. Bu şekilde derin öğrenme modelinde birden fazla perceptron bulunabilir bu perceptronların her biri aldığı girdi değerleri için lineer hesaplama yaparak bir çıktı değeri üretir ve bu çıktı değeri skor değeri olarak adlandırılır. Bu skor hesaplama işlemi aslında bir lineer fonksiyon çıktısıdır ve bu fonksiyona skor fonksiyonu (scor function) denir ve y = f(x,W)+b şeklinde tanımlanır.[/color]
    [/color]
    [color=rgba(0, 0, 0, 0.9)]Soru : Derin öğrenmenin non-convex problemlerin çözümünde iyi olduğu söylenmişti fakat burada skor fonksiyonu lineer hesaplama yapıyor, neden?[/color]

    [color=rgba(0, 0, 0, 0.75)]Yapay sinir ağları non-convex problemlerin çözümünde iyi; non-convex problemlerde optimizasyon algoritmaları kullanarak çözülüyor. Bununla birlikte yapay sinir ağlarının en küçük parçası olan perceptronlar lineer fonksiyonlardır ve çıktıları lineer'dir. Bununla birlikte çok katmanlı yapay sinir ağlarında skor fonksiyonun çıktısı aktivasyon fonksiyonları vasıtasıyla non-lineer hale getirilmektedir. Yani optimizasyon fonksiyonları vasıtasıyla problemler non-lineer çözüm üretilmektedir.[/color]

    [color=rgba(0, 0, 0, 0.9)]Loss fonksiyonu (cost fonksiyonu, objective function)[/color]

    [color=rgba(0, 0, 0, 0.75)]Loss fonksiyonu tasarlanan modelin hata oranını aynı zamanda başarımını ölçen fonksiyondur. Derin ağların son katmanı loss fonksiyonun tanımlandığı katmandır. Loss fonksiyonu, hata hesaplama işini problemi bir optimizasyon problemine dönüştürerek yaptığı için optimizasyon terminolojinde kullanılan objective function, cost function isimleriyle de tanımlanmaktadır. Loss fonksiyonu temelde modelin yaptığı tahminin, gerçek değerden (ground truth) ne kadar farklı olduğunu hesaplamaktadır. Bu nedenle iyi tahmin eden bir model oluşturmamışsak, gerçek değer (ground turth) ile tahmin edilen değer arasındaki fark yüksek olacak dolayısıyla loss değeri yüksek olacak, iyi modele sahipsek loss değeri az olacaktır. Birebir aynı olduğu durumda loss 0 olacaktır. İyi bir modelden beklentimiz 0'a yakın loss değerine sahip olmasıdır. Neden 0 değil? Kısa cevabı regularization. Uzun cevabı yazının devamında, soruyu aklımızda tutalım.[/color]
    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Örneğin kedi ve köpek resimlerinden oluşan iki sınıfı ayırabilen model tasarlandığını düşünelim. Bu durumda modele test için kedi resmi verildiğinde o resmin kedi mi köpek mi olduğuna nasıl karar verilecektir? Bunun için kullanılabilecek en basit yöntem en yakın komşu algoritmasıyla teker teker tüm kedi resimleriyle ve tüm köpek resimleriyle farkını alıp, bu farkları toplamaktır. Elde edilen bu fark değerleri bize kedi ve köpek sınıfı için hata oranı verecektir. Test resmi kedi ise kedi sınıfı için hata oranın köpek sınıfına göre daha az olması beklenecektir.[/color][/color]


    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][Resim: jHqB6J.jpg][/color][/color]

    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Yukarıdaki örnekte görüleceği üzere test edilen resim her pixelinden train edilen resimin karşılık gelen pixeli çıkarılarak yeni bir fark resmi oluşturulmakta, bu fark matrisindeki değerler toplanarak iki resim arasındaki fark değeri hesaplanmaktadır. En yakın komşu algoritmasında bu işlem eğitim veri setindeki her bir resim için tekrar edilmektedir. Bu yöntem başarılı olmasına rağmen bir kaç handikabı beraberinde getirmektedir. İlk olarak oluşturulan model içerisinde eğitim esnasında kullanılan tüm resimler yer alacaktır, bu da modelin aşırı büyük olmasına neden olcaktır. İkinci ve en önemli problem ise test işleminde test resmi eğitim kümesindeki tüm resimlerle teker teker karşılaştırılacaktır; bu durumda tespit zamanın uzun sürmesine neden olacaktır. Bu nedenle bu yöntem kullanılabilir değildir. [/color]
    [/color]
    [/color]
    [color=rgba(0, 0, 0, 0.75)]Problemi çözmek için ortaya atılan ikinci yaklaşım ise eğitim esnasında kedi ve köpek sınıflarını mümkün olabilecek en yüksek düzeyde temsil edecek prototip resimler oluşturmak ve test esnasında bu prototip resimlerle test resminin farkına bakarak karar vermektir. Bu yöntemte dikkat edilmesi gereken prensib olabildiğince az sayıda prototiple sınıfları temsil edebilmektir; yani prototip resim sayısının azlığı önemli bir etkendir. Amaç en az sayıda prototip resimle sınıfı temsil edebilmektir. Bu yaklaşım handikaplarından birisi bu temsili resimlerin var olan veri setini olabildiğince yansıtıyor olabilmesidir. Eğer resimler belli ortamlarda yada türlerde çekilmişse prototip o yana meyil gösterecektir. Aynı türe ait farklı resim geldiğinde fark beklenenden büyük olacaktır. Örneğin sadece siyah kedilerin fotoğraflarının olduğu bir model eğitildiğinde oluşacak prototip siyah ağırlıklı renklerden oluşacak ve beyaz kedi geldiğinde fark (loss değeri) büyük olacaktır. Bu nedenle bu yaklaşımda eğitim veri setinin büyüklüğü ve çeşitliliği önemlidir.[/color]

    [color=rgba(0, 0, 0, 0.9)]Prototip (Template)[/color]
    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Öğrenme gerçekleştikten sonra model her bir sınıf için bir prototip resim oluşturmaktadır. Aslında bu prototip, model tarafından öğrenilen ağırlık matrisidir. Buna o sınıfın prototipi yada template denilmektedir. Aşağıda CIFAR verisetine ait prototip resim örnekleri gösterilmiştir. Buna göre problemde 10 adet sınıf var ve herbir sınıfı temsil eden birer adet prototip resim oluşturulmuştur. Daha sonra herhangi bir resmin bu sınıflardan hangisine ait olduğu tespit edilmek istendiğinde; test resmi bu prototiplerin herbiriyle karşılaştırılarak fark değeri hesaplanmakta, en düşük fark hangi prototip ile çıkmışsa resim o sınıfa ait olarak işaretlenmektedir. Prototiple karşılaştırma yönteminde; model sadece prototipleri kayıt etmekte ve karşılaştırma işlemi sadece bu prototipler üzerinden yapılmaktadır. Bu anlamda zaman ve yerden tasarruf edilmektedir.[/color][/color][/color]
    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][Resim: fP3TEY.jpg][/color][/color][/color]

    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Loss değeri hesaplayan birden çok lineer loss fonksiyon türü mevcuttur. Bu loss fonksiyonları yapay sinir ağının ürettiği skorları normalize ederek loss değeri hesaplamaktadır. Bunlardan en sık kullanılanları Sigmoid, Multiclass Support Vector Machine (SVM), Softmax, Cross Entropy Likelihoo vb. dir. Sigmoid iki sınıftan oluşan problemlerin çözümünde kullanılırken diğer fonksiyonlar çok sınıflı problemlerin çözümünde kullanılmaktadır. Lineer sınıflandırıcının yaptığı iş öğrenilen prototip ile eşleme yaparak fark değeri üretmektir. Yani farklı bir açıdan söylenecek olursa Loss fonksiyonu temelde eğitim sonucunda elde edilen W ağırlık ve b bias parametrelerinin problem çözümü için ne kadar uygun olduğunu hesaplamaktadır. [/color]

    [color=rgba(0, 0, 0, 0.75)]Çünkü model eğitildikten sonra elde edilen W ağırlık matrisi sınıf sayısı kadar satır içerecek ve her bir satır problemde tanınmak istenen sınıflar için ağırlık değerleri taşıyacaktır. Eğitim işlemi sonucunda elde edilen W matrisinin her bir satırı sınıfların prototipine tekabül etmektedir. Yeni bir resim test için geldiğinde bu ağırlık matrisi ile çarpılıp sonuç üretilmektedir. Çarpım sonucu modelin her bir sınıfın için benzerlik skorunu belirlemektedir. En yakın komşu algoritmasında tüm resimlerle karşılaştırma yapılırken burada sadece prototip ile karşılaştırma yapılmaktadır.[/color]
    [/color]
    [/color]
    [/color]
    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][Resim: Fu9Dtk.jpg][/color][/color][/color][/color]

    [color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Yukarıda örnek yapay sinir ağı modelinde f = W.x olarak tanımalan f fonksiyonu skor fonksiyonunu temsil ederken, Li fonksiyonu da hata (loss) fonksiyonunu temsil etmektedir. Ağ yapısından da görüleceği üzere modelin başarımı arttırmak için Li loss fonksiyonuna, f skor fonksiyonun yanısıra R(w) iyileştirme (regularization) parametreside eklenmektedir. [/color][color=rgba(0, 0, 0, 0.75)]Regularization error’dan dolayı loss fonksiyonu çıktısı hiç bir zaman sıfır olmayacaktır.[/color][color=rgba(0, 0, 0, 0.75)] Ancak ağırlıkların hepsinin sıfır olduğu durumda sıfır olacaktır. Regularization parametresi hiper parametreler arasındadır, değeri ve varlığı kullanıcıya bağlıdır, kullanılmadığı durumlarda mevcuttur. Regularization yöntemleri ile ilgili daha önce hazırladığımız "[/color]Derin öğrenme uygulamalarında başarım iyileştirme yöntemleri (Regularization)[color=rgba(0, 0, 0, 0.75)] " başlıklı yazıya bakılabilir.[/color][/color][/color][/color][/color]
    Gelecek Yapay Zeka İle Gelecek
    Beğeni

Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi

Foruma Git: