Derin Öğrenme Deep Learning
Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü
Bu dersin sunumları, “Simon Haykin, Neural Networks and Learning Machines, Prentice Hall, 2016.” kitabı kullanılarak hazırlanmıştır.
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
Öğrenme nedir?
Öğrenme sürecinde, model içerisindeki parametreler problemin çözümü için optimize edilir.
Parametre sayısı geliştirilen modelin öğrenme kapasitesiyle ilişkilidir.
Modelin parametrelerinin optimizasyonu için
deterministik/nondeterministik farklı algoritmalar kullanılabilir.
Modellenen sisteme ait veriler eğitim sürecinde geliştirilen modele giriş olarak verilir.
Denetimli öğrenme yapan sistemlerde çıkış verisi de modele verilir.
3
Öğrenme nedir?
Dinamik bir sistem aşağıdaki gibi M adet giriş ve bir tane çıkışa sahip olsun.
Sistemde,
i.
sıradaki girişleri gösterir. Eğitim veriseti aşağıdaki gibi tanımlanabilir.
Eğitim setindeki her satır için istenen çıkış ise
d(i)
ile gösterilir.Öğrenme nedir?
Sistem aşağıdaki gibi modellenebilir.
Modelin parametreleri her girişin ağırlık değerleridir (
w
). Öğrenme sürecinde istenen sonucu elde edecek
w
ağırlıkları belirlenir.5
Öğrenme nedir?
Modelde ileri doğru geçişte giriş değerlerine göre ağırlıklar kullanılarak çıkış hesaplanır.
Öğrenme nedir?
Parametrelerin optimizasyonu sürecinde ağırlıkların optimal çözümü (
w
*) bulunur. E
(w*)
maliyet fonksiyonu ağırlık vektörüne göre minimize edilir (unconstraint optimization). Optimalite için gerekli şart,
7
Öğrenme nedir?
gradient operatörüdür,
E(w) hata vektörünün gradient operatörüdür,
Her iterasyonda hesaplanan yeni ağırlık değerleri ile maliyet fonksiyonu daha küçük değer alır.
Öğrenme nedir?
Steepest descent algoritmasında ağırlıklar gradyan vektörünün ters yönünde değiştirilir.
E(w) gradient operatörüdür,
Burada,
ağırlıkların değişme hızını ayarlar ve öğrenme oranı veya adım boyutu olarak adlandırılır.9
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
Perceptron öğrenme kuralı w
i+1= w
i+ Dw
iDw
i= * x
i* (d - o)
= öğrenme oranı (0-1 arasında) w
i= i.bağlantının ağırlık değeri D w
i= Ağırlık değişim değeri x
i= i.girişe girilen değer d = İstenen çıkış değeri o = Hesaplanan çıkış değeri
11
x1 x2 d
1.0 1.1 3.3 0.9 1.4 2.7
… … …
2.2 3.1 0.8
w0 .5
.5 x1
x2 -1
w1
w2 o
Perceptron öğrenme kuralı
w0
a .5
.5 x1
x2 -1
w1
w2 o
x1 x2 d
1.0 1.1 3.3 0.9 1.4 2.7
… … …
2.2 3.1 0.8
(w1, w2) (w1+Dw1, w2 +Dw2)
Minimum hata
Perceptron öğrenme kuralı
13
Sum Square Error (SSE)
Mean Squared Error (MSE)
P = Eğitim kümesi boyutu
K = Çıkış vektörü boyutu (Çıkış neuronsayısı)
Kj
j p j
p P
p
o P d
MSE
1
2 , ,
1
) 1 (
Kj
j p j
p P
p
o d
SSE
1
2 , ,
1
) (
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
Çok katmanlı ileri beslemeli ağlar
15
Çok katmanlı ağlarda geriye yayılım (backpropagation) yöntemiyle öğrenme gerçekleştirilebilir.
Eğitim verisetindeki her satır için çıkış hatası hesaplanır.
Çıkış hatasına göre ağırlıklar çıkıştan girişe doğru değiştirilir.
Ağırlıkların değişimini hesaplamak için gradyan vektörü kullanılır.
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ağlarda geriye yayılım (backpropagation) yöntemiyle ağırlıklar değiştirilir (öğrenme).
Eğitim seti:
-
{(xm, tm); 1≤ m ≤ P}
Hata = t - o
o Hatanın geri yayılımı
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
17
Çok katmanlı ileri beslemeli ağlarda öğrenme
Çok katmanlı ağlarda hataların farklarının karelerinin toplamı ağırlıkları değiştirmek için geri yayılım yapılır.
Eğitim verisetindeki her satır için ağırlıklar çıkıştan girişe doğru değiştirilir.
w w
w D
Çok katmanlı ileri beslemeli ağlarda öğrenme
19
w1,2= w1,2+ Dw1,2
Dw1,2=(∂E / ∂O2)(∂O2/ ∂net2) (∂net2/ ∂w1,2)
∂E / ∂O2 = (∂ / ∂O2)(T2-O2)2
∂E / ∂O2 = -2(T2-O2)
∂O2/ ∂net2= (∂ / ∂net2)f(net2)
∂O2/ ∂net2= f ' (net2)
∂net2/ ∂w1,2= O1,1
Dw1,2= (T2-O2) f '(net2) O1,1
Sigmoid f(x) = 1/(1+exp(-x)) f '(x) = exp(-x)/(1+exp(-x)) 2
= 1/(1+exp(-x)) – 1/(1+exp(-x)) 2= f(x) (1 – f(x)) I1
I2 I3 I4 I5 I6
O1
O2 w1,2
1 2 3 4
1
2
Layer 2 Layer 1
O1,1
Çok katmanlı ileri beslemeli ağlarda öğrenme
wi1,2= wi1,2+ Dwi1,2
Dwi1,2=(∂E / ∂O2)(∂O2/ ∂net2) (∂net2/ ∂O1,2) (∂O1,2/ ∂net1,2)
(∂net1,2/ ∂wi1,2)
∂net2/ ∂O1,2= w2,2
∂O1,2/ ∂net1,2= f '(net1,2)
∂net1,2/ ∂wi1,2= I1
Dwi1,2= (T2-O2) f '(net2) w2,2 f’(net1,2) I1
Dwi1,2=(∂E / ∂O1)(∂O1/ ∂net1) (∂net1/ ∂O1,2) (∂ / ∂net1,2) (∂net1,2/ ∂wi1,2)
I1 I2 I3 I4 I5 I6
O1
O2 w2,1
1 2 3 4
1
2 Layer 2 Layer 1
w2,2 wi1,2
Dwi1,2= (T1-O1) f '(net1) w2,1 f’(net1,2) I1
O1,2
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
21
Öğrenme hızı
Öğrenme hızı çok yüksek olursa kararsızlık olur, çok düşük olursa öğrenme çok uzun süre alır.
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
23
Örnek: Ses tanıma
Problem: İki farklı kişinin “merhaba” kelimesini söylemesinin öğretilmesi
1. Kişi = Ahmet 2. Kişi = Mehmet
Frekans dağılımı 60 örnek ile alınsın.
Örnek: Ses tanıma
25
Ağ yapısı = ileri beslemeli çok katmanlı 60 giriş (her frekans örneği için) 6 gizli node
2 çıkış (0-1 ise “Ahmet”, 1-0 ise “Mehmet”)
Örnek: Ses tanıma
Ahmet
Mehmet
0 1
1
Örnek: Ses tanıma
27
Ahmet
Mehmet
0.43 0.26
0.73 0.55
Örnek: Ses tanıma
Ahmet
Mehmet
0.26 – 1 = 0.74
0.73 – 1 = 0.27 0.55 – 0 = 0.55 0.43 – 0 = 0.43
Örnek: Ses tanıma
29
Ahmet
Mehmet
0.01 0.99
0.99 0.01
İçerik
Öğrenme nedir?
Perceptron öğrenme kuralı
Çok katmanlı ileri beslemeli ağlar
Çok katmanlı ileri beslemeli ağlarda öğrenme
Öğrenme hızı
Örnek: Ses tanıma
Örnek: Karakter tanıma
Örnek: Karakter tanıma
31
A B
E D C
Output Layer
Input Layer
Hidden Layer
• İleri beslemeli çok katmanlı ağ
• Backpropagation öğrenme metodu