Zeki Optimizasyon Teknikleri Yapay Sinir Ağları (Artificial Neural Network) Doç.Dr. M. Ali Akcayol Yapay Sinir Ağları Biyolojik sinir sisteminden esinlenerek ortaya çıkmıştır. İnsan beyninin öğrenme, eski bilgiye dayalı tahmin etme, eksik bilgiyi tamamlama gibi yeteneklerini makinelere kazandırmayı amaçlar. Birçok işlem ünitesinden (processing elements, units, neuron) oluşur. Birçok farklı alanda başarıyla uygulanmıştır. (İşaret tanıma, el yazısı tanıma, ileriye dönük tahminde bulunma, adaptif kontrol, gürültülü veya eksik bilgileri tanıma v.b.)
Yapay Sinir Ağları (Biyolojik nöron) İşlem birimlerine neuron (nöron) adı verilir. Her nöron bir gövde (body), akson (axon) ve çok sayıda dentrit ten (dendrites) oluşmaktadır. Bir nöron aktif (firing) veya pasif (rest) durumunda olabilir. Eğer toplam giriş değeri belirtilen eşik değerinden (threshold - bias) büyükse nöron aktif olur aksi takdirde pasiftir. Sinaps nöron ile başka bir nöron un dentrit i arasındaki boşluktur. Yapay Sinir Ağları (Yapay nöron) Node olarak adlandırılan birçok sayıda işlem ünitesinden oluşmaktadır. Her bir node girişlere ve çıkışlara sahiptir. Her node (nöron) sahip olduğu aktivasyon fonksiyonu (activation function) ile basit hesaplamalar yapar. Nöronlar aktif olmak için bir eşik değerine (treshold - bias) sahiptir. Nöronlar girişine gelen değerler için giriş fonksiyonuna sahiptir. (Genellikle girişlerin toplamı alınır) w 0 bias x w f : aktivasyon fonksiyonu Girişler x i w i h(w 0,w i, x i ) y = f( h) y x n w n h : w i ve x i birleştirir Çıkış 2
Yapay Sinir Ağları (Yapay nöron) Yapay sinir ağları ile biyolojik sinir ağları ANN -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Node lar giriş çıkış node fonksiyonu Bağlantılar Bağlantı gücü Biyolojik NN -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Hücre gövdesi Diğer nöronlardan işaret ateşleme frekansı ateşleme mekanizması Sinapslar Sinaptic gücü Yapay Sinir Ağları (Tarihçe) Walter Pitts & Warren McCulloch 943 yılında biyolojik nöronların ilk yapay modelini oluşturmuşlardır. Bütün mantıksal işlemler farklı eşik değerleri ve farklı ağırlıklar ile gerçekleştirilmiştir. Donald Hebb 949 yılında Hebb öğrenme kuralını bulmuştur. Eğer iki nöron aktifse ikisi arasındaki bağlantı güçlendirilir. Rosenblatt 958 yılında ilk perceptron u buldu ve öğrenme metodu geliştirdi. 960 yılında Widrow ve Hoff ADALINE ı geliştirdi. Türevlenebilir fonksiyonlarla gradiant descent tabanlı öğrenme kuralını budular. 3
Yapay Sinir Ağları (Tarihçe) 96 yılında Rosenblatt backpropagation öğrenme şemasını önerdi ancak ağın eğitiminde başarılı olamadı. Minsky ve Papert 969 yılında perceptron un bazı basit mantıksal işlemlerde l yetersiz olduğunu ğ göstermişlerdir. öt il Örneğin bir perceptron un XOR problemini çözemediği görüldü. Çok katmanlı ağ ile bu tür problemlerin çözülebileceği düşünüldü ancak nasıl eğitilebileceği konusunda çözüm bulunamadı. 980 li yıllarda bu iki problem çok katmanlı ve farklı ağ yapıları kullanılarak çözüldü. Günümüzde ANN diğer yapay zeka teknikleriyle (fuzzy logic, genetik algoritma) birlikte kullanılarak çok daha etkin çözümler ortaya koymaktadır. Yapay Sinir Ağları (Perceptron) Tek katmanlı bir işlem ünitesi. Perceptron tüm girişleri toplar ve eşik değeriyle karşılaştırır. Eğer sonuç eşik değerden (sign function için 0) büyükse değilse - değerini (sign activation function) çıkış olarak üretir. 4
Yapay Sinir Ağları (Perceptron) En çok kullanılan node fonksiyonları Step, if input > c a, diğer Ramp, if input > d a, if input < c a+(input-c)(b-a)/(d-c), diğer Yapay Sinir Ağları (Perceptron) En çok kullanılan node fonksiyonları Sigmoid f(x) = /(+e -x ) Gaussian 5
Yapay Sinir Ağları Diğer node fonksiyonları ψ ψ ψ ψ ψ ψ ψ ψ Yapay Sinir Ağları AND Perceptron girişler 0 veya ikiside ise çıkış birisi 0 ise çıkış 0 2-D giriş uzayı 4 olası data noktası threshold çizgi ile gösterilebilir. 6
Yapay Sinir Ağları OR Perceptron girişler 0 veya birisi ise çıkış ikiside 0 ise çıkış 0 2-D giriş uzayı 4 olası data noktası threshold çizgi ile gösterilebilir. Yapay Sinir Ağları (ANN Mimarileri) Komple bağlı ağlar (Fully connected networks) Her node diğer tüm node lara bağlıdır. Bağlantılar pozitif, negatif veya 0 olabilir. 7
Yapay Sinir Ağları (ANN Mimarileri) Katmanlı ağlar (Layered networks) Node lar katman ismi verilen alt gruplar halindedir. İleri katmandan geriye doğru bağlantı olamaz. Yapay Sinir Ağları (ANN Mimarileri) İleri beslemeli ağlar (Feedforward networks) Bağlantılar i.katmandaki bir node ile i+.katmandaki bir node arasında yapılabilir. En yaygın kullanılan ağ yapısıdır. 8
Yapay Sinir Ağları (Öğrenme Stratejileri) Denetimli öğrenme (Supervised learning) Ağa belirli giriş değeri için çıkış değerleri verilir. Nöronlar arasındaki ağırlıklar verilen giriş ve çıkış değerlerine göre yarlanır. Delta öğrenme kuralı ve geri yayılmalı (backpropagation) öğrenme denetimli öğrenmedir. Denetimsiz öğrenme (Unsupervised learning) Çıkış değerlerinin girilmesine gerek yoktur. Öğrenme süresince sadece örnek giriş değerleri verilir ve örnekler arasındaki ilişkiler ile sistemin kendi kendisine öğrenmesi sağlanır. Kohonen algoritması ve Adaptive Resonance Theory (ART) denetimsiz öğrenme metodunu kullanır. Destekleyici öğrenme (Reinforcement learning) Denetimli öğrenmenin farklı bir türüdür. Çıkış değerleri girmek yerine verilen giriş değerlerine göre çıkışı değerlendirerek öğrenmeyi sağlar.. Genetik Algoritmalar ve LVQ (Learning Vector Quantizer) ağı destekleyici öğrenme kullanır. Yapay Sinir Ağları (Öğrenme Stratejileri) Denetimli öğrenme (Supervised learning) Hatanın geri yayılımı Hata = t - o Eğitim seti: {(x m, t m ); m P} µ x in o - İstenen çıkış (denetmen) µ t out 9
Yapay Sinir Ağları (Öğrenme) Perceptron öğrenme kuralı w i+ = w i + w i x x 2 d w i = η * x i * (d - o) η = öğrenme oranı (0- arasında) w i = i.bağlantının ağırlık değeri w i = Ağırlık değişim değeri x i = i.girişe i i girilen iil değer dğ d = İstenen çıkış değeri o = Hesaplanan çıkış değeri x x 2 - w w 2.0. 3.3 09 0.9 4.4 2.7 2.2 3. 0.8.5.5 w 0 ao Yapay Sinir Ağları (Öğrenme) x x 2 d.0. 3.3 09 0.9 4.4 2.7 2.2 3. 0.8 (w,w 2 ) (w + w,w 2 + w 2 ) - Minimum hata x x 2 w w 2.5.5 w 0 ao 0
Yapay Sinir Ağları (Hata) Sum Square Error SSE = P K p= j= ( d p, j o p, j ) 2 P = K = Eğitim kümesi boyutu Çıkış vektörü boyutu (Çıkış neuron sayısı) Mean Squared Error MSE = P P p= K j= ( d p, j o p, j ) 2 Yapay Sinir Ağları (Öğrenme) Çok katmanlı ağlarda öğrenme (Backpropagation) r E E E ( w ) =, w w,..., 0 w n E,..., r r r w w+ w r r w = η E ( w ) w w + w i E w = η i i w i i
Yapay Sinir Ağları (Öğrenme) Çok katmanlı ağlarda öğrenme (Backpropagation) w,2 = w,2 + w,2 w,2 =η( E / O 2 )( O 2 / net 2 ) ( net 2 / w,2 ) E / O 2 = ( / O 2 )(T 2 -O 2 ) 2 E / 2 O 2 = -2(T 2 -O 2 ) ( d k ok ) O 2 / net 2 = ( / net 2 )f(net 2 ) O 2 / net 2 = f (net 2 ) net 2 / w,2 =O, E = w,2 = η (T 2 -O 2 ) f (net 2 ) O, Sigmoid f(x) = /(+exp(-x)) f (x) = exp(-x)/(+exp(-x)) 2 I w,2 I 2 = /(+exp(-x)) /(+exp(-x)) 2 = f(x) ( f(x)) I 2 I 3 I 4 I 5 2 3 4 I 6 Layer Layer 2 2 O O 2 Yapay Sinir Ağları (Öğrenme) Çok katmanlı ağlarda öğrenme (Backpropagation) w i,2 = w i,2 + w i,2 w i,2 =η( E / O 2 )( O 2 / net 2 ) ( net 2 / O,2 ) ( O,2 / net,2 ) ( net,2 / w i,2 ) I w i,2 I 2 I 2 I 3 w 2, 2 O net 2 / O,2 = w 2,2 O,2 / net,2 = f (net,2 ) net,2 / w i,2 = I w i,2 = η (T 2 -O 2 )f (net 2 )w 22 2,2 f (net,2 ) I w i,2 =η( E / O )( O / net ) ( net / O,2 ) ( O,2 / net,2 ) ( net,2 / w i,2 ) I 4 I 5 I 6 w 2,2 3 4 Layer 2 Layer 2 w i,2 = η (T -O ) f (net ) w 2, f (net,2 ) I O 2 2
Yapay Sinir Ağları (Öğrenme oranı) 0.0 50 Yapay Sinir Ağları (Uygulamalar Ses tanıma) Problem: İki farklı kişinin merhaba kelimesini söylemesinin öğretilmesi. Kişi = Ahmet 2. Kişi = Mehmet Frekans dağılımı 60 örnek ile alınsın. 3
Yapay Sinir Ağları (Uygulamalar Ses tanıma) Ağ yapısı = ileri beslemeli çok katmanlı 60 giriş (her frekans örneği için) 6 gizli node 2 çıkış (0- ise Ahmet, -0 ise Mehmet ) Yapay Sinir Ağları (Uygulamalar Ses tanıma) Ahmet 0 Mehmet 0 4
Yapay Sinir Ağları (Uygulamalar Ses tanıma) Ahmet 0.43 0.26 Mehmet 0.73 0.55 Yapay Sinir Ağları (Uygulamalar Ses tanıma) Ahmet 0.43 0 = 0.43 0.26 = 0.74 Mehmet 0.73 = 0.27 0.55 0 = 0.55 5
Yapay Sinir Ağları (Uygulamalar Ses tanıma) Ahmet 0.0 0.99 Mehmet 0.99 0.0 Yapay Sinir Ağları (Uygulamalar Karakter tanıma) İleri beslemeli çok katmanlı ağ Bacpropagation öğrenme ğ metodu A B C D E Hidden Layer Output Layer Input Layer 6
Yapay Sinir Ağları (Avantajlar Dezavantajlar) ANN, GA ve FL ANN Öğrenme Kapasitesi Optimizasyon Kapasitesi GA FL İfade Kabiliyeti Yapay Sinir Ağları (Araştırma) Kaynaklar:. Neural Networks, A Comprehensive Foundation, S. Haykin, Prentice Hall (999) 2. Elements of Articial Neural Networks, K.Mehrotra, C.K. Mohan, S.Ranka, MIT, 2000. İnternet adresleri : http://www.neuron.yale.edu/ http://www.sciencedirect.com http://www.scirus.com http://www.google.com.tr 7
Yapay Sinir Ağları Haftalık Ödev: Yapay Sinir Ağları kullanılarak yapılmış bir makale bulup elde edilen sonuçları içeren bir rapor hazırlayınız. İncelenen makalede Yapay Sinir Ağı kullanılmasının gerekçeleri, uygulamanın sonuçları değerlendirilecektir. - İncelenen makale son 5 yılda yayınlanmış olacaktır. - Makale Yurtdışında SCI te taranan bir dergide yayınlanmış olacaktır. - Hazırlanan rapora makalenin tam metnide eklenecektir. - Hazırlanan rapor ve makalenin tamamı diğer öğrencilerin hepsine e-postayla gönderilecektir. 8