Slide 1 - Ninova

advertisement
Hep iki sınıfa ayırdık daha fazla sınıfa nasıl ayıracağız?
Unutulmaması gereken kısıt ne?
Verilenler:
x , 
l
l
yd
P
l 1
Eğitim Kümesi
Amaç: m sınıfa ayırmak
n
S1 :
w x  w
n 1
i i
 T1
i 1
n
http://richardbowles.tripod.com/neural/slpmlp/
S 2 : T1 
w x  w
 T2
n 1
i i
i 1
.....
n
Öğrenme Kuralı:
S m : Tm1 
w x  w
i i
n 1
 Tm
i 1
1
wm( n1)  c [ yd  y]m1 ( xT )1( n1)
2
wm( n1)  (( yd  y) m1   (v) m1 )( xT )1( n1)
Bu nasıl bir işlem?
Çok Katmanlı Algılayıcı-ÇKA
(Multi-Layer Perceptron)
Teorem: (Kolmogorov 1957)
f ( x1, x2 ,..., xn )
g ij (.)
h j (.)
xi [0,1]n , n  2
f ( x1 , x2 ,..., xn ) ‘e bağlı olmayan
monoton artan
sürekli
tek değişkenli fonksiyon
sürekli
tek değişkenli fonksiyon
 n

f ( x1 , x2 ,..., xn )   h j   gij xi 
j1
 i 1

2n1
Teoremin sonuçları.....
• Kolmogorov Teoremi bir varlık teoremi
f ( x1 , x2 ,..., xn ) ‘i özel bir şekilde ifade edebileceğimizi
söylüyor.
g ij (.)
ve
h j (.) ‘nin ne yapıda olduklarını ve kaç tanesinin
yeterli olacağını söylüyor.
• Kolmogorov Teoremi bir varlık teoremi olduğundan
h j (.) nasıl belirlenir söylemiyor.
g ij (.),
Kolmogorov Teoreminde bazı şeylerden vazgeçelim; tam
olmasın yaklaşık olsun ama fonksiyonları bilelim.
Teorem: (Cybenko 1989)
N yeterince büyük,  j  R ,  herhangi bir sürekli sigmoid
N
fonksiyon

f ( x1 , x2 ,..., xn ) ~
  j w j T x   j
j1

df
a, b  R ve a  b f : R  R
0
dx
lim f ( x)  a lim f ( x)  b
f
x
Giriş
x
Gizli katman 1Gizli katman 2
Çıkış
http://www.oscarkilo.net/wiki/images/8/84/Ffperceptron.png
sigmoid
• Ağ yapısı
giriş katmanı
işlem yapan gizli katmanlar
işlem yapan çıkış katmanı
• Nöron
sürekli türetilebilir,
lineer olmayan aktivasyon
fonksiyonu var
• Eğitim
eğiticili öğrenme
• Öğrenme algoritması
geriye yayılım
x
x1
y1   ( w1 x)
y2   ( w2 y1 )
x2
y   ( wo y )
2
xn
e
- +
yd
Gizli katman ve çıkış katmanındaki her nöron iki iş yapıyor:
(i) nöron çıkışındaki işareti nöron girişindeki işaretler
cinsinden hesaplıyor,
(ii) gradyen vektörünü geriye yayılım için yaklaşık olarak
hesaplıyor
Geriye Yayılım Algoritması
(Back-Propagation Algorithm)
Verilenler:
x , 
l
ydl
P
l 1
Eğitim Kümesi
Hesaplananlar: Eğitim Kümesindeki l. çifte ilişkin çıkış
katmanındaki j. nörondaki hata l
l
l
e j  yd j  y j
1 l 2
(e j )
Nöron j için ani hata:
2
Toplam ani hata: (l ) 1
l 2 Neden sadece
   (e j ) çıkış katmanı?
2 jC
Ortalama karesel hata:
 ort
1 p (l )
 
p l 1
Ağdaki hangi
büyüklüklere bağlı?
Verilen eğitim kümesi için, ortalama karesel hata  ort ‘yı
öğrenme performansının ölçütü olarak al ve bu amaç
ölçütünü enazlayan parametreleri belirle.
EK BİLGİ
Bazı Eniyileme (Optimizasyon) Teknikleri
Eniyileme problemi
min f ( x)
x
Kısıtlar:
f ( x) : R n  R
h( x )  0
g( x)  0
h( x ) : R n  R p
Kısıtsız Eniyileme Problemi
minn f ( x)
xR
g(x) : R n  R m
Teorem:
  Rn ,
1. Mertebeden
gerek koşul
x*  
Teorem:
  Rn ,
f (.)  C1
f (.) ‘in ekstremum noktası ise
f ( x* )  0
f (.)  C 2 , x*  
2. Mertebeden
yeter koşul
(i ) f ( x* )  0
Nasıl hesaplanır?
(ii ) H ( x* ) kesin pozitif
x*   f (.) ‘in minimum noktasıdır.
Doğrultu Belirleme (Line Search) Algoritması
• x (0) başlangıç noktasını belirle
• s doğrultusunu belirle
• f ( x ( k )  s ( k ) )‘yı  ‘ya göre enazlayan  (k )‘yı belirle
• x(k 1)  x( k )   ( k ) s (k ) doğrultusunu belirle
Amaç:
f ( x ( k 1) )  f ( x ( k ) )
Beklenti: Algoritma fonksiyonu enazlayan x* ‘a yakınsayacak
Ne zaman sona erdilecek?
• s doğrultusunu belirle
 s ( k ) ˆ f ( x ( k ) )
f ( x ( k 1) )  f ( x ( k ) )  
Nasıl ?
“en dik iniş “ (steepest descent)
  ( k ) s ( k ) ˆ  H 1 ( x ( k ) )f ( x ( k ) )
1 ( k )T ( k ) 1
(k ) (k )
  s ˆ  [ J J ] f ( x ( k ) )
2
Newton Metodu
Gauss-Newton Metodu
Bu doğrultuların işe yaradığını nasıl gösterebiliriz?
Download