Çok Katmanlı Yapay Sinir Ağı Modelleri

Slides:



Advertisements
Benzer bir sunumlar
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Advertisements

GİRİŞ BÖLÜM:1-2 VERİ ANALİZİ YL.
Yrd. Doç. Dr. Mustafa Akkol
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Diferansiyel Denklemler
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Saydığımızda 15 tane sayı olduğunu görürüz.
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
BASİT MAKİNELER.
Diferansiyel Denklemler
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
Yapay Sinir Ağı (YSA).
Çok Katmanlı Ağın Çalışma Şekli
İlk Yapay Sinir Ağları.
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
4 Kare Problemi 4 Kare Problemi Hazır mısın? B A Bu şekle iyi bak
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
MATEMATİKSEL PROGRAMLAMA
Yapay Sinir Ağları Artificial Neural Networks (ANN)
Prof. Dr. Leyla Küçükahmet
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
SİMPLEKS YÖNTEM (Özel Durumlar)
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
Çizge Algoritmaları.
ARALARINDA ASAL SAYILAR
Matematik 2 Örüntü Alıştırmaları.
MATRİSLER ve DETERMİNANTLAR
PARAMETRİK VE HEDEF PROGRAMLAMA
Devre ve Sistem Analizi Projesi
Tam sayılarda bölme ve çarpma işlemi
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
HABTEKUS' HABTEKUS'08 3.
DERS 11 KISITLAMALI MAKSİMUM POBLEMLERİ
Mukavemet II Strength of Materials II
Yard. Doç. Dr. Mustafa Akkol
İKİNCİ DERECEDEN FONKSİYONLAR ve GRAFİKLER
Yrd. Doç. Dr. Ayhan Demiriz
Diferansiyel Denklemler
NEURAL NETWORK TOOLBOX VE UYGULAMALARI
1 DEĞİŞMEYİN !!!
FONKSİYONLAR f : A B.
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
Bankacılık sektörü 2010 yılının ilk yarısındaki gelişmeler “Temmuz 2010”
SÜLEYMAN DEMİREL ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
RASYONEL SAYILARLA TOPLAMA ve ÇIKARMA İŞLEMLERİ
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
YAPAY SİNİR AĞLARI VE BAYES SINIFLAYICI
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
Yard. Doç. Dr. Mustafa Akkol
Diferansiyel Denklemler
Yapay Sinir Ağları (YSA)
Yapay Sinir Ağları (Artificial Neural Networks) Bir Yapay Sinir Ağı Tanımı (Alexander, Morton 1990) Yapay sinir ağı, basit işlemci ünitelerinden oluşmuş,
YAPAY SİNİR AĞLARI.
Çok Katmanlı Algılayıcı-ÇKA (Multi-Layer Perceptron)
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme Uygun yanıt verme Depolanmış enformasyon veya model Kurallar: (1) Benzer sınıflardan.
Yapay sinir ağı, basit işlemci ünitelerinden oluşmuş, çok
YAPAY SİNİR AĞLARININ YAPISI VE TEMEL ELEMANLARI
Geriye Yayılım Algoritması (Back-Propagation Algorithm)
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
Çok Katmanlı Algılayıcı-ÇKA (Multi-Layer Perceptron)
Yapay Zeka Nadir Can KAVKAS
Çok Katmanlı Algılayıcı-ÇKA (Multi-Layer Perceptron)
Sunum transkripti:

Ç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.

XOR Problemi --1.5 0- - 0,5 1 1,5 2 ) 1 0,5

İkinci Girdi kümesi için hatalı -1 0.5 1 1.5 1 İkinci Girdi kümesi için hatalı

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.

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.

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.

Çok Katmanlı Ağ Modelinin Yapısı Ara Katman Girdi Katmanı Çıktı Katmanı G1 Ç1 G2 Ç2 G3 Ç3 Eşik Değeri Eşik Değeri

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.

Çı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.

Çok katmanlı ağ öğretmenli öğrenme stratejisini kullanır Ç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.

Çok Katmanlı Ağ Hücresi n : net giriş toplamı a : çıkış Σ : Toplam fonksiyonu. f : Aktivasyon fonksiyonu. Sigmoid Tanh Lineer Girdi Nöron

Bir çok giriş için genellikle bir nöron yeterli olmayabilir 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.

Ç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.

“Genelleştirilmiş Delta Kuralı” iki aşamadan oluşur. İleri doğru hesaplama(Feed Forward) Geri doğru hesaplama (Back Propogation)

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

. Ara Katman Girdi Katmanı Çıktı Katmanı 1 G1 Ç1 ÇK1 2 G2 ÇK2 Ç2 3 ÇK3 Ç3 ÇKi i Eşik Değeri Eşik Değeri

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 (NETja) şu formül kullanılarak hesaplanır: NETja=∑Akj Çki 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.

NETja=∑Akj Çki . Ara Katman Girdi Katmanı Çıktı Katmanı 1 G1 Ç1 2 wA1j Ç2 wA2j 3 Gk Ç3 wAkj j Eşik Değeri Eşik Değeri NETja=∑Akj Çki k=1 n

Sigmoid fonksiyonu kullanılması halinde çıktı: Çja= 1 1+e -(NETja+βja) 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.

1 Çja= -(NETja+βja) 1+e . Ara Katman Girdi Katmanı Çıktı Katmanı 1 G1 Ç1 2 wA1j G2 . Ç2 wA2j 3 Gk Ç3 wAkj j wβj Eşik Değeri Eşik Değeri Çja= 1 1+e -(NETja+βja)

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.

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

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.

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

Ara Katman ile Çıktı Katmanı Arasındaki Ağırlıkların Değiştirilmesi Ara 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Çja + α ∆Ajma(t-1) Burada λ öğrenme katsayısını, α momentum katsayısını göstermektedir.

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Çja + α ∆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

f’(NET) aktivasyon fonksiyonunun türevidir f’(NET) aktivasyon fonksiyonunun türevidir. Sigmoid fonksiyonun kullanılması durumunda ; δm= Çm(1-Çm) Em Değişim miktarı hesaplandıktan sonra ağırlıkların t. iterasyondaki yeni değerleri: Ajma(t) = Ajma(t-1) + ∆ Ajma(t)

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)

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.

∆Akji(t)=λ δja Çki + α∆Akji(t-1) Girdi katmanı ile ara katman arasındaki ağırlıkların değişimi ∆Ai ile gösterilirse değişim miktarı: ∆Akji(t)=λ δja Çki + α∆Akji(t-1) Yine burdaki hata terimi δa şöyle hesaplanacaktır: δja=f’(NET)∑δmAjma m

δja= Çja(1- Çja)∑δmAjma Aktivasyon fonksiyonu olarak sigmoid fonksiyonun kullanılması durumunda ; δja= Çja(1- Çja)∑δmAjma m Ağırlıkların yeni değerleri ; Akji(t)= Akji(t-1) + ∆Akji(t)

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)=λδja + α ∆βja(t-1) βja(t)=βja(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.

Genelleştirilmiş Delta Kuralı

XOR Problemi ve Çözümü

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.

Fonksiyonunun belirlenmesidir Geriye Yayılımlı YSA B---- bias nöronkarı Bu nöronlar eşik görevindedirler. Her zaman için 1 değerini verirler. Öğrenmenin amacı dönüşüm Fonksiyonunun belirlenmesidir ----- F Hedef çıktılar

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.

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

Step Fonksiyon ile Çözüm Çıktı a3 = w2 * o1 + w3 * o2 Aktivasyon a3 = 1 * 0+ 1* 0 = 0 a4 = w1 * o1 + w5 * o3 + w4 * o2 a4 = -1 * 0 + 2 * 0 + (-1 * 0) = 0 O4 = 0 Eşik değeri, bütün hücreler için 0.02 olarak seçilmiştir.

Sigmoid Fonksiyon Seçilmesi Durumunda Sigmoid fonksiyon 0 ve 1 gibi değerler alır.

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 ) (  - 1 + e 1 = wji = weight of input i to neuron j  is a constant j =node threshold F=sigmoid function

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

Bu kısa hatırlatmadan sonra XOR problemimize dönersek; Başlangıç ağırlık değerlerimiz aşağıdaki gibi random olarak verilir. 1 2 3 4 0.02 0.03 - 0.02 0.01

İlk durumumuz o3=1 ,o4=1 ve α ve θ değerleri de sırasıyla 1 ve 0 olsun İ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 ; 1 3 1 + e –(1x0.01 + 1x0.02) 1 0.02-0.018 O2= = 0.678 0.01-0.010165 2 - 0.02 1 0.02 O3= 1 + e –[0.678x(-0.02) + 1x0.02 + 1x0.03) 1 = 0.509 0.03 1 4 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. (  wjioi - j ) - 1 + e 1 Sigmoid fonk. 1 = 0.509(1-0.509)(0-0.509) = -0.127 w13 = 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.00055 w23 = 0.3 (0.00055) x 1 = 0.000165, w23 = 0.01 + 0.000165 = -0.010165 Ağırlıkların değişimi

Değişik örnekler gösterilerek ağ, yukarıdaki gibi eğitilir. 1 = 0.509(1-0.509)(0-0.509) = -0.127 w14 = 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.00055 w24 = 0.3 (0.00055) x 1 = 0.000165, w24 = 0.02 + 0.000165 = -0.020165 1 3 -0.018 -0.010165 2 - 0.02 1 0.02-0.020165 0.03-0.008 1 4 1 = 0.509(1-0.509)(0-0.509) = -0.127 w12 = 0.3(-0.127) x 0.678 = -0.0258318, w12 = - 0.02 – 0.0258318 = -0.0458318 1 3 -0.018 - 0.02-0.0458318 -0.010165 2 1 -0.020165 1 4 -0.008 Değişik örnekler gösterilerek ağ, yukarıdaki gibi eğitilir.

Sonuçta aşağıdaki ağırlıklara ulaşıldığında ağ öğrenmesini durdurur. O3=1,O4=0 için 0.01’lik bir hata payı ile O2=0.9964 O1=0.9999 Değerleri elde edilir. 1 2 3 4 4.98 - 11.30 5.62 5.60 Sonuç ağırlıklar