Çok katmanlı yapay sinir ağı modelleri

48
Çok Katmanlı Yapay Sinir Ağı Modelleri 1

Upload: lorin

Post on 03-Feb-2016

120 views

Category:

Documents


2 download

DESCRIPTION

Çok Katmanlı Yapay Sinir Ağı Modelleri. Daha önce bahsedilen YSA’lar doğrusal olan olayları çözebilmelerine karşın doğrusal olmayan olayları çözememektedirler. Peki bir olayın doğrusal olup olmaması ne demektir?. Bunu anlayabilmek için XOR problem durumuna tekrar göz atmakta fayda vardır. ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çok Katmanlı Yapay Sinir Ağı Modelleri

1

Page 2: Çok Katmanlı Yapay Sinir Ağı Modelleri

Daha önce bahsedilen YSA’lar doğrusal olan olayları çözebilmelerine karşın doğrusal olmayan olayları çözememektedirler.

Peki bir olayın doğrusal olup olmaması ne demektir?

Bunu anlayabilmek için XOR problem durumuna tekrar göz atmakta fayda vardır.

2

Page 3: Çok Katmanlı Yapay Sinir Ağı Modelleri

XOR Problemi

--1.5 0-- 0,5 1 1,5

-

-

-

2)

1

0,5

0

3

Page 4: Çok Katmanlı Yapay Sinir Ağı Modelleri

-1 0 0.5 1 1.5

0

1

İkinci Girdi kümesi için hatalı

4

Page 5: Çok Katmanlı Yapay Sinir Ağı Modelleri

Hatırlancağı gibi, perceptronlar XOR problemi gibi doğrusal olarak sınıflandırılamayan problemleri çözümünde başarısızdır.

Diğer bir deyişle çıktıların arasına bir doğru veya doğrular çizerek onları iki veya daha fazla sınıfa ayırmak mümkün değildir.

5

Page 6: Çok Katmanlı Yapay Sinir Ağı Modelleri

XOR problemini çözmek için yapılan çalışmalar sonucu çok katmanlı algılayıcı modeli geliştirilmiştir. Rumelhart ve arkadaşları tarafından geliştirilen bu modele hata yayma modeli veya geriye yayılım modeli(back propogation model) de denilmektedir.

Bunu Özellikle sınıflandırma, tanıma ve genelleme yapmayı gerektiren problemler için çok önemli bir çözüm aracıdır. Bu model “Delta Öğrenme Kuralı” denilen bir öğrenme yöntemini kullanmaktadır. Bu kural aslında ADALINE ve basit algılayıcı modelinin öğrenme kurallarının geliştirilmiş bir şeklidir.

6

Page 7: Çok Katmanlı Yapay Sinir Ağı Modelleri

Temel amacı ağın beklenilen çıktısı ile ürettiği çıktı arasındaki hatayı en aza indirmektir. Bunu hatayı ağa yayarak gerçekleştirdiği için bu ağa hata yayma ağı da denmektedir.

7

Page 8: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çok Katmanlı Ağ Modelinin YapısıAra

Katman

Girdi Katmanı

Çıktı Katmanı

Eşik Değeri

Eşik Değeri

G1

G2

G3

Ç1

Ç2

Ç3

8

Page 9: Çok Katmanlı Yapay Sinir Ağı Modelleri

Girdi Katmanı: Dış dünyadan gelen girdileri alarak ara katmana gönderir. Bu katmanda bilgi işleme olmaz. Gelen her bilgi geldiği gibi bir sonraki katmana gider. Her proses elemanın sadece bir tane girdisi ve bir tane çıktısı vardır. Yani, girdi katmanındaki her proses elemanı bir sonraki katmanda bulunan proses elemanlarının hepsine bağlanır.

Ara Katmanı: Ara katmanlar girdi katmanından gelen bilgileri işleyerek bir sonraki katmana gönderir. Çok katmanlı bir ağda birden fazla ara katman ve her katmanda birden fazla proses elemanı bulunabilir.

9

Page 10: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çıkış Katmanı: Ara katmandan gelen bilgileri işleyerek ağa girdi katmanından verilen girdilere karşılık ağın ürettiği çıkışları belirleyerek dış dünyaya gönderir.

Bir çıktı katmanında birden fazla proses elemanı olabilir. Her proses elemanı bir önceki katmanda bulunan bütün proses elemanlarına bağlıdır. Her proses elemanının bir çıktısı vardır.

10

Page 11: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çok katmanlı ağ öğretmenli öğrenme stratejisini kullanır. Ağa, hem örnekler hem de örneklerden elde edilmesi gereken çıktılar verilmektedir.

Sistem, kendisine gösterilen örneklerden genellemeler yaparak problem uzayını temsil eden bir çözüm uzayı üretmektedir. Daha sonra gösterilen benzer örnekler için bu çözüm uzayı sonuçlar ve çözümler üretebilmektedir.

11

Page 12: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çok Katmanlı Ağ Hücresi

Girdi Nöron n : net giriş toplamıa : çıkışΣ : Toplam fonksiyonu. f : Aktivasyon fonksiyonu.

•Sigmoid•Tanh•Lineer

12

Page 13: Çok Katmanlı Yapay Sinir Ağı Modelleri

Bir çok giriş için genellikle bir nöron yeterli olmayabilir. Paralel işlem yapan birden fazla nörona ihtiyaç duyulduğunda katman kavramı devreye girmektedir. S tane nöronun tek bir katmanı Şekil’de gösterilmiştir. Burada her giriş bir nörona bağlıdır.

13

Page 14: Çok Katmanlı Yapay Sinir Ağı Modelleri

Çok Katmanlı Ağın Öğrenme Kuralı

Çok katmanlı ağın öğrenme kuralı en küçük kareler yöntemine dayalı “Delta Öğrenme Kuralı”’nın genelleştirilmiş halidir. Bu yüzden “Genelleştirilmiş Delta Kuralı” olarak da isimlendirilmektedir.

Ağın öğrenebilmesi için eğitim seti adı verilen ve örneklerden oluşan bir sete ihtiyaç vardır. Bu set içinde her örnek için ağın hem girdiler hem de o girdiler için ağın üretmesi gereken çıktılar belirlenmiştir.

14

Page 15: Çok Katmanlı Yapay Sinir Ağı Modelleri

“Genelleştirilmiş Delta Kuralı” iki aşamadan oluşur.

• İleri doğru hesaplama(Feed Forward)

• Geri doğru hesaplama (Back Propogation)

15

Page 16: Çok Katmanlı Yapay Sinir Ağı Modelleri

I) İleri Doğru Hesaplama

Bu safhada bilgi işleme eğitim setindeki bir örneğin Girdi Katmanından ağa gösterilmesi ile başlar. Gelen girdiler hiç bir değişiklik olmadan ara katmana gönderilir.

Girdi katmanındaki k. Proses elemanının çıktısı Çki şu şekilde

belirlenir:

Çki = Gk

16

Page 17: Çok Katmanlı Yapay Sinir Ağı Modelleri

AraKatman

Girdi Katmanı

Çıktı Katmanı

Eşik Değeri

Eşik Değeri

G1

G2

Gk

Ç1

Ç2

Ç3

.

.

.

ÇKi

ÇK1

ÇK2

17

ÇK3

1

2

3

i

Page 18: Çok Katmanlı Yapay Sinir Ağı Modelleri

Ara katmandaki her proses elemanı girdi katmanındaki bütün proses elemanlarından gelen bilgileri bağlantı ağırlıklarının (A1,A2,....) etkisi ile alır. Önce ara katmandaki proses elemanlarına gelen net girdi (NETj

a) şu formül kullanılarak hesaplanır:

NETja=∑Akj Çk

i

k=1

n

Burada Akj k. girdi elemanını j. ara katman elemanına bağlayan bağlantının ağırlık değerini göstermektedir. J. ara katman elemanının çıktısı ise bu net girdinin aktivasyon fonksiyonundan geçirilmesiyle hesaplanır.

18

Page 19: Çok Katmanlı Yapay Sinir Ağı Modelleri

AraKatman

Girdi Katmanı

Çıktı Katmanı

Eşik Değeri

Eşik Değeri

G1

G2

Gk

Ç1

Ç2

Ç3

.

.

.

wA1j

wA2j

wAkj

NETja=∑Akj Çk

i

k=1

n

1

2

3

j

19

Page 20: Çok Katmanlı Yapay Sinir Ağı Modelleri

Sigmoid fonksiyonu kullanılması halinde çıktı:

Çja=

1

1+e-(NETja+βj

a)

Burada βj , ara katmanda bulunan j. elemana bağlanan eşik değer elemanının ağırlığını göstermektedir. Bu eşik değer ünitesinin çıktısı sabit olup 1’e eşittir. Eğitim sırasında ağ bu değeri kendisi belirlemektedir.

20

Page 21: Çok Katmanlı Yapay Sinir Ağı Modelleri

AraKatman

Girdi Katmanı

Çıktı Katmanı

Eşik Değeri

Eşik Değeri

G1

G2

Gk

Ç1

Ç2

Ç3

.

.

.

wA1j

wA2j

wAkj

1

2

3

j

wβj

Çja=

1

1+e-(NETja+βj

a)21

Page 22: Çok Katmanlı Yapay Sinir Ağı Modelleri

Ara katmanın bütün proses elemanları ve çıktı katmanının proses elemanlarının çıktıları aynı şekilde kendilerine gelen NET girdinin hesaplanması ve sigmoid fonksiyonundan geçirilmesi sonucu belirlenirler. Çıktı katmanından çıkan değerler bulununca ağın ileri doğru hesaplama işlemi tamamlanmış olur.

22

Page 23: Çok Katmanlı Yapay Sinir Ağı Modelleri

II) Geriye Doğru Hesaplama

Ağa sunulan girdi için ağın ürettiği çıktı ağın beklenen çıktıları ile karşılaştırılır. Bunların arasındaki fark hata olarak kabul edilir. Amaç bu hatanın düşürülmesidir.

Bu hata, ağın ağırlık değerlerine dağıtılarak bir sonraki iterasyonda hatanın azaltılması sağlanır. Çıktı katmanındaki m. Proses elemanı için oluşan hata Em ;

Em =Bm- Çm

23

Page 24: Çok Katmanlı Yapay Sinir Ağı Modelleri

Em =Bm- Çm

Yukarıdaki hata, bir proses elemanı için oluşan hatadır. Çıktı katmanı için oluşan toplam hatayı (TH) bulmak için bütün hataların toplanması gerekir.

TH=1/2(∑Em2)

Toplam hatayı enazlamak için bu hatanın kendisine neden olan proses elemanlarına dağıtılması gerekmektedir.

24

Page 25: Çok Katmanlı Yapay Sinir Ağı Modelleri

Ağın ağırlıklarını değiştirmek için 2 durum söz konusudur:

• Ara katman ile çıktı katmanı arasındaki ağırlıkların değiştirilmesi

• Ara katmanlar arası veya ara katman girdi katmanı arasındaki ağırlıkların değiştirilmesi

25

Page 26: Çok Katmanlı Yapay Sinir Ağı Modelleri

Ara Katman ile Çıktı Katmanı Arasındaki Ağırlıkların

DeğiştirilmesiAra katmandaki j. Proses elemanı çıktı katmanındaki m. Proses elemanına bağlayan bağlantının ağırlığındaki değişim miktarına ∆Aa denirse; herhangi bir t zamanında ağırlığın değişim miktarı şöyle hesaplanır:

∆Ajma(t)=λδmÇj

a + α ∆Ajma(t-1)

Burada λ öğrenme katsayısını, α momentum katsayısını göstermektedir.

26

Page 27: Çok Katmanlı Yapay Sinir Ağı Modelleri

Momentum katsayısı ağın öğrenmesi esnasında yerel bir optimum noktaya takılıp kalmaması için ağırlık değişim değerinin belirli bir oranda bir sonraki değişime eklenmesini sağlar.

∆Ajma(t)=λδmÇj

a + α ∆Ajma(t-1)

Yine yukarıdaki formül dikkate alındığında δm ise m. çıktı ünitesinin hatasını göstermektedir.

δm= f’(NET)Em

27

Page 28: Çok Katmanlı Yapay Sinir Ağı Modelleri

Değişim miktarı hesaplandıktan sonra ağırlıkların t. iterasyondaki yeni değerleri:

Ajma(t) = Ajm

a(t-1) + ∆ Ajma(t)

f’(NET) aktivasyon fonksiyonunun türevidir. Sigmoid fonksiyonun kullanılması durumunda ;

δm= Çm(1-Çm) Em

28

Page 29: Çok Katmanlı Yapay Sinir Ağı Modelleri

Benzer şekilde eşik değer ünitesinin de ağırlıklarını değiştirmek gerekmektedir. Çıktı katmanında bulunan proses elemanlarının eşik değer ağırlıkları βç ile gösterilirse; bu ünitenin çıktısı sabit ve 1 olması nedeni ile değişim miktarı:

∆βmç(t) = λ δm + α ∆ βm

ç(t-1)

βmç(t) = βm

ç(t-1) + ∆ βmç(t)

29

Page 30: Çok Katmanlı Yapay Sinir Ağı Modelleri

Ara Katmanlar Arası veya Ara Katman Girdi Katmanı Arasındaki Ağırlıkların

Değiştirilmesi

Ara katman ile çıktı katman arasındaki ağırlıkların değişiminde her ağırlık için sadece çıktı katmanındaki bir proses elemanının hatası dikkate alınmıştır. Oysaki bu hataların oluşmasında girdi katmanı ve ara katman arasındaki ağırlıkların payı vardır.

30

Page 31: Çok Katmanlı Yapay Sinir Ağı Modelleri

Girdi katmanı ile ara katman arasındaki ağırlıkların değişimi ∆Ai ile gösterilirse değişim miktarı:

∆Akji(t)=λ δj

a Çki + α∆Akj

i(t-1)

Yine burdaki hata terimi δa şöyle hesaplanacaktır:

δja=f’(NET)∑δmAjm

a

m

31

Page 32: Çok Katmanlı Yapay Sinir Ağı Modelleri

Aktivasyon fonksiyonu olarak sigmoid fonksiyonun kullanılması durumunda ;

δja= Çj

a(1- Çja)∑δmAjm

a

m

Ağırlıkların yeni değerleri ;

Akji(t)= Akj

i(t-1) + ∆Akji(t)

32

Page 33: Çok Katmanlı Yapay Sinir Ağı Modelleri

Benzer şekilde eşik değer ünitesinin de ağırlıklarını değiştirmek gerekmektedir. Ara katman eşik değer ağırlıkları βa ile gösterilirse değişim miktarı ;

∆βja(t)=λδj

a + α ∆βja(t-1)

βja(t)=βj

a(t-1) + ∆ βja(t)

Böylece ağın ağırlıklarının hepsi değiştirilmiş olacaktır. Bir iterasyon hem ileri hem de geriye doğru hesaplamaları yapılarak tamamlanmış olcaktır.

33

Page 34: Çok Katmanlı Yapay Sinir Ağı Modelleri

Genelleştirilmiş Delta Kuralı

34

Page 35: Çok Katmanlı Yapay Sinir Ağı Modelleri

XOR Problemi ve Çözümü

35

Page 36: Çok Katmanlı Yapay Sinir Ağı Modelleri

Tek katmanlı YSA’lar doğrusal problemlerin çözümü için uygun iken, doğrusal olmayan bazı problemlerin çözümü için uygun değildir. Buna en temel örnek ise XOR problemidir.

XOR probleminin çözümünde geriye yayılımlı çok katmanlı ağlardan yararlanılır.

Bu ağlar, danışmanlı öğrenme kuralları kullanılarak eğitilirler ve problem durumunu öğrenerek yeni problemlere çözüm yolları getirirler.

36

Page 37: Çok Katmanlı Yapay Sinir Ağı Modelleri

B---- bias nöronkarıBu nöronlar eşik görevindedirler. Her zaman için 1 değerini verirler.

Hedef çıktılar

Öğrenmenin amacıdönüşüm

Fonksiyonunun belirlenmesidir----- F

Geriye Yayılımlı YSA

37

Page 38: Çok Katmanlı Yapay Sinir Ağı Modelleri

Geriye Yayılımlı YSA’da Öğrenme

Öğrenmenin tanımı– Girdi vektörlerini çıktı vektörlerine eşleyen

fonksiyonun elde edilmesi olarak tanımlanabilir. – Amaç

• Bu dönüşüm fonksiyonunun (F) belirlenmesidir.

Öğrenme adımları– Ağ üzerinde ağırlıkların random olarak atanması.– Ağ üzerindeki çıktılar her zaman gerçek çıktılar ile

uyuşmayabilir. – Gerçek çıktılar ile istenen çıktılar arasındaki fark

tolere edilebilir bir değere ininceye kadar ağırlıklar ayarlanırlar.

38

Page 39: Çok Katmanlı Yapay Sinir Ağı Modelleri

39

Page 40: Çok Katmanlı Yapay Sinir Ağı Modelleri

XOR Problemi

XOR problemini çözerken kullanılacak YSA’da hücrelerin aktivasyon fonksiyonu 2 şekilde seçilerek çözüm getirilmeye çalışılmıştır :

• Step Fonksiyon ile• Sigmoid Fonksiyon kullanarak

40

Page 41: Çok Katmanlı Yapay Sinir Ağı Modelleri

Step Fonksiyon ile Çözüm

a4 = w1 * o1 + w5 * o3 + w4 * o2

a4 = -1 * 0 + 2 * 0 + (-1 * 0) = 0

O4 = 0

Çıktı

a3 = w2 * o1 + w3 * o2

Aktivasyon

a3 = 1 * 0+ 1* 0 = 0

Eşik değeri, bütün hücreler için 0.02 olarak seçilmiştir.

41

Page 42: Çok Katmanlı Yapay Sinir Ağı Modelleri

Sigmoid Fonksiyon Seçilmesi Durumunda

Sigmoid fonksiyon 0 ve 1 gibi değerler alır.

42

Page 43: Çok Katmanlı Yapay Sinir Ağı Modelleri

Adım 1. Ağırlıkların başlangıç değerlerinin verilmesi– Ağırlıklar verilirken genel olarak küçük değerler seçilir.

Adım 2. Çıkışların hesaplanması– Ara katmandaki oj gibi bir hücrenin çıkışı aşağıdaki

sigmoid fonksiyon ile hesaplanır.

oj = f ( wjioi - j ) ( wjioi - j )-

1 + e

1=

wji = weight of input i to neuron j

is a constant

j =node threshold

F=sigmoid function

43

Page 44: Çok Katmanlı Yapay Sinir Ağı Modelleri

Adım 3. Ağırlıkların ayarlanması

– Hata Gradyeni (Error gradient) hesaplanır.• Çıktı nöronları için

j = oj (1 – oj)(dj – oj)• Ara katmandaki nöronlar için aşağıdaki şekilde hesaplanır.

j = oj (1 – oj) kwkj k : neuron k’daki (gizli katmana bağlı olan) hata gradyeni

dj : istenilen çıktı (desired output), oj : esas çıktı (actual output)

– Ağırlıkların değişimi aşağıdaki gibi hesaplanır.• wji = j oi : öğrenme hızı (0< <1)

– Değişimler varolan ağırlıklara ilave edilir. wji (t+1) = wji(t) + wji

44

Page 45: Çok Katmanlı Yapay Sinir Ağı Modelleri

Bu kısa hatırlatmadan sonra XOR problemimize dönersek;

Başlangıç ağırlık değerlerimiz aşağıdaki gibi random olarak verilir.

12

3

4

0.02

0.03

- 0.02

0.01

0.02

45

Page 46: Çok Katmanlı Yapay Sinir Ağı Modelleri

İlk durumumuz o3=1 ,o4=1 ve α ve θ değerleri de sırasıyla 1 ve 0 olsun.Ayrıca n öğrenme hızı da 0.3 olsun Bu durumda ;

O2=1 + e –(1x0.01 + 1x0.02)

1

= 0.678 12

3

4

0.02-0.018

0.03

- 0.020.01-0.010165

0.02

1

1O3=1 + e –[0.678x(-0.02) + 1x0.02 + 1x0.03)

1 = 0.509

o2 ,o3’ün çıktıları yukarıdaki gibi hesaplanır. O1’ün çıktısı istenilen şekilde değildir. Bu durumda ağırlıkların yeniden hesaplanmasına gidilir.

1 = 0.509(1-0.509)(0-0.509) = -0.127w13 = 0.3(-0.127) x 1 = -0.038,w13 = 0.02 – 0.038 = -0.018

2 = 0.678(1-0.678)(-0.127)(-0.02) = 0.00055w23 = 0.3 (0.00055) x 1 = 0.000165,

w23 = 0.01 + 0.000165 = -0.010165

( wjioi - j )-1 + e

1 Sigmoid fonk.

Ağırlıkların değişimi

46

Page 47: Çok Katmanlı Yapay Sinir Ağı Modelleri

1 = 0.509(1-0.509)(0-0.509) = -0.127w14 = 0.3(-0.127) x 1 = -0.038,w14 = 0.03 – 0.038 = -0.008

2 = 0.678(1-0.678)(-0.127)(-0.02) = 0.00055w24 = 0.3 (0.00055) x 1 = 0.000165,

w24 = 0.02 + 0.000165 = -0.020165

12

3

4

-0.018

0.03-0.008

- 0.02

0.02-0.020165

1

1

1 = 0.509(1-0.509)(0-0.509) = -0.127w12 = 0.3(-0.127) x 0.678 = -0.0258318,w12 = - 0.02 – 0.0258318 = -0.0458318

12

3

4

- 0.02-0.0458318

1

1

-0.010165

-0.018

-0.010165

-0.020165

-0.008

Değişik örnekler gösterilerek ağ, yukarıdaki gibi eğitilir.

47

Page 48: Çok Katmanlı Yapay Sinir Ağı Modelleri

Sonuçta aşağıdaki ağırlıklara ulaşıldığında ağ öğrenmesini durdurur.

12

3

4

4.98

4.98

- 11.30 5.62

5.60

Sonuç ağırlıklar

Sonuçta :O3=1,O4=0 için 0.01’lik bir hata payı ile

O2=0.9964 O1=0.9999

Değerleri elde edilir.

48