Doğru - SciNet Central

Download Report

Transcript Doğru - SciNet Central

MIT563
Yapay Zeka ve Makine Öğrenmesi
Yrd. Doç. Yuriy Mishchenko
Ders planı
• Yapay Sinir Ağları (Artificial Neural Networks)
Yapay Sinir Ağları
• Yapay Sinir Ağları lineer olmayan ilişkiler
modelleme metodudur
– Önce görülen metodlar lineer metodlardı
– Lineer olmayan ilişkiler için (lineer olmayan) bileşik
özellikler kullanılabilirdi, ama...
– ilişkilerin şekilleri önceden bilmek/tahmin etmek
gerekiyordu
Yapay Sinir Ağları
• Yapay Sinir Ağları başından itibaren lineer
olmayan modeller oluşturur
• Genel durumda, lineer olmayan modellerin
parametreleri bulma son derecede zordur,
ama YSA’ları için verimli algoritmalar
geliştirilmiştir
Yapay Sinir Ağları
• Bu ölçüde, YSA bügünkü en güçlü ve en esnek
makine öğrenme yaklaşımıdır
Yapay Sinir Ağları
• YSA’nın uygulamaları:
– konuşma tanıma
– karakter tanıma
– yapay görme
– robot navigasyonu
– otomatik sürme
– vb.
Yapay Sinir Ağları
• YSA’nin tarihi 1960 yıllarda başladı
• YSA başlangıcı beyin bilimindeki gelişmelere
bağlıydı
Yapay Sinir Ağları
• Beyin, bizim bilişsel işlevlerimiz için temel
araçtır (biliş, düşünme, soyut düşünme, duygu)
– Beyin, özel biyolojik “nöron” hücrelerinden
oluşturulmuştur
– Beyindeki nöronlar yüksek derecede birbirlerine
bağlı olmuştur
– Temel elektriksel seviyede, nöronlar lineer toplama
cihazlarıdır
Yapay Sinir Ağları
• Elektriksel nöron:
– Biyolojik nöronlarda birçok giriş (“dendrite” denir)
ve bir çıkış (“akson” denir) var
– Nöronlar, dendriteler yoluyla diğer nörondan
elektriksel sinyalleri alıp içinde lineer şekilde
toplar
– Toplam sinyaline göre, aksonda çıkış olarak ikili
elektriksel sinyal oluşturulabilir
– Bu sinyal diğer birçok nörona gidip orada ikinci
sinyalları oluşturabilir vb
Yapay Sinir Ağları
• Yapay Sinir Ağlarında, temel eleman bu şekilde
tanımlanır:
– “Lineer-lineer olmayan” toplama cıhazıdır, yani
• girişler lineer şekilde topluyor
• ona göre lineer olmayan bir çıkışı atıyor
– Birkaç girişe sahip olabilir
– Bir çıkışa sahiptir
Yapay Sinir Ağları
YSA temel elemanı–nöron:
x0
x1
x2
x3

Yapay Sinir Ağları
YSA temel elemanı–nöron:
Girişler
x0
x1
x2
x3

Yapay Sinir Ağları
YSA temel elemanı–nöron:
Girişler
x0
Girişlere göre bir
toplama hesaplanır
z

i xi
x1

x2
x3
z
Yapay Sinir Ağları
YSA temel elemanı–nöron:
Girişler
x0
-paremetreleri, nöronun
x1
toplamasını ayarlıyor
z
i xi
x2
x3

Yapay Sinir Ağları
YSA temel elemanı:
Özel olan sabit ek giriş genellikle
tanımlanır – “bias” denir
x0
x1
x2
x3

x0 her zaman 1 verir
Yapay Sinir Ağları
YSA temel elemanı:
Özel olan sabit ek giriş genellikle
tanımlanır – “bias” denir
x0
Buna göre, gerçek
toplama bu şekilde
oluyor:
z  0 
i xi
x1
x2
x3

Yapay Sinir Ağları
YSA temel elemanı:
Çıktı, toplamına göre atanır
x0
x1
x2
x3

h (x)
Yapay Sinir Ağları
YSA temel elemanı:
hθ ya “aktivasyon
fonksiyonu” denir; biz
lojistik fonksiyonunu
kullanacağız
h ( x) 
1
1 e
 T  x
x0
x1
x2
x3

h (x)
Yapay Sinir Ağları
Lojistik fonksiyonu son derste anlatılmış
• Temel seviyede,
– 0’dan 1’e kadar sürekli şekilde değişir
– Büyük negatif girdiler için sıfıra yakın
– Büyük pozitif girdiler için bire yakın
– Bir olayın bir faktörlerin lineer kombinasyonuna
göre olasılığı belirtmiş düşünülebilir
Yapay Sinir Ağları
Lojistik fonksiyonu, g(z)
z
g ( z )  1/(1  e )
Yapay Sinir Ağları
Lojistik regresyon YSA olarak:
Bu şekilde tanımlanmış tek nöron
lojistik regresyonu yapar
• x özellikleri lineer şekilde
toplayıp z değerini hesaplar
• z’ye göre lojistik fonksiyonu
hesaplar
x0
x1
x2

g (z)
x3
g ( z) 
1
1  e z
h ( x)  g ( z   T  x)
Yapay Sinir Ağları
z
Lojistik regresyon YSA olarak:
Bu şekilde tanımlanmış tek nöron
lojistik regresyonu yapar
• x özellikleri lineer şekilde
toplayıp z değerini hesaplar
• z’ye göre lojistik fonksiyonu
hesaplar
i xi
x0
x1
x2
x3

Yapay Sinir Ağları
h ( x)  g ( z )
Lojistik regresyon YSA olarak:
Bu şekilde tanımlanmış tek nöron
lojistik regresyonu yapar
• x özellikleri lineer şekilde
toplayıp z değerini hesaplar
• z’ye göre lojistik fonksiyonu
hesaplar
Lojistik regresyonu, karar
vermenin en basit yaklaşımıdır
x0
x1
x2

x3
g ( z) 
1
1  e z
h ( x)  g ( z   T  x)
Yapay Sinir Ağları
Yapay sınır ağlarında, birçok nöron biraz farklı (parametrelerine bağlı) lojistik regresyonunu
yapıp sonuçlarını diğer nöronlara analiz etme
için sunabiliyor







Yapay Sinir Ağları
Bu şekilde çok zor karar verme sorunları
çözülebilir







Yapay Sinir Ağları
YSA temel elemanları–nöronlar:
• Girdiler lineer şekilde toplanır
– Toplama, bir  “ağırlık” paremetreleri tarafından
ayarlanır
• Toplamı aktivasyon fonksiyonuyla değişip
sonuç olarak çıktısını belirtiyor
x
• Bu şekilde nöron bir lojistik
x
regresyonu hesaplanır
0
1
x2
x3

h (x )
Yapay Sinir Ağları
Yapay Sinir Ağları:
• Nöronlar, genellikle büyük bağlantı ağı içinde
çalışırlar, yan yanında analiz ederek sonuçlarını
sürekli diğer nöronlara sunar
• Böyle sistemler, birçok karmaşık sorunların
çözülmesi ve ilişkilerin modellenmesine
x
yol açar
0
x1
x2
x3

h (x )
Yapay Sinir Ağları
Örnek:
Bir basit YSA
x1
a12
x2
a22
x3
a32
a13
h (x )
Yapay Sinir Ağları
YSA’nda birkaç katman (layer) olmaktadır
x1
a12
x2
a22
x3
a32
a13
katmanlar == 3 tane
Yapay Sinir Ağları
x1
a12
x2
a22
x3
a32
a13
3. katman
1. katman
2. katman
Yapay Sinir Ağları
En soldaki katman modelin girişleri
içermeli–bu katmana “giriş katmanı” denir
x1
a12
x2
a22
x3
a32
Giriş katmanı
a13
Yapay Sinir Ağları
Bunlar, modelin durumunu bir şelilde belirtir; bu şekilde solda
modelin özellikleri olmaktadır
Hava sıcaklığı
x1
a12
Reklam miktarı
x2
a22
Ürün fiyatı
x3
a32
a13
Yapay Sinir Ağları
Bunlar, modelin durumunu bir şelilde belirtir; bu şekilde solda
modelin özellikleri olmaktadır
Hava sıcaklığı
x1
a12
Reklam miktarı
x2
a22
Ürün fiyatı
x3
a32
a13
Yapay Sinir Ağları
En sağdaki katman modelin çıkışını içerir–bu
katmana “çıkış katmanı” denir
x1
a12
x2
a22
x3
a32
a13
Çıkış katmanı
Yapay Sinir Ağları
Bu, modellenecek her hangi değerler verir
Hava sıcaklığı
x1
a12
Reklam miktarı
x2
a22
Ürün fiyatı
x3
a32
a13
Satın alınması olasılığı
Yapay Sinir Ağları
Arasındaki katmanlara
“gizli katmanlar” denir
x1
a12
x2
a22
x3
a32
Gizli katmanlar
a13
Yapay Sinir Ağları
Bunlar, arasındaki bütün hesaplama yapmalı
Hava sıcaklığı
x1
a12
Reklam miktarı
x2
a22
Ürün fiyatı
x3
a32
Satın alınması olasılığı
a13
Yapay Sinir Ağları
• YSA’nda geri bakan bağlantılar hiç yoksa, öyle
YSA’na “ileri beslemeli” denir
• Aksi halde, YSA’na “geri beslemeli” denir
geri beslemeli nöron ağı
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
• Makine öğrenmesinde çoğunlukla sadece “ileri
beslemeli” YSA kullanılır, çünkü onların
öğretilmesi daha basit
ileri beslemeli nöron ağı
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
• Nöronda aij değerleri belirtilir, bunlar nöronın
çıktısını belirtir; bunlara “nöron aktivasyon“
denir
• aij ‘inde, j, nöronun katmanı belirtir ve i,
nöronun katmanda pozisyonunu
Aktivasyon değerleri
verir
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
• Aktivasyonlar, nöron girdilerine bağlıdır, yapay
nöronlarımızın tanımına göre,
ai  g ((i )  x)
j
j T
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
• ij’ye “nöron ağırlıkları” denir
• ij ‘inde, j, nöronun katmanı belirtir ve i, bu
katmanda nöronun pozisyonu verir
x1
a12
x2
a22
x3
a32
 (j)
a13
Yapay Sinir Ağları
• ij ‘ler vektörlerdir, yanı bütün x-girdilerine bir giriş ağırlık
değeri vermektedir
(i j )T  x  i,jk xk
• Burada, ikj (j-1). katmandaki k. nöronun j. katmandaki i.
nörona etkisi demektir
• Bütün k’ler için, ikj ‘lara “ij“ vektörü diyoruz

x1
a12
x2
a22
x3
a32
 (j)
a13
Yapay Sinir Ağları
• Eğer bir j. katman ve i. nöron “ij ” bir vektördür ise ...
• Bir j. katman için ij vektörler birlikte bir “ (j)” matriksi
oluşturur
• Bu matriks e “katmanın ağırlık matriksi” denir (notasyon –
 (j))
• Bu maktriks, katmanın bütün nöronlar için giriş ağırlıklarını
belirtmektedir
x1
a12
x2
a22
x3
a32
 (j)
a13
Yapay Sinir Ağları
Ağırlık matriksi  (j) anlatılmış:
(ij),k
Nöronların ağırlıkları:
Matriks-vektör çarpımı:
(j)
(j)
x
z

1j
2j
3j
4j
5j

j
ik xk
 (
) x z
( j) T
( j)
Yapay Sinir Ağları
Matematiksel şekilde, YSA bu şekilde tanımlanır
a1(2)  g ( z12 )  g ((12 )T  x)
a2(2)
a3(2)


g ( z22 ) 
g ( z32 ) 
g ((22 )T
g ((32 )T
a13  g ( z13 )  g ((13 )T  a(2) )
 x)
 x)
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
a1(2)  g ((12 )T  x)
a2(2)  g ((22 )T  x)
a13  g ((13 )T  a(2) )
a3(2)  g ((32 )T  x)
x1
a12
x2
a22
x3
a32
Buradaki a(2), bütün ai2
aktivasyonlar anlamındadır:
yani a(2)=(a12,a22,a32)
a13
Yapay Sinir Ağları
Çarpım, matriks-vektör
çarpımı anlamındadır:
a1(2)  g ((12 )T  x)
a2(2)  g ((22 )T  x)
a13  g ((13 )T  a(2) )
a3(2)  g ((32 )T  x)
n

x
(13 )T  x 
1 i 1
(13 ),i xi  (13 ),1 x1  (13 ),2 x2  
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
Daha kısaca, matriks-vektör notasyonu
kullanarak bu şekilde yazıyoruz;
a(2)  g ( z (2) )  g (( ( 2) )T  x)
a(3)  g ( z (3) )  g (( (3) )T  a(2) )
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
Yada
a
( j)
 g(z
( j)
)  g ((
x1
a12
x2
a22
x3
a32
) a
( j) T
a13
( j 1)
)
Yapay Sinir Ağları
Sonuç olarak, YSA bu modeli hesaplayabilir:
h ( x)  a
(3)


 g ( )  g ( )  x
x1
a12
x2
a22
x3
a32
3 T
a13
2 T

h (x )
Yapay Sinir Ağları
Böyle modellenebilir fonksiyonların çok
karmaşık olduğu için, YSA çok esnek ve çok
güçlü modelleme yaklaşımıdır


h ( x)  g ( )  g ( )  x
3 T
x1
a12
x2
a22
x3
a32
2 T
a13

h (x )
Yapay Sinir Ağları
Örnek: VE fonksiyonu
VE FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Doğru
Yanlış
Yanlış
Yanlış
Yanlış
Yapay Sinir Ağları
Örnek: VE fonksiyonu
VE FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Doğru
Yanlış
Yanlış
Yanlış
Yanlış
h ( x)  g ( z )
x0
x1
1
0
2=20
a12
x2
22=20
2=-30
z
2
 1  0

2
x11

2
x22
Yapay Sinir Ağları
Örnek: VE fonksiyonu (1 katlı nöron ağı)
VE FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Doğru
Yanlış
Yanlış
Yanlış
Yanlış
h ( x)  g ( z )
x0
x1
1
02=-30
2=20
a12
x2
22=20
z  30  20 x1  20 x2
Yapay Sinir Ağları
Örnek: VE fonksiyonu
VE
1. girdi
2. girdi Sonuç
x1
x2
z
h
Doğru
Doğru
Doğru
1
1
10
1
Doğru
Yanlış
Yanlış
1
0
-10
0
Yanlış
Doğru
Yanlış
0
1
-10
0
Yanlış
Yanlış
Yanlış
0
0
-30
0
h ( x)  g ( z )
x0
x1
1
02=-30
2=20
a12
x2
22=20
z  30  20 x1  20 x2
Yapay Sinir Ağları
Örnek: VEYA fonksiyonu
VEYA FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Doğru
Yanlış
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Yapay Sinir Ağları
Örnek: VEYA fonksiyonu
VEYA FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Doğru
Yanlış
Doğru
Doğru
Yanlış
Yanlış
Yanlış
h ( x)  g ( z )
x0
x1
1
0
2=20
a12
x2
22=20
2=-10
z
2
 1  0

2
x11

2
x22
Yapay Sinir Ağları
Örnek: VEYA fonksiyonu (1 katlı nöron ağı)
VEYA FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Doğru
Doğru
Yanlış
Doğru
Yanlış
Doğru
Doğru
Yanlış
Yanlış
Yanlış
h ( x)  g ( z )
x0
x1
12=20
02=-10
a12
x2
22=20
z  10  20 x1  20 x2
Yapay Sinir Ağları
Örnek: VEYA fonksiyonu
VEYA 1. girdi
2. girdi
Sonuç x1
x2
z
h
Doğru
Doğru
Doğru 1
1
30
1
Doğru
Yanlış
Doğru 1
0
10
1
Yanlış
Doğru
Doğru 0
1
10
1
Yanlış
Yanlış
Yanlış 0
0
-10
0
h ( x)  g ( z )
x0
x1
12=20
02=-10
a12
x2
22=20
z  10  20 x1  20 x2
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
XOR FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Yanlış
Doğru
Yanlış
Doğru
Yanlış
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
XOR FONKSİYONU
1. girdi
2. girdi
Sonuç
Doğru
Doğru
Yanlış
Doğru
Yanlış
Doğru
Yanlış
Doğru
Doğru
Yanlış
Yanlış
Yanlış
Önceki örneklere karşı, gızlı katmanlarsız yapılamaz
(yanı demek ki, gızlı katmanlar önemli, onlarsız çok fazşa
fonksiyon temsil edilemez)
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
2. girdi Sonuç
x1
x2
z 12
a12
Doğru
Doğru
Yanlış
1
1
-30
0
Doğru
Yanlış
Doğru
1
0
-10
0
Yanlış
Doğru
Doğru
0
1
-10
0
Yanlış
Yanlış
Yanlış
0
0
10
1
XOR 1. girdi
x0
10
-20
x1
x2
z 22
sadece (0,0) için yanıyor
a22
z
Adım 1
a12
-20
a13
a22
h
h
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
2. girdi Sonuç
x1
x2
z 12
a12
z 22
a22
Doğru
Doğru
Yanlış
1
1
-30
0
10
1
Doğru
Yanlış
Doğru
1
0
-10
0
-10
0
Yanlış
Doğru
Doğru
0
1
-10
0
-10
0
Yanlış
Yanlış
Yanlış
0
0
10
1
-30
0
XOR 1. girdi
sadece (0,0) için yanıyor
x0
a13
-30
20
20
a22
sadece (1,1) için yanıyor
h
Adım 2
a12
x1
x2
z
h
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
2. girdi Sonuç
x1
x2
z 12
a12
z 22
a22
z
h
Doğru
Doğru
Yanlış
1
1
-30
0
10
1
10
1
Doğru
Yanlış
Doğru
1
0
-10
0
-10
0
-10
0
Yanlış
Doğru
Doğru
0
1
-10
0
-10
0
-10
0
Yanlış
Yanlış
Yanlış
0
0
10
1
-30
0
10
1
XOR 1. girdi
x0
Adım 3
sadece (0,0) için yanıyor
a12
-10
20
x1
a13
20
x2
a22
sadece (1,1) için yanıyor
h
Yapay Sinir Ağları
Örnek: XOR fonksiyonu
2. girdi Sonuç
x1
x2
z 12
a12
z 22
a22
z
h
Doğru
Doğru
Yanlış
1
1
-30
0
10
1
10
1
Doğru
Yanlış
Doğru
1
0
-10
0
-10
0
-10
0
Yanlış
Doğru
Doğru
0
1
-10
0
-10
0
-10
0
Yanlış
Yanlış
Yanlış
0
0
10
1
-30
0
10
1
XOR 1. girdi
x0
a12
x1
x2
a13
a22
h
Yapay Sinir Ağları
YSA’ları, karmaşık lineer olmayan fonksiyonlar
temsil eder ve birçok esnek parametre içerir
Bu nedenle, YSA’ları direkt olarak lineer
olmayan aynı zamanda esnek ve bu nedenle
güçlü genel modelleme yaklaşımıdır


h ( x)  g ( 3 )T  g ( 2 )T  x

x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
• Paramtreler doğru şekilde nasıl seçilir
• Parametreler bulmak için, dereceli azaltma
yada benzer optimizasyon metodu kullanılabilir
• Maliyet fonksiyonu için, lojistik regresyon
maliyeti kullanılabilir (son ders)
Yapay Sinir Ağları
• Dereceli azaltma için, önce maliyetin
türevlerini hesaplamak gerekiyor
Dereceli azaltma
Yakınsamaya kadar tekrarlayın {
bütün j’ler için;

 j : j 
J ( )
 j
}
Yapay Sinir Ağları
Ama “h” çok karmaşık, ve bu türevleri kolay değil
1
J ( ) 
2m
m

( y i log h ( xi )  (1  y i ) log(1  h ( xi )))
i 1


h ( x)  g ( (3) )T  g ( (2) )T  x

Yapay Sinir Ağları
Bu problem, uzun zamandır YSA’nın çok ciddi
sorunu olarak kalıyordu
1
J ( ) 
2m
m

( y i log h ( xi )  (1  y i ) log(1  h ( xi )))
i 1


h ( x)  g ( (3) )T  g ( (2) )T  x

Yapay Sinir Ağları
Geri yayılım algoritması, bu türevleri verimli
şekilde hesaplamak için 1974’te sunulmuş oldu
1
J ( ) 
2m
m

( y i log h ( xi )  (1  y i ) log(1  h ( xi )))
i 1


h ( x)  g ( (3) )T  g ( (2) )T  x

Yapay Sinir Ağları
• Geri yayılım algoritması için en önemli kavram
nöron hatasıdır
• Nöron hatası, nöronun ideal olan istenen
çıktısından farkı demektedir
– aij nöron aktivasyonun ideal istenen çıktılardan farkı
== (j,i) nöronun hatasıdır
– Bu hataları kullanarak J’nin türevleri verimli şekilde
hesaplanabilir, ama ...
– Arasındaki nöronların ideal olan çıktısı genellikle
bilinmez, sadece en son nöron için çıktılar bilinebilir
Yapay Sinir Ağları
• Ana problemi: hatalar başından sadece son
(çıkış) nöron için bilinebilir (çıkış nöronlardan
ne istediğimiz bilinir)
• Sadece bu nöronlar için hataları açıkca
belirtilebilir (yani modellenecek verinin
örnekleri kullanarak çıkış nöronların hataları
tahmin edilebilir)
Yapay Sinir Ağları
Geri yayılım algoritmasının ana fikri:
• Son nöron için (a(3)), hataları bilinir (örnekler
kullanın)
• Bu nöron için hataları bu şekilde hesaplıyoruz:



h ( x)  g ( (3) )T  g ( (2) )T  x  a(3)
Örneklerdeki YSA hataları:
13  a13 ( xi )  yi
Yapay Sinir Ağları
Geri yayılım algoritmasının ana fikri:
• Son nöron için (a(3)), hataları bilinir (örnekler
kullanın)
• Bu nöron için hataları bu şekilde hesaplıyoruz:



h ( x)  g ( (3) )T  g ( (2) )T  x  a(3)
Bu bir örnek idi
13  a13 ( xi )  yi
Yapay Sinir Ağları
Geri yayılım algoritmasının ana fikri:
• Son nöron için (a(3)), hataları bilinir (örnekler
kullanın)
• Bu nöron için hataları bu şekilde hesaplıyoruz:



h ( x)  g ( (3) )T  g ( (2) )T  x  a(3)
Gereken çıktı
13  a13 ( xi )  yi
Yapay Sinir Ağları
Geri yayılım algoritmasının ana fikri:
• Son nöron için (a(3)), hataları bilinir (örnekler
kullanın)
• Bu nöron için hataları bu şekilde hesaplıyoruz:



h ( x)  g ( (3) )T  g ( (2) )T  x  a(3)
YSA’ndan alınmış çıktı
13  a13 ( xi )  yi
Yapay Sinir Ağları
Geri yayılım algoritmasının ana fikri:
• Son nöron için (a(3)), hataları bilinir (örnekler
kullanın)
• Bu nöron için hataları bu şekilde hesaplıyoruz:



h ( x)  g ( (3) )T  g ( (2) )T  x  a(3)
YSA’nın hatası
13  a13 ( xi )  yi
Yapay Sinir Ağları
• Gızlı elemanlar için hataları bilmiyoruz...
?
x1
a12
x2
a22
13  a13 ( xi )  yi
a13
OK
x3
a32
Yapay Sinir Ağları
”Sonraki katmanda hataları kaldırmak için,
önceki katmandaki nöron aktivasyonu ne şekilde
değiştirilmeli ?”
x1
a12
x2
a22
x3
a32
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
Son elemanın 13 hatasını kaldırmak için,
(önceki) a12-a32 elemanlarının değerleri ne
şekilde değiştirilmeli ?
x1
a12
x2
a22
x3
a32
?
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
Bu sorun matematiksel şekilde çözülebilir,
önceki nöronların -hataları için bu “geri
yayılım” formülü alınabilir:
 (n)  ([ (n) ]T   (n1) ).* g ' ( z (n) )
x1
a12
x2
a22
x3
a32
a13
OK
Yapay Sinir Ağları
”Sonraki katmanda hataları kaldırmak için,
önceki katmandaki nöron aktivasyonu ne şekilde
değiştirilmeli ?”
 (n)  ([ (n) ]T   (n1) ).* g ' ( z (n) )
x1
a12
x2
a22
x3
a32
a13
OK
Yapay Sinir Ağları
Daha genel anlamda bu sorunun örnekleri de
ilginçtir; genel anlamda bu bir “suçlama atama
sorunu”dur (blame assignment problem)
x1
a12
12
x2
a22
 22
x3
a32
32
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
• Genel olarak suçlama atama demek ki, “kötü
bir şey oldu ama birçok kişi katkıda bulunduğu
nedeniyle kimin yaptığını bilemiyoruz ”
x1
a12
12
x2
a22
 22
x3
a32
2
3
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
• Büyük organizasyonda önemli bir sorundur
(tabi ki )...
x1
a12
12
x2
a22
 22
x3
a32
2
3
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
• Örnek: bir şirkette ürün çok kötü kalitede
bulunmakta, ama ...
Yapay Sinir Ağları
... Ürün üretiminde birçok kişi katkıda olduğu
nedeniyle bu kimin sorun olduğunu bilmiyoruz
x1
a12
x2
a22
x3
a32
Birçok kişi katkıdadır ...
Ürün kötü !
a13
Kimin sorun ???
Yapay Sinir Ağları
... Ürün üretiminde birçok kişi katkıda olduğu
nedeniyle bu kimin sorun olduğunu bilmiyoruz
x1
a12
Ürün kötü !
Suçlama atama sorunu
x2
a22
x3
a32
Birçok kişi katkıdadır ...
a13
Kimin sorun ???
Yapay Sinir Ağları
Geri yayılım algoritması bu soru için bir cevaptır
(ama tek cevaptır tabi değil)
x1
a12
x2
a22
x3
a32
Birçok kişi katkıdadır ...
Ürün kötü !
a13
Kimin sorun ???
Yapay Sinir Ağları
YSA’ında, benzer şekilde sadece son nöronun
hatası biliniyor ama önce katkıda olan nöronların
hatalarını bulmak gerekiyor
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
Geri yayılım algoritmasında bu sorun bu şekilde
çözülüyor:
 (n)  ([ (n) ]T   (n1) ).* g ' ( z (n) )
x1
a12
x2
a22
x3
a32
a13
Yapay Sinir Ağları
Önemli nokta: burada hatalar geri yayılım
şekilde hesaplanır–ilk önce son hata bulunur,
sonra önceki hatalar bulunur, sonra daha önceki
hatalar bulunur, vb
x1
a12
12
x2
a22
 22
x3
a32
2
3
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
Önemli nokta: burada hatalar geri yayılım
şekilde hesaplanır–ilk önce son hata bulunur,
sonra önceki hatalar bulunur, sonra daha önceki
hatalar bulunur, vb
x1
a12
12
13  a13 ( xi )  yi
Geri yayılım algoritması
 2 bunun için
x2
a22
2
x3
a32
2
3
a13
Yapay Sinir Ağları
Lojistik aktivasyon fonksiyonu için, geri yayılım
algoritması daha basit oluyor
 (n)  ([ (n) ]T   (n1) ).* a(n) . * (1  a(n) )
x1
a12
12
x2
a22
 22
x3
a32
2
3
a13
Yapay Sinir Ağları
Buradaki “.*” vektör notasyonu “element-wise”
çarpımı demektir–(a.*b)=(a1b1,a2b2,...)
 (n)  ([ (n) ]T   (n1) ).* a(n) . * (1  a(n) )
x1
a12
12
x2
a22
 22
x3
a32
2
3
13  a13 ( xi )  yi
a13
Yapay Sinir Ağları
Buradaki “” matriks-vektör çarpımı demektedir
 (n)  ([ (n) ]T   (n1) ).* a(n) . * (1  a(n) )
x1
a12
12
x2
a22
 22
x3
a32
2
3
13  a13 ( xi )  yi
a13
Bütün Geri Yayılım Algoritması
// {(xi,yi)} öğretme kümesini için
Atayın bütün {ij(l):=0 }
DÖNGÜ i, 1’den m’ye kadar tekrarlama {
// m – örneklerin saysısı
Aşağıdakiler, girişle başlayarak “ileri yayılım” şekilde hesaplayın
a(l 1)  g ( (l )  a(l ) )
Modellenecek yi örnek için, çıkış nöronun hatasını hesaplayın
 ( L)  a( L)  y i
Aşağıdakiler, çıkış nöronuyla başlayarak “geri yayılım” şekilde hesaplayın
 (l )  ([ (l ) ]T   (l 1) ).* a(l ) . * (1  a(l ) )
Bütün ij(l) bu şekilde güncelleştirin
(l )
(l )
ij : ij
}
TÜREVLER:

ij(l )
(l ) (l 1)
 a j i
J ( ) 
1 (l )
 ij   ij(l ) ( son terim sadece j  0)
m
Yapay Sinir Ağları
• Notasyon açıklama:
– l, ağdaki katman, toplam L katman;
– (l), (l) katmanın ağırlık matriksidir;
– ij(l), (l-1) katmanın j. nörondan (l) katmanın i.
nörona giriş ağırlığıdır
– a(l), bütün (l) katmanın aktivasyon vektörüdür
–Çarpımlar, yada matriks-vektör yada “elementwise” vektör çarpımı anlamındadır
Yapay Sinir Ağları
• Geri yayılım algoritmasının zor olduğu
nedeniyle, onu uyguladıktan sonra
çalışmasının kontrol edilmesi gerekiyor
– Türevler direkt olarak hesaplayabilir, yani ij(l)‘i
yeni yakın değere değiştirip J/ ij(l) direkt
olarak hesaplanabilir
– Böyle (yaklaşık) sayısal hesaplama sonuçlarını
geri yayılım algoritmasının sonuçlarıyla
karşılaştırabilir, algoritma uygulanmasının
doğrululuğu kontrol edilebilir
Yapay Sinir Ağları
• Uygulamalarda YSA’nın yapısını belirtmek lazım:
– Kaç nöron
– Kaç katman
– Katmanlarda kaç nöron
– Böyle sorulara “YSA mimarısı” denir
x1
x2
s1
s2
Yapay Sinir Ağları
• YSA mimarısı seçmeyle ilgili, bu genel kurallar var:
– Daha çok nöron varsa, sonuç daha iyi olacak
– Daha çok gızlı katman varsa, sonuç daha iyi olacak
x1
x2
s1
s2
Yapay Sinir Ağları
– Nöronları genellikle eş gızlı katmanlara yerleştirir
– Birçok sınıflı sınıflandırma için, ağı birkaç çıkış
nöron içerebilir, bir çıkış nöronun çıktıları belirli
bir sınıf belirtiyor
x1
x2
s1
s2
Yapay Sinir Ağları
• YSA simetri sorunu: gızlı elemanların
numaralandırma herhangi bir şekilde olabilir
• Farklı numaralandırma sonuca hiç bir şekilde
etki edemez; sadece nöronların sayıları
değiştiyse, YSA değişmez
x1
a12
x2
a22
x3
a32
a22
x1
a13
x2
x3
a32
a13
a12
Yapay Sinir Ağları
• Farklı şekilde numaralandırılmış gızlı nöronlar,
ve dolasıyla -matriksleri, eş YSA’nı belirtirler
x1
a12
x2
a22
x3
a32
a22
x1
a13
x2
x3
a32
a13
a12
Yapay Sinir Ağları
• Bu simetrinin önemli bir sonucu var:
Dereceli azaltma metodu simetrik parametresi noktasından başlatılamaz
a22
x1
x1
a12
x2
a22
x3
a32
a13
x2
x3
a32
a13
a12
Yapay Sinir Ağları
• Öyle ise, -hataları, simetri nedeniyle,
birbirlerine eşit olup dereceli azaltma çalışmaz
• Bu nedenle, YSA’nda minimizasyonu sıfıra
yakın rasgele bir-noktasından her zaman
başlatmak gerekiyor
a22
x1
x1
a12
x2
a22
x3
a32
a13
x2
x3
a32
a13
a12
Come again !