Perceptron Öğrenme Algoritması I

Sefa İşci
KaVe

--

Perceptron, girdi verilerindeki özellikleri tespit etmek için hesaplamalar yapan bir yapay sinir ağı birimidir.

Perceptron Öğrenme Algoritması, 1957 yılında Frank Rosenblatt tarafından Cornell Havacılık Labaratuarında icat edilmiştir. Algoritma bize, sinir ağındaki ağırlık katsayılarını en uygun şekilde kullanmamızda yardımcı olur. Optimize edilmiş ağırlık katsayıları bulunduktan sonra, girdi özellikleri bir sinirin uyarılıp uyarılmayacağını belirlemek için bu ağırlıklar ile çarpılır, ve bunun neticesinde bir takım çıkarımlar yapılır. Doğrusal bir sınıflandırma algoritmasıdır.

  1. Temel Kavramlar
  • Özellik vektörleri (Feature vectors) ve etikler (labels) :

Burada x(girdi), sınıflandırma için bir tahmin yapmamızı sağlayan bir vektördür, d burada girdinin boyutunu belirtir ve y bizim çıktımızdır(etiket yada hedef olarak da yazılabilir.)

  • Eğitim Seti (Training Set):

S bizim eğitim setimizi temsil eder. S’in indisi ’n’ ise eğitim için örnek sayısını temsil eder.

  • Sınıflandırıcı (Classifier):

Sınıflandırının görevi, girdiyi belli bir noktaya haritalandırmasıdır, yani uzayı(iki boyut için bir düzlem) ikiye bölmesidir.

  • Eğitim hatası (Train error):

Burada sınıflandırıcıya göre tahmin edilen çıktı değerimiz, etiket değerimize eşit değil ise sınıflandırıcı görevini yerine getiremez ve bunun sonucunda bir hata üretilmiş olur.

  • Test hatası (Test error) :
  • Sınıflandırıcı kümesi (Set of classifiers) :

2. Geometrik Gösterim

Eğitim setimizde görüldüğü üzere dört tane veri bulunmaktadır. Bunların ikisi ‘+’ ve diğer ikisi ise ‘-‘ değerlere sahiptir. Bizim amacımız ise bu eğitim setini doğru bir şekilde sınıflayabilmek.

Fakat asıl mesele henüz göremediğimiz test örneklerini doğru bir şekilde sınıflandırabilmek.

Yani eğitim seti ile test örneği arasında bir bağlantı kurmaya çalışmak. Bu iki kümenin değerleri, başka bir kümenin rastgele seçilmiş değerleridir.

Grafikte görüldüğü üzere veriyi ayırabilmek kaydıyla birden fazla sınıflandırma çizgisi bulunabilir.

3. Orjinden Geçen Doğrusal Sınıflandırıcı

Figür’deki girdinin bulunduğu alt uzay(subspace) çizgisine bakıldığında, sınıflandırmanın doğru bir şekilde yapılabilmesinin altın kuralının, ağırlık vektörünün bu çizgiye dik olması olduğunun farkedilmesi gerekir. Ağırlık vektörü, girdi vektörüne(matrisin kolon vektörlerinden biri) dik ise, diklik(orthogonality) kuralına göre bu iki vektörün skaler çarpımları sıfır olmalıdır.

Bu skaler çarpının sıfıra eşit olması, ağırlık vektörünün girdi vektörüne dik olduğunu belirtir. Aynı zamanda karar sınırımız bu şekilde tespit edilmiş olur.

Karar sınırına göre, girdi vektörü karar sınırının üzerindeyse skaler çarpımları sıfır olmaktadır. Test setindeki sınıflandırma bu şekilde tespit edilir. Fakat yeni girdi vektörü sınırın üst kısmında ise skaler çarpımları pozitif olur. Bunun neticesinde de yeni sınır belirlenir(güncellenir). Aynı durum yeni girdinin sınırın alt kısmında yer alma durumu içinde geçerlidir, o zaman da skaler çarpım negatif olur.

Orjinden geçen doğrusal sınıflandırıcı h(x) için bir formulizasyon belirlenmesi gerekirse;

denklemi açığa çıkar.

4. Denkleştirme Faktörü(Bias) ile Doğrusal Sınıflandırıcılar

Bazen, orjinden geçen doğrusal sınıflandırıcılar veri setini doğru bir şekilde ayıramaz. Bu problemi çözmek için bir denkleştirme faktörü~bias değeri eklenmesi gerekmektedir.

Denkleştirme faktörü, sınıflandırma fonksiyonunun(2 boyutta çizgi) veri setini uygun bir şekilde ayırmasında yardımcı olur.

Doğrusal sınıflandırıcı h(x) için bir formülizasyon belirlemek gerekirse;

denklemi açığa çıkar.

5. Doğrusal Ayırma(Linear Seperation)

Eğitim örnekleri

Eğitim örnekleri doğrusal ayrılabilir eğer ki uygun bir ağırlık vektörü w ve denkleştirme parametresi (offset parameter) b aşağıda bulunan denklemdeki koşula uyuyor ise;

Bu denkleme göre tahmin edilen y_hat değeri ile gerçek olan y değeri çarpıldığında sonuç pozitif olduğunda ‘doğrusal bir şekilde ayırılabilir’ denilebilir.

6. Doğrusal Sınıflandırıcıyı Öğrenme

  • Doğrusal sınıflandırma için eğitim hatası(orjinden)

yukarıda gördüğünüz bu denklemi ağırlık vektörü fonksiyonu cinsinden yazar isek;

Denklemi açığa çıkmış olur. Bu denkleme bakıldığında, verilen y etiketinin işareti ile ağırlık vektörü ve girdi vektörünün skaler çarpımının işareti aynı olmaz ise algoritmanın hata üretmesi, dikkat edilmesi gereken önemli bir yerdir.

Ayrıca y etiket değeri ile hesaplanılmış olan skaler çarpımın çarpımı sıfır olursa, bu örnek tam karar sınırının üzerinde olmasından dolayı, hangi yöne doğru sınıflandırma yapılmasını gerektiğini bilinemez. Dolayısı ile ağırlık vektörü ile girdi vektörünün skaler çarpımının sıfır olması durumu perceptron algoritmasına göre her zaman bir hata olarak algılanmaktadır.

  • Doğrusal sınıflandırma için eğitim hatası

7. Perceptron Algoritması : Geometrik Örnek

Şekilde görüldüğü gibi 1. nokta ‘+’ ve 2. nokta ‘-‘ olmak üzere iki farklı nokta bulunmaktadır. Dikkat edilirse ilk ağırlık vektörü w = 0’dır(vektör). Atamadan sonra algoritma bu durumu bir hata olarak algılar ve ağırlık vektörünü günceller w = x[0] olur(+ noktası). Algoritmanın ileri aşamaları aşağıda görülebilir.

8. Percepton Öğrenme Algoritması(Off set ile)

9. Perceptron Öğrenme Algoritması (with Gradient Descent)

10. Perceptron Öğrenme Algoritmasının Yapay Sinir Ağları ile Gösterimi (Conventional)

11. Aktivasyon Fonksiyonlarının Önemi

Aktivasyon fonksiyonları sayesinde doğrusal olarak ayrılamayan (sınıflanamayan) veriler, doğrusal olmayan şekilde ayrılabilirler. Aktivasyon fonksiyonları verileri dönüştürmeye, farklı bir boyut kazandırmaya yarar. Bunun sonucunda da veriler sınıflandırılabilir.

12. Örnek Problem

Aşağıda verilen küçük veri seti bilgilerine göre orjinden geçen bir perceptron algoritması oluşturmaya çalışın.

13. Kaynaklar

  • edX : Machine Learning with Python-From Linear Models to Deep Learning :

https://courses.edx.org/courses/course-v1:MITx+6.86x+1T2019/course/

  • MIT : Artificial Intelligence :

https://www.youtube.com/watch?v=_PwhiWxHK8o&list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi&index=17

Ders ile ilgili slaytlara, ve örnek kodlara ulaşmak için;

sayfasına bakabilirsiniz.

--

--