Yapay Sinir Ağları
Giriş Neden Yapay Sinir Ağları (YSA) Bazı görevler insanlar tarafından kolaylıkla yerine getirilirken onların Von Neumann makinesi tabanlı geleneksel paradigmalar ile yerine getirilmesi zordur. Örüntü tanıma (eski arkadaşlar, el yazısı karakterleri) İçerik adreslemeli geri çağırma Yakınsama, genel kanı muhakemesi (sürüş, piyano çalma) Bu görevleri sıklıkla tanımlamak zordur, deneyim tabanlıdırlar ve bu görevlere mantık uygulamak zordur
Bu nedir? Siz bunu görürsünüz: Oysa kamera bunu görür:
Bilgisayarlı görü: Car detection Arabalar Araba değil Testing: Bu nedir?
Öğrenme algoritması pixel 1 pixel 2 Raw image pixel 2 pixel 1 Cars “Non”-Cars
Learning Algorithm pixel 1 pixel 2 Raw image pixel 2 pixel 1 Cars “Non”-Cars
Learning Algorithm 50 x 50 pixel images→ 2500 pixels (7500 if RGB) Raw image pixel 2 pixel 1 intensity pixel 2 intensity pixel 2500 intensity pixel 1 Quadratic features ( ): ≈3 million features Cars “Non”-Cars
Biyolojik Esinlenme İnsan beyninin en temel özelliği olan Öğrenme İlişkilendirme Sınıflandırma Genelleme Özellik Belirleme Optimizasyon işlemlerinden örnek alınmıştır.
Giriş Von Neumann Makinesi ---------------------------------------------- Hatırı sayılır hesaplama gücü olan bir veya birkaç yüksek hızlı işlemci İletim için bir veya birkaç tane paylaşımlı, yüksek hızlı veri iletim kanalı Adreslerle idare edilen sıralı bellek Problem çözme bilgisi hesaplama bileşeninden ayrılır Yeni durumlara uyum sağlama zordur İnsan Beyni ---------------------------------------------- Limitli hesaplama gücüne sahip, daha düşük hızlı ama çok daha fazla sayıda işlemci (1011 civarında) Düşük hızlı çok sayıda iletim kanalı (1015 civarında) İçerik adreslemeli geri çağırma Problem çözme bilgisi nöronların bağlantısında yer alır Bağlantıların değiştirilmesi ile adaptasyon sağlanabilir
Biyolojik sinir hücresi (nöron) Her bir neuron bir gövde (body), bir akson (axon) ve çok sayıda sinir uçlarına (dendrites) sahiptir. İki durumdan birinde olabilir : ateşleme(firing) ve sönme(rest). Eğer gelen toplam uyarım eşik değerini aşarsa nöron fire pozisyonuna geçer. Synapse: bir nöronun aksonu ile diğerinin sinir ucu arasındaki ince aralıktır. Sinyal değişimi Synaptic güç/etkinlik
Giriş Bir YSA nedir? “Beynin bir işlevi yerine getirme yöntemini modellemek için tasarlanan bir sistem olarak tanımlanabilir” Düğümlerin bir kümesidir (birimler, nöronlar, işlem elemanları) Her bir düğümün giriş ve çıkışı vardır Her bir düğüm onun düğüm fonksiyonu tarafından basit bir hesaplama yerine getirir Düğümler arasında ağırlık yüklenmiş bağlantılar (Weighted connections) vardır. Bağlantı şekli (connectivity) ağın mimarisini/yapısını verir YSA, hayvan sinir sistemindeki nöronlara ait ağın çok basitleştirilmiş bir versiyonu gibi görülebilir.
Yapay Sinir Ağı Giriş Düğümler Bağlantılar Bio Sinir Ağı giriş çıkış -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Düğümler giriş çıkış düğüm fonksiyonu Bağlantılar bağlantı gücü Bio Sinir Ağı -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Hücre gövdesi diğer nöronlardan sinyaller yanma(firing) frekansı yanma mekanizması Sinapsisler Sinaptik güç
Tarihçe Pitts & McCulloch (1943) Hebb (1949) Biyolojik nöronların ilk matematiksel modeli Bütün boolean işlemleri nöron benzeri düğümler ile gerçeklenebilir (farklı eşik ve tahrik edici/dizginleyici bağlantılar ile) Genel amaçlı hesaplama cihazı için Von Neumann modeline rakip Otomata teorisinin orijini Hebb (1949) Öğrenim için Hebbian kuralı : her ne zaman i ve j aktive edilirse; i ve j nöronları arasındaki bağlantı gücü artar. Veya her ne zaman eşzamanlı olarak i ve j nöronlarının her ikisi birden ON veya OFF yapılırsa i ve j düğümleri arasındaki bağlantı gücü artar.
İlk yükseliş (50’s – early 60’s) Tarihçe x1 x2 xn İlk yükseliş (50’s – early 60’s) Rosenblatt (1958) Perceptron: örüntü sınıflandırma için eşik düğümlerinin ağı Perceptron öğrenim kuralı Perceptron convergence teoremi: perceptron ile sunulabilen her şey öğrenebilir Widrow and Hoff (1960, 1962) gradient descent (eğim düşümü) tabanlı öğrenim kuralı Minsky, Pitts/McCulloch birimleri ile genel amaçlı bir makine icat etmeye girişmiştir.
Gerileme (60 ortaları – 70 sonları) Tarihçe Gerileme (60 ortaları – 70 sonları) Perceptron model ile ilgili ciddi problemler ortaya çıkmıştır (Minsky’s book 1969) Single layer perceptrons; XOR gibi basit fonksiyonları sunamaz (öğrenemez) Çok katmanlı doğrusal olmayan birimler daha büyük güce sahip olabilir fakat böylesi ağlar için öğrenim kuralı yoktur Ölçekleme problemi: bağlantı ağırlıkları sonsuz olarak büyüyebilir İlk iki problemin 80’li yıllardaki çabalarla üstesinden gelinmiştir, fakat ölçekleme problemi hala devam etmektedir. Rosenblatt’ın ölümü (1964) Von Neumann machine ve AI çekişiyor
Yeniden büyük ilgi (80li yıllar ve sonrası) Tarihçe Yeniden büyük ilgi (80li yıllar ve sonrası) Yeni teknikler Çok katmanlı feed forward ağlar için Back-propagation öğrenim (with non-linear, differentiable node functions) Termodinamik modeller (Hopfield net, Boltzmann machine, etc.) Denetimsiz öğrenim Etkileyici uygulamalar (karakter tanıma, ses tanıma, metinden sese dönüşüm, proses kontrol, ortak bellek, vs) Geleneksel yaklaşımlar zor işlerle yeniden mücadele etmeye başlamıştır Uyarı: Zorluklar ve limitler tahmin edilemeyebilir Çözümlerden daha çok problemler ortaya çıkmaktadır
Ağırlıklı giriş toplamı YSA Nöron Modelleri Her bir nöronun diğer düğümlerden gelen bir veya daha fazla girişi ve diğer düğümlere giden bir çıkışı vardır. Giriş/çıkış değerleri Binary {0, 1} Bipolar {-1, 1} Sürekli olabilir. Bir düğüm için bütün girişler aynı zamanda gelir ve çıktı hesap edilene kadar aktive edilmiş olarak kalırlar. Linklerle ağırlıklar uyumludur Genel nöron modeli Ağırlıklı giriş toplamı
Düğüm fonksiyonları Step (threshold) fonksiyonu c eşik olarak adlandırılır Ramp function Step function Ramp function
Sigmoid function Node Function y = 0 ve z = 0 olduğunda: S-şekillidir Sürekli ve her bir değer diğerinden farklı Bazı noktalarda (net = c) dönüşlü olarak simetriktir Asimptotik olarak doygun noktalara yaklaşır Örnekler: Sigmoid function y = 0 ve z = 0 olduğunda: a = 0, b = 1, c = 0. y = 0 ve z = -0.5 olduğunda a = -0.5, b = 0.5, c = 0. Daha büyük x daha dik eğriler verir
Gaussian function Node Function Çan şekillidir (radial basis) Sürekli |net| büyük olduğunda f(net) asimptotik olarak 0 veya bazı sabit değerlere yakınsar Tekil maksimum (net = ) Örnek : Gaussian function
Katmanlı Ağlar Network Architecture Düğümler katman adı verilen altkümelere bölünür j > k ise j katmanındaki düğümlerden k katmanındakilere -doğru- bağlantı yoktur. Ortam girişleri katman 0’daki düğümlere uygulanır (input layer). Giriş katmanındaki düğümler hiçbir hesaplama yapılmadan taşıyıcılarda tutulur (Örn, onları düğüm fonksiyonları identity fonksiyondur)
İleri Beslemeli Ağlar Network Architecture i katmanındaki bir düğümden sadece i+1 katmanındaki düğümlere bağlantıya izin verilir. En geniş kullanıma sahip mimaridir. Conceptually, nodes at higher levels successively abstract features from preceding layers
Çevrimi Olmayan Ağlar Recurrent Ağlar Modüler Ağlar Network Architecture Çevrimi Olmayan Ağlar Bağlantılar doğrudan çevrimsel formda değildir. Çok katmanlı ileri beslemeli ağlar çevrimsel olmayan ağlardır Recurrent Ağlar Doğrudan çevrimli ağlardır Çevrimsel olmayan ağlara oranla analiz edilmesi daha zordur Modüler Ağlar Eğer, bir ağın yapması gereken işlemler birbirleriyle de haberleşmeksizin iki yada daha fazla modüle (alt yapıya) ayrılabiliyorsa bu ağlar modül YSA’ları olarak söylenir Modüller arasında seyrek bağlantılar vardır
Sinir Ağları Ağ Mimarisi Nöron tipleri Öğrenme algoritmaları Uygulamalar
Ağ Mimarisi ağın mimarisi yapısı 3 Tek katmanlı ileri beslemeli(single-layer feed-forward ) Çok katmanlı multi-layer feed-forward Özyinelemeli (recurrent) YSA ların mimarı yapısı eğitim setinde kullandıkları öğrenme algoritmasıyla ilişkilidir.
Tek katmanlı Single Layer Feed-forward Input layer of source nodes Output layer of neurons
Çok katmanlı (Multi layer feed-forward ) 3-4-2 Network Çıktı katmanı Girdi katmanı Saklı katman
Recurrent network Recurrent Network with hidden neuron: unit delay operator z-1 is used to model a dynamic system z-1 input hidden output
Nöron b x1 w1 v y x2 w2 …………. xm wm Bias Aktivasyon fonksiyonu Local Field v Çıktı y Girdi değerleri x2 w2 …………. Toplama fonksiyonu xm wm ağırlıklar
Bias as extra input The bias is an external parameter of the neuron. It can be modeled by adding an extra input. w0 x0 = +1 x1 w1 Activation function Local Field v Input signal Output y x2 w2 Summing function ………….. Synaptic weights xm wm
Aktivasyon Fonksiyonu Farklı uygulamalarda kullanılan bir çok farklı aktivasyon fonksiyonu vardır. En çok kullanılanlar: Hard-limiter Piecewise linear Sigmoid Hyperbolic tangent
Neuron Models The choice of determines the neuron model. Examples: step function: ramp function: sigmoid function: with z,x,y parameters Gaussian function:
Öğrenme Algoritmları Ağ mimarisine dayanmaktadır: Hatayı düzelterek öğrenme (perceptron) Delta rule (AdaLine, Backprop) Competitive Learning (Self Organizing Maps)
Uygulama alanları Classification: Regression: Pattern association: Image recognition Speech recognition Diagnostic Fraud detection … Regression: Forecasting (prediction on base of past history) Pattern association: Retrieve an image from corrupted one Clustering: clients profiles disease subtypes
Perceptron: architecture We consider the architecture: feed-forward NN with one layer It is sufficient to study single layer perceptrons with just one neuron:
Single layer perceptrons Generalization to single layer perceptrons with more neurons is easy because: The output units are independent among each other Each weight only affects one of the outputs
Perceptron: Neuron Model (McCulloch-Pitts) perceptron, non-linear sign aktivasyon fonksiyonu kullanan tek katmanlı NN dir x1 x2 xn w2 w1 wn b (bias) v y (v)
Perceptronun Geometrik görüntüsü decision region for C1 x2 w1x1 + w2x2 + w0 >= 0 decision boundary C1 x1 C2 w1x1 + w2x2 + w0 = 0
Perceptron: Öğrenme algoritması Değişken ve parametreler: x (n) = Girdi vektörü = [+1, x1(n), x2(n), …, xm(n)]T w(n) = ağırlık vektörü = [b(n), w1(n), w2(n), …, wm(n)]T b(n) = bias (kutuplama) y(n) = ysa çıktısı d(n) = istenilen çıktı = öğrenme katsayısı parametresi
Öğrenme algoritması = öğrenme katsayısı (0-1 aralığında) n=1; Başlangıç Ağırlık vekörü w(n) rastgele ata; while (yanlış sınıflandırılan bir örüntü kalmayıncaya kadar) Yanlış sınıflandırılan örneği seç (x(n),d(n)) w(n+1) = w(n) + d(n)x(n); n = n+1; end-while; = öğrenme katsayısı (0-1 aralığında)
Örnek C1 C2, 2 boyutlu eğitim seti olsun C1 = {(1,1), (1, -1), (0, -1)} sınıf 1 C2 = {(-1,-1), (-1,1), (0,1)} sınıf -1 C1 C2 perceptron ile eğitelim
Execution Güncelle: w(n+1) = w(n) + d(n)x(n); End epoch 1 Başlangıç ağırlık vektörü w(1)=(1,0,0), =1, Güncelle: w(n+1) = w(n) + d(n)x(n); End epoch 1
Execution End epoch 2 epoch 3 te hiç bir ağırlık değişmiyor. Algoritmanın çalışmasını durdur. Son ağırlık vektörü: (0, 2, -1). Karar hiperdüzlemi 2x1 - x2 = 0.
Result x2 C2 x1 w C1 - - Karar sınırı: 2x1 - x2 = 0 - 1 + -1 1 2 -1 + 1/2 w -1 C1 - + +
Perceptron: Limitations perceptron sadece lineer olarak ayrılabilen sınıflar için uygun modelleme yapar AND OR COMPLEMENT XOR için modelleme yapamaz