Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Yapay sinir Ağlarında Perceptron ve Lineer Fonksiyonlar
#1
[Resim: JYe46u.jpg]

Lineer fonksiyonlar, y = W.x+ b şeklinde tanımlanan fonksiyonlardır. Bu fonksiyonlarda y değeri x'in değerine bağlı olduğu için bağımlı değişken, x değeri ise herhangi bir girdi olabileceği için bağımsız değişken olarak tanımlanır. W ve b değerleri ise fonksiyonun parametreleri olarak tanımlanmaktadır.

[Resim: B0npJw.jpg]



Genelde yapay sinir ağı modelinin en küçük parçası olan perceptron'da bu şekilde y = W.x+b lineer fonksiyonuyla tanımlanır. Yukarıdaki şekilde tanımlanan ağın yapay sinir ağındaki karşılığı perceptron'dur; perceptronlar yapay sinir ağlarının en küçük öğrenme birimi olarak tanımlanırlar. Bu fonksiyonda yukarıda gösterildiği üzere W değeri ağırlık parametresi, x değeri girdi, b değeri bias ve y değeride ağın çıktısı olarak tanımlanmaktadır. Burada x girdi değerimiz, örneğin kedi resimlerini tanıyorsak kedi resmine ait matrisi, y ise bu resmin kediye ne kadar benzediğine dair skoru verir. Parametrelerimiz olan W ağırlık ve b bias değerlerini bu çıktı skorunu iyileştirmek için kullanılır. Bu anlamda çok katmanlı yapay sinir ağlarında yada derin öğrenme de yaptığımız temel şey modelimiz için en iyi skoru verecek w ve b parametre değerlerini hesaplamaktır.


[Resim: U4Ph5K.jpg]
Çok katmanlı yapay sinir ağlarında yukarıdaki şekilde de gösterildiği gibi tek bir nörona (maviler) bağlı, birden fazla girdi (sarılar) olabilir. Aynı zamanda aynı seviyede birden fazla nöronda kullanılabilir. Nöronlar ardı ardına katmanlar şeklinde de kullanılabilir; bu tarz ağ yapısı çok katmanlı yapay sinir ağı (MLP) olarak adlandırlır. Çok katmanlı yapay sinir ağlarında aradaki katmanlar (maviler) gizli katman (hidden layer) olarak isimlendirilmektedir. Son katman (yeşiller) ise çıktı sonuç katmanıdır.
Soru : Birden fazla nöronun aynı seviyede kullanılmasıyla, ardı ardına kullanılması arasındaki fark nedir?
Aynı seviyedeki nöronlar birbirini etkilemezken, ardı ardına katmanlar şeklinde kullanılan nöronlar birbirinin çıktısından etkilenir. Özetle söylecek olursak aynı seviyede fazla nöron olması akılda tutulan bilgiyi artırırken, ardı ardına katman kullanılması da öğrenme seviyesini artırmaktadır. Tabiki bu açıklamadan katman sayısını sonsuza doğru artırdıkça daha iyi öğrenme olacağı, başarımın sürekli artacağı gibi bir sonuç çıkaramayız. Çünkü modelimiz ağın girdisi olan x değerleri ve model içinde öğrenilemeyen hiper parametrelere de fazlaca bağımlıdır. Burada düğüm (node) için nöron kelimesi kullanılması yapay sinir ağlarının insan beyninin çalışma yapısını modellemeye çalışmasından ileri gelmektedir. Katman ve nöron sayısı başarımı artırmasına karşı hesaplama zamanını da doğru orantılı olarak artırmaktadır. Bu nedenle katman ve nöron sayısı model oluştururken dikkat edilmesi gereken özel hiper parametrelerdir.
f = W.x + b lineer fonksiyonun hesaplanması; girdi X değeri genelde bir vektörü temsil ettiği için, x (girdi vektörü) ve W(ağırlık vektörü) arasında bir matris çarpımı yapılarak, çıkan sonucun bias (b) değeri ile toplanması şeklinde yapılır. Bu lineer skor fonksiyonu, bizim için problemi çözen (fit eden) doğrunun fonksiyonudur. Yani elimizde ki x girdilerini ve bu girdilere karşılık gelen y değerlerini kullanarak oluşturacağımız doğru, modeli fit eden lineer çözüm doğrusu olacaktır. Elimizde problemi fit edecek y = W.x+b şeklinde bir fonksiyon var ise, en uygun doğruyu hesaplayabilmemiz en uygun W ve b değerlerine bağlı olacaktır. Çünkü x değeri fonksiyonun girdisidir ve kullanıcı tarafından değişikliğe uğratılamaz; bağımsız değişkendir. Bununla birlikte W ve b parametre değerleri problemi çözecek şekilde değiştirilebilir. Bu nedenle bu w ve b değerleri değiştirilerek, problemi çözecek en uygun hale getirilmeye çalışılır. Bununla birlikte teorik olarak problemi çözecek birden fazla w ve b (ikilileri) değer kümeleri olabilir. Hız ve başarım açısından hangisinin en iyi olduğu, ve en iyi kümenin nasıl seçileceği de çok katmanlı yapay sinir ağlarında tasarımında karar verilecek hiper parametreler vasıtasıyla yapılır.
Yukarıdaki açıklamadan da anlaşılacağı üzere "Yapay sinir ağı ve onun bir alt kümesi olan derin öğrenme modellerinde yapılmaya çalışılan temelde; problemi fit edecek en uygun W ve b parametre vektörlerini hesaplamak (öğrenmektir)".
Soru : y = W.x+b fonksiyonunda W gibi bir parametre varken, b (bias) değerine neden ihtiyacımız var? 
y = W.x+b fonkiyonunda, W ağırlıkları x'e bağlı hareket etmektedir; W.x matris çarpımı işleminin sonucu her durumda x'in değerinden etkilenmektedir. Bu nedenle W.x matris çarpım sonucu modeli fit edecek doğruyu sadece x/y doğrultusunda hareket ettirebilmektedir. Bu durumda belli bir değerden sonra doğrunun daha iyi fit etmesine engel olmaktadır. Bu problemi çözmek için, iyi bir doğru fit edebilmek için, x’den bağımsız, x'in değeri ne olursa olsun hep aynı olan b bias değişkeni kullanılır. Bias b değişkeni elde edilen doğrunun ötelenmesinde (shift) kullanılır. Bağımlı W parametresi ile x/y doğrusunda hareket sağlanırken, bağımsız b parametresi ile x/y doğrultusunda oluşturulan doğrunun aşağı yukarı hareketi sağlanır; yani bias b değerinin doğruyu shift işlemi yapabilme yeteği sayesinde problemi fit edecek en uygun doğru oluşturulabilir. Bias b değeri x girdi değeri ile herhangi bir etkileşime girmeden çıktı skor değerine etki etmektedir. W.x çarpımından oluşturulan lineer doğruyu öteleyerek daha iyi çözecek konuma getirir.
Bias b değerinin ikinci bir katkısıda; x’in sıfır olduğu durumlarda W ağırlığı ne olursa olsun tüm iterasyonların sonucunda W.x çarpım sonucu sıfır olacaktır. Doğal olarak öğrenme gerçekleşmeyecektir. Bias değeri ile 0 olan x değerlerinin skor fonksiyon çıktısı bir miktar ötelenerek, modelin sonraki itrasyonlarda öğrenmeye devam etmesi sağlanmaktadır.
Soru : Kaç adet ağırlık (W) ve bias (b) değeri vardır? Bias b ve ağırlık W sayısı birbirine eşit midir?
Oluşturulan ağda node'lar arasında kaç adet bağlantı var ise o kadar W değeri olacaktır. Bununla birlikte bias b değer sayısı hedef node sayısı kadardır. Her bir katmanda kaç adet düğüm (node) varsa o sayıda bias değeri vardır; node sayısının azalıp azalması bias (b) sayısını da aynı ölçüde azalıp artırır. Bununla birlikte bu katmanlar arasındaki node'lar arasında kaç adet bağ varsa o kadar ağırlık (w) değeri vardır.
Soru : Ağırlık W değerinin başlangıç değerleri nasıl belirlenir?
Ağırlık değerleri başlangıçta tamamen rastgele yada belli bir aralıkta belli bir dağılama göre rastgele de belirlenebilir. Örneğin gaussian dağılımana göre başlatılabilir. Sabit sayılarla da başlatılabilir. Daha önce eğitilmiş bir modelin ağırlık değerleri kullanılarak da model başlatılabilir. Sabit bir değerde ya da 0 olarak başlatılması problem oluşturabilir; böyle bir durumda tüm ağırlık değerleri aynı olduğu için modeldeki tüm bağlar aynı değeri hesaplayabilir ve ağırlıkların güncellenmesi de aynı olabilir böyle bir durumda da öğrenme gerçekleşmez. Bunun yerine genel eğilim ağırlıkların, bir kısmının 0'a yakın pozitif, bir kısmınında 0'a yakın negatif değerlerden seçilmesidir. Her zaman 0'a yakın seçilmesi başarımı artıracağı anlamına gelmez, mesela çok fazla katmana sahip ağlarda ağırlıkların 0'a yakın olması geri besleme (backpropagation) işleminin etkisinin başlangıç katmanlarına etkisini azaltabilir.
Soru: Ağırlık W değeri bütün bağlarda aynı mıdır? Öğrenme iterasyonları sonucunda ağırlık değerlerin değişme oluyor mu?
Ağırlık değerleri bütün bağlarda aynı olmak zorunda değildir. Öğrenme sonunda her bir iterasyonda ağırlık değerleri hata değerine göre geribesleme (backpropagation) ile tekrar hesaplanıp güncellenmektedir. Bu güncelleme işlemi tüm eğitim sürecinde devam etmektedir. Bu anlamda ağırlık parametreleri model tarafından problemin çözümü için öğrenilen parametrelerdir ve eğitim boyunca sürekli güncellenirler.
Soru: Bias b değeri bütün node’lar için aynı mıdır? Öğrenme iterasyonları sonucunda bias değerinde değişme oluyor mu?
Bias değeri aslında bir vektördür. Bu vektörde değerler aynı da olabilir, farklı sayılardan da oluşabilir. Bu model tasarlanırken kullanılan hiper parametreye bağlıdır. Her iterasyon sonucunda aslında yapılan yeni W ağırlık, b bias değerinin hesaplanmasıdır. Bu anlamda her iterasyon sonucunda W ve b değerleri bir öncekine göre farkılık göstercektir. Yani model her iterasyon sonucunda w ve b değerleri için daha iyi değerler öğrenerek parametreleri güncelleyecektir.
Soru : Bias b değerinin başlangıç değerleri nasıl belirlenir?
Bias değerleri genelde belli aralıktaki rastgele derğerlerden oluşturulur. Bununla birlikte sabit olarak belirlendiği durumlarda vardır. Rastgele oluşturulduğunda belli bir dağılıma göre hareket etmesi genelde gözetilir.
Gelecek Yapay Zeka İle Gelecek
Alıntı


Foruma Git:


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

Hakkımızda
    Yapay Zeka Forum , Yapay Zekayı Türkiye'ye tanıtmak ve bu alanda Türkçe kaynak sıkıntısını gidermek ve aynı zamanda Yapay Zekaya ilgi duyan tüm kişileri bir araya getirmek amacıyla kurulmuştur.

Yapay Zeka Forum


yapay zeka

,

yapay sinir ağı

,

yapay sinir ağları

,

derin öğrenme

,

makine öğrenmesi