Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

YAPAY SİNİR AĞLARI

VE
UYGULAMALARI

Hazırlayan Doç.Dr.Okan Bingöl


1
Yapay Sinir Ağlarının Oluşturulması

Yapay sinir ağları düğüm veya sinir olarak adlandırılan


çok sayıdaki işlem elemanının bir araya gelmesinden
oluşur.

Yapay sinir ağlarının düğümleri ve bağlantıları çok


değişik biçimlerde bir araya getirilebilir. Ağlar bu düğüm
ve bağlantı mimarilerine göre değişik isimler alırlar.

2
Yapay Sinir Ağlarının Oluşturulması

Yapay sinir ağ mimarileri, sinirler arasındaki bağlantıların


yönlerine göre veya ağ içindeki işaretlerin akış yönlerine göre
birbirlerinden ayrılmaktadır.

Buna göre yapay sinir ağları için, ileri beslemeli (feedforward) ve


geri beslemeli (feedback veya recurrent) ağlar olmak üzere iki
temel ağ mimarisi vardır.

3
Yapay Sinir Ağlarının Oluşturulması

 Ağ içerisindeki düğümler katmanlar halinde yerleştirilir.


 İlk katmandaki girişe verilen bilgi ağ içinde ileriye doğru
yayılır.
 Her katmandaki düğümlere sadece önceki katmandaki
düğümlerden girişlere izin verilir.
 Bir düğüm kendinden sonraki her hangi bir düğüme
bağlanabilirken kendisine asla bağlanmaz.
 Son katmandaki işaretler ağın çıkışıdır.
 Geri beslemeli veya tekrarlanan ağlarda en azından bir
düğümün geriye yayıldığı bir dönüş bağlantısı vardır.

4
Yapay Sinir Ağlarının Oluşturulması

 Sinir ağlarında istenen sonucun elde edilmesi için uygun


değerli ağırlıklar ve doğru bağlantılar seçilmelidir.

 Ağ bu şartları karşılayabilmek için sistemin davranışlarını


öğrenmeli ya da kendi kendini örgütlemelidir.

 Öğrenme yapay sinir ağının ayrılmaz bir parçasıdır.

 Öğrenme; giriş değerlerine veya bu girişlerin çıkışlarına bağlı


olarak ağın bağlantı ağırlıklarını değiştiren veya ayarlayan
öğrenme kuralı ile gerçekleştirilir.

5
Yapay Sinir Ağlarının Oluşturulması

Ağların eğitimi için kullanılan öğrenme kuralları genellikle;

 Danışmanlı öğrenme (supervised learning),


 Danışmansız öğrenme (unsupervised learning)
 Pekiştirerek öğrenme (reinforcement learning)’ dir

6
Yapay Sinir Ağlarının Oluşturulması

Danışmanlı öğrenme;
Arzu edilen ağ çıkışının elde edilebilmesi için, çıkış hatasının düşürülmesinde
ağırlıkların uyarlanabilir hale getirilmesini gerektirir.
Danışmanlı öğrenmede her giriş değeri için istenen çıkış sisteme tanıtılır ve yapay
sinir ağının giriş-çıkış ilişkisini gerçekleştirene kadar aşama aşama ayarlar.

Danışmanlı öğrenme çeşitleri;


 Çok katmanlı perceptron (multilayer perceptron),
 Geriye yayılım (backpropagation)
 Delta kuralı, Widrow-Hoff veya en küçük karelerin ortalaması (least mean
square)
 Uyarlanabilir doğrusal eleman (ADALINE)
gibi öğrenme kuralları örnek olarak verilebilir.

7
Yapay Sinir Ağlarının Oluşturulması

Danışmanlı öğrenme;

Çevre Öğretmen
İstenen
tepki
+
Tepki
wij (Ağırlıklar) 
-
Hata işareti

8
Yapay Sinir Ağlarının Oluşturulması

Danışmansız öğrenme;
Bir danışman veya öğretmen, sinir ağına girişin hangi veri parçası sınıfına ait
olduğunu veya ağın nerede iyi sonuç vereceğini söylemez.
Ağ veriyi üyeleri birbirinin benzeri olan öbeklere yol gösterilmeksizin ayırır.
Danışmansız öğrenme danışmanlı öğrenmeye göre çok daha hızlıdır.

Danışmansız öğrenme çeşitleri;


 Yarışmacı öğrenme (competetive learning),
 Kohonen’in Özörgütlemeli harita ağları (self-organizing),
 Hebbian öğrenme,
 Grossberg öğrenme
gibi öğrenme kuralları örnek olarak verilebilir.

9
Yapay Sinir Ağlarının Oluşturulması

Danışmansız öğrenme;

Çevre wij (Ağırlıklar)

Hata işareti

10
Yapay Sinir Ağlarının Oluşturulması

Yaparak öğrenme (pekiştirerek öğrenme);


Ağ doğrudan gerçek ağ çıkışını vermez, ağ çıkışının iyi veya kötü
olarak değerlendirmesini yapar.
Performans bilgisi genellikle ikili sayıdır ve denetim hareketleri
sırasının başarısını gösterir.

11
Bir Yapay Sinir Ağı

Ara (gizli) katmanları olmayan, sadece giriş ve çıkış katmanı olan


ağlar, karmaşık işlevleri hesaplama yeteneğinden yoksundur.
Bu nedenle karmaşık hesaplamalar için oluşturulan ağlarda en az bir
ara katman olmalıdır.
Burada her bir sinir doğrusal olmayan bir etkinlik işlevini
hesaplayabilmektedir.

Giriş Katmanı Gizli katmanlar Çılış katmanı

12
Katmanlar

Sinirlerin bir kısmı gerçek dünyadan girişlerini sağlarken, diğer sinirler


ise ağın çıkışlarında gerçek dünyayı oluşturur. Kalan sinirlerin tümü
gerçek anlamda görünmediğinden gizli katman olarak adlandırılırlar.

Giriş katmanına bir giriş geldiğinde, sinirleri diğer katmanlara giriş


olacak şekilde çıkış üretir.

Gizli sinirlerin (düğümlerin) sayısı ağın en iyi çalışabileceği bir sayıda


seçilmelidir. Eğer gizli sinir sayısı çok arttırılırsa, istenen sonuç
değerinin üzerine çıkılmış olur. Bu durumda ağda genelleşme sorunu
ortaya çıkacaktır.
13
İletişim ve Bağlantı Çeşitleri

Bir sinirin çıkışı diğer bir sinire giriş olarak yollarla bağlanır.
Bu yollar normalde yönlü değildir. Bu nedenle iki sinir arasında iki
yönlü bağlantı vardır.
Sinir, birçok sinirden giriş alır fakat diğer sinirlere aktarılan bir tek
çıkış üretir. Bir katmandaki sinirler kendi aralarında bağlantı kurabilir
veya hiçbir bağlantı olmayabilir.

14
Katmanlar Arası Bağlantılar

Katmanlar arasında kullanılan değişik türde bağlantılar vardır.


 Tam bağlantılı: İlk katmandaki her sinir ikinci katmandaki her sinire
bağlıdır.
 Kısmi Bağlantılı: İki katmanın bir siniri, ikinci katmandaki her
sinirle bağlantılı olmamalıdır.
 İleri Besleme: İlk katmandaki sinirler çıkışlarını ikinci kat sinirlerine
gönderir, fakat ikinci kat sinirlerinden geri bir giriş almazlar.
 Çift Yönlü: İkinci katman sinirlerinin çıkışlarını birinci katman
sinirlerine taşıyan bir başka bağlantı kümesi vardır.
İleri besleme veya çift yönlü bağlantılar tam veya kısmi bağlantı
olabilir.
15
Perceptron

F. Rosentblatt tarafından 1960’larda sinir ağları olarak önerilmiştir.


Perceptronlar son derece sınırlı olmalarına karşın en eski sinir
ağlarından biridir.
Bununla birlikte, mevcut algoritmalarla (geriye yayılma gibi) yakın
ilişki içinde olduklarından çok ilgi çekicidirler.
Rosentblatt, Perceptronları sıradan makinelerin çözemediği
problemleri çözebilen “yeni tür bir bilgisayar” olarak ifade
etmekteydi.
Perceptronlar ilgi çekici makineler olsalar da, bu düşünce
doğrulanamamıştır.

16
Turing Makinesi ve Perceptron

İngiliz matematikçisi Alan, Turing Makinesi (TM) fikrini ortaya


çıkarmıştır. TM girdi çıktı haritasını hesaplayan bir makinedir.
Perceptron bir TM’dir. fakat bazı mantıksal işlevleri
gerçekleştiremediği için bir UTM’nin gücüne sahip değildir.
Bundan dolayı Perceptron beyini taklit edebilme becerisine sahip
olması zor gözükmektedir.
En basit yapay sinir ağı örneği tek katmanlı ve tek sinirli bir
Perceptrondur.
Bu yapay sinir ağ’larının birden çok girişi ve tek bir çıkışı vardır. Çıkış
değeri 1 veya 0 olmaktadır.
Perceptronlar genellikle nesneleri iki ayrı sınıfa ayırmak için
kullanılmıştır. 17
Turing Makinesi ve Perceptron

x1 w1

 n

w2 1 eger  wi xi  
x2 yi   i 1
n yi
 0eger
 
i 1
wi x  
w3
xi

Perceptron örneği

18
Turing Makinesi ve Perceptron

Perceptron, girişlerin ağırlıklı toplamını, eşik değeri olan  ile


karşılaştırır, ağırlıklı toplam, eşik değerinden büyükse sonuç 1 aksi
durumda sonuç 0 olmakta ve çıkışta A ve B diye adlandırabileceğimiz
iki karar bölgesi meydana getirmektedir. Karar durumu, eğer çıkış 1
ise A sınıfına 0 ise B sınıfına karşılık gelmektedir.

19
Turing Makinesi ve Perceptron

XOR doğruluk tablosu


A B A XOR B
1 1 0
0 1 1
1 0 1
0 0 0

Örneğin, XOR problemine bir çözüm tek katmanlı algılama ile


yapılamaz.
Tek katmanlı Perceptronların XOR problemini çözemediği ve yapay
sinir ağı alanında yapılan çalışmalarda belirtilmiştir.
20
Turing Makinesi ve Perceptron

Bunun için katmanlara ilave olarak bir gizli katmanın kullanılması bir
çözüm getirmiştir.
x1 D1
2 2

D3 -4
D4 y 3  2,5 ve 4  1
2 Çıkış katmanı
2
x2 D2 Gizli katman
Giriş katmanı

x1 x2 y3 y3   3 y4 y 4  4 y
0 0 0 hayır 0 hayır 0
0 1 +2 hayır +2 evet 1
1 0 +2 hayır +2 evet 1
1 1 +4 evet 0 hayır 0 21
Turing Makinesi ve Perceptron

XOR problemi aşağıdaki Şekildeki gibi iki gizli sinire sahip bir
ağ ile de çözülebilmektedir.

x1 -2
 1 1
2
 1 y
2
1
x2  1
-2

22
Delta Kuralı

Hebb tarafından 1949’da ortaya atılan bu öğrenme kuralı diğer


öğrenim kurallarına yol göstermiştir. Örneğin, iki sinir birbirine
bağlanır ve aynı anda harekete geçerse bu iki sinir arasındaki
bağlantı daha da güçlenir.

23
Delta Kuralı
Delta Kuralı Kullanılarak Yapılan Bir Örnek:

Ağırlıklar (w1, w2, w3), eşik değeri ()’nin, hata değeri () ve düzeltme
katsayısı (d)’nin aşağıdaki şekilde olduğunu düşünelim;

w1 = 0,2 w2 = -0,5 w3 = -0,1 = 0  = 0,1 d = 0,5

Eğer düğüm harekete geçmiyorsa. etkinlik düzeyleri 0, harekete


geçiyorsa 1 olarak belirlenir. Sonrada düğümler ve devamındaki çıktı
için etkinlik düzeyi üzerinde çalışılır.
Çıkış düğümü D4 için girdi, x1.w1  x2 .w2  x3.w3
şeklinde hesaplanır ve toplam eşik değerinden daha büyük olursa F
denilen çıktı düğümü harekete geçer ve şu şekilde gösterilir:
24
Delta Kuralı Kullanılarak Yapılan Bir Örnek:

x1
D1 w1

x2 w2
D2 D4 y
w3
x3
D3

25
Delta Kuralı

Çıkış düğümü D4 için girdi, şeklinde hesaplanır ve toplam eşik


değerinden daha büyük olursa F denilen çıktı düğümü harekete geçer ve
şu şekilde gösterilir:

x1w1  x2 w2  x3 w3   Çizelge 1

Giriş Gerçek çıkış istenilen çıkış


Yada Değerleri Değerleri Değerleri
x1 x2 x3 y y
x1w1  x2 w2  x3 w3    0 0 0 1 0 1

0 1 1 0 1

1 0 1 1 1

1 1 1 0 0 26
Delta Kuralı
Çizelge 1’ deki değerler şu şekilde hesaplanır.
1) D1=0, D2=0 ve D3=1
x1w1  x2 w2  x3 w3    0
0*0,2+0*(-0.5)+1*(-0,1)-0>0
-0,1>0
yanlış olduğundan D4 çıkış düğümü harekete geçmez. Yani 0 olur.

2) D1=0, D2=1 ve D3=1


x1w1  x2 w2  x3 w3    0
0*0,2+1*(-0.5)+1*(-0,1)-0>0
-0,6>0

yanlış olduğundan D4 çıkış düğümü harekete geçmez. Yani 0 olur. 27


Delta Kuralı
Çizelge 1’ deki değerler şu şekilde hesaplanır.
3) D1=1, D2=0 ve D3=1
x1w1  x2 w2  x3 w3    0
1*0,2+0*(-0.5)+1*(-0,1)-0>0
0,1>0
doğru olduğundan D4 çıkış düğümü harekete geçer. Yani 1 olur.

4) D1=1, D2=1 ve D3=1


x1w1  x2 w2  x3 w3    0
1*0,2+1*(-0.5)+1*(-0,1)-0>0
-0,4>0

yanlış olduğundan D4 çıkış düğümü harekete geçmez. Yani 0 olur. 28


Delta Kuralı
Ayarlamalar için şu kurallar yapılır
Eğer bir çıktı düğümü için gerçek çıktı değeri istenilen çıktı
değerine eşit değilse ağırlıkların ayarlanması delta kuralına göre
işlem sırası şu şekildedir:

1. Çıkış düğümündeki hatayı (gerçek değerle istenilen değer


arasındaki farkı) bulunur.
2. Düzeltme faktörünü ( E   )d bulunur.
3. Aşağıdaki kurala göre etkinliklere başlayan düğümler için
ağırlıkları yeniden düzenlenir.
a. Eğer çıktı düğümü 0 ise ve istenilen değer 1 ise
ağırlıklar artırılır.
b. Eğer çıktı düğümü 1 ise ve istenilen değer 0 ise
29
ağırlıklar azaltılır.
Delta Kuralı
Adım1: Eğer bir çıktı düğümü için gerçek çıktı değeri istenilen çıktı
değerine eşit değilse ağırlıkların ayarlanması delta kuralına göre işlem
sırası şu şekildedir:
E  0  ( x1w1  x2 w2  x3 w3   )

E= 0-(0*0,2+0*(-0.5)+1*(-0,1)-0)=0.1
( E   )d
Düzeltme=(0.1+0.1)*0.5=0.1

Yeni w3= (-0.1+0.1)=0

w1=0.2, w2=-0.5, w3=0 için yeni çıkış değerleri Çizelge 2’ dedir.

30
Delta Kuralı

Çizelge 2(Adım 1’ deki giriş ve çıkışlar)


Giriş Gerçek çıkış istenilen çıkış
Değerleri Değerleri Değerleri
x1 x2 x3 y y
0 0 1 0 1

0 1 1 0 1

1 0 1 1 1

1 1 1 0 0

31
Delta Kuralı
Adım2:Çizelge 2’ de 2. satırda x1=0 x2=1 ve x3=1 için y’ nin gerçek
değeri 0, istenilen değeri 1’ dir. Bu değerlere ulaşmak için ağırlıklar
hata düzelteme oranı kadar artırılır.
E  0  ( x1w1  x2 w2  x3 w3   )

E= 0-(0*0,2+1*(-0.5)+1*0-0)=0.5
( E   )d
Düzeltme=(0.5+0.1)*0.5=0.3

Yeni w2= (-0.5+0.3)=-0.2


w3= (0+0.3)=0.3

yeni çıkış değerleri Çizelge 3’ dedir.


32
Delta Kuralı

Çizelge 3(Adım 2’ deki giriş ve çıkışlar)


Giriş Gerçek çıkış istenilen çıkış
Değerleri Değerleri Değerleri
x1 x2 x3 y y
0 0 1 1 1

0 1 1 1 1

1 0 1 1 1

1 1 1 1 0

33
Delta Kuralı
Adım3:Çizelge 3’ de 3. satırda x1=1 x2=0 ve x3=1 için y’ nin gerçek değeri 1, istenilen
değeri 1’ dir. Bu değerlere ulaşmak için ağırlıklara ayarlama yapmaya gerek yoktur.

Çizelge 3’ de 4. satırda x1=1 x2=1 ve x3=1 için y’ nin gerçek değeri 1, istenilen değeri 0’
dir. Bu değerlere ulaşmak için ağırlıklar hata düzelteme oranı kadar azaltılır.

E  0  ( x1w1  x2 w2  x3 w3   )
E= 0-(1*0,2+1*(-0.2)+1*0.3-0)=-0.3
( E   )d
Düzeltme=(0.3+0.1)*0.5=0.2

Yeni w1= (0.2-0.2)=0


w2= (-0.5-0.2)=-0.4
w3= (0.3-0.2)=0.1

Elde ed,len yeni çıkış değerleri Çizelge 4’ dedir. 34


Delta Kuralı

Çizelge 4(Adım 3’ deki giriş ve çıkışlar)


Giriş Gerçek çıkış istenilen çıkış
Değerleri Değerleri Değerleri
x1 x2 x3 y y
0 0 1 1 1

0 1 1 0 1

1 0 1 1 1

1 1 1 0 0

35
Delta Kuralı
Adım4:Çizelge 4’ de 1. satırda x1=0 x2=0 ve x3=1 için y’ nin gerçek değeri 1, istenilen
değeri 1’ dir. Bu değerlere ulaşmak için ağırlıklara ayarlama yapmaya gerek yoktur.

Çizelge 4’ de 2. satırda x1=0 x2=1 ve x3=1 için y’ nin gerçek değeri 0, istenilen değeri 1’
dir. Bu nedenle ağırlıklar hata düzelteme oranı kadar artırılır.

E  0  ( x1w1  x2 w2  x3 w3   )
E= 0-(0*0+1*(-0.4)+1*0.1-0)=0.3
( E   )d
Düzeltme=(0.3+0.1)*0.5=0.2

Yeni w2= (-0.4+0.2)=-0.2


w3= (0.1+0.2)=0.3

Elde edilen yeni çıkış değerleri Çizelge 5’ dedir. 36


Delta Kuralı

Çizelge 5 (Adım 4’ deki giriş ve çıkışlar)


Giriş Gerçek çıkış istenilen çıkış
Değerleri Değerleri Değerleri
x1 x2 x3 y y
0 0 1 1 1

0 1 1 1 1

1 0 1 1 1

1 1 1 0 0

37
Delta Kuralı
Adım5:Çizelge 5’ de 3. satırda x1=1 x2=0 ve x3=1 için y’ nin gerçek değeri 1, istenilen
değeri 1’ dir. Bu değerlere ulaşmak için ağırlıklara ayarlama yapmaya gerek yoktur.

Çizelge 5’ de 4. satırda x1=1 x2=1 ve x3=1 için y’ nin gerçek değeri 1, istenilen değeri 0’
dir. Bu nedenle ağırlıklar hata düzelteme oranı kadar azaltılır.

E  0  ( x1w1  x2 w2  x3 w3   )
E= 0-(1*0+1*(-0.2)+1*0.3-0)=-0.1
( E   )d
Düzeltme=(0.1+0.1)*0.5=0.1

Yeni w1= (0 -0.1)=-0.1


w2= (-0.2-0.1)=-0.3
w3= (0.3-0.1)=0.2

Elde edilen yeni çıkış değerleri Çizelge 6’ dedir. 38


Delta Kuralı

Çizelge 6(Adım 5’ deki giriş ve çıkışlar)

Giriş Değerleri Gerçek çıkış İstenen çıkış


Değerleri Değerleri
X1 X2 X3 y y
0 0 1 1 1
0 1 1 0 1
1 0 1 1 1
1 1 1 0 0

39
Delta Kuralı
Adım6: Çizelge 6’ de 1. satırda x1=0 x2=0 ve x3=1 için y’ nin gerçek değeri 1, istenilen
değeri 1’ dir. Bu değerlere ulaşmak için ağırlıklara ayarlama yapmaya gerek yoktur.

Çizelge 6’ de 2. satırda x1=0 x2=1 ve x3=1 için y’ nin gerçek değeri 0, istenilen değeri 1’
dir. Bu nedenle ağırlıklar hata düzelteme oranı kadar artırılır.

E  0  ( x1w1  x2 w2  x3 w3   )
E= 0-(0*(-0.1)+1*(-0.3)+1*0.2-0)=0.1
( E   )d
Düzeltme=(0.1+0.1)*0.5=0.1

Yeni w1= -0.1


w2= (-0.3+0.1)=-0.2
w3= (0.2+0.1)=0.3

Elde edilen yeni çıkış değerleri Çizelge 7’ dedir. 40


Delta Kuralı

Çizelge 7(Adım 6’ daki giriş ve çıkışlar)

Giriş Değerleri Gerçek çıkış İstenen çıkış


Değerleri Değerleri
X1 X2 X3 y y
0 0 1 1 1
0 1 1 1 1
1 0 1 1 1
1 1 1 0 0

41
Delta Kuralı

Çizelge 7’ istenen çıkış değerlerini göstermektedir. 6 adım sonra bulunan w1= -0.1,
w2=-0.2 ve w3=0.3 ağırlıkların değerlerini aşağıdaki denklemlerde yerlerine koyup
sonuçlara sağlama yapılabilir.

x1w1  x2 w2  x3w3    0
Çizelge 7 bütün sütunlarındaki x1, x2 ve x3 değerleri ayrı ayrı yerlerine
konulur. Bu durumda;

1. sütun x1=0, x2=0 ve x3=1, 0,3 > 0 doğru olduğundan sonuç 1’dir.
2. sütun x1=0, x2=1 ve x3=1, 0,1 > 0 doğru olduğundan sonuç 1’dir.
3. sütun x1=1, x2=0 ve x3=1, 0,2 > 0 doğru olduğundan sonuç 1’dir.
4. sütun x1=1, x2=1 ve x3=1, 0>0 yanlış olduğundan sonuç 0’dır.

Bu sağlamadan çıkan sonuçlara göre y çıkışı 1 1 1 0 olduğundan


sonuçlar doğru olarak bulunmuştur.

42
Kaynaklar
 Elmas, Ç.,”Yapay Zeka Uygulamaları (Yapay Sinir Ağı,
Bulanık Mantık, Genetik Algoritma)”, Seçkin Yayıncılık,
Ankara, 2007.
 Elmas, Ç., “Yapay Sinir Ağları (Kuram, Mimari, Eğitim,
Uygulama)”, Seçkin Yayıncılık, Ankara, 2003.
 Elmas, Ç., “Bulanık Mantık Denetleyiciler (Kuram,
Uygulama, Sinirsel Bulanık Mantık)”, Seçkin Yayıncılık,
Ankara, 2003.
 Bingöl, O., “Yapay Sinir Ağı İle Modellenen Alan
Yönlendirmeli Bir Asenkron Motorun Üç Seviyeli Evirici İle
Hız Denetimi”, Doktora Tezi, Gazi Üniversitesi Fen Bilimleri
Enstitüsü, Ankara, 2005.
 Sağıroğlu, Ş., Beşdok, E. ve Erler, M., “Mühendislikte Yapay
Zeka Uygulamaları-I, Yapay Sinir Ağları”, Ufuk Yayıncılık

43

You might also like