Anasayfa / Bilgisayar Mühendisliği / Yapay Sinir Ağları (YSA)

Yapay Sinir Ağları (YSA)

Yapay Sinir Ağları

Yapay zekanın en geniş konularından biridir. Elimden geldiğince bu konuyla ilgili tüm bildiklerimi sizinle paylaşmaya çalışacağım. Yapay sinir ağları; insan beyninin öğrenme,eskiye bilgiye dayalı tahmin etme, eksik bilgiyi tamamlama gibi yeteneklerini makinelere kazandırmayı amaçlar. Birçok işlem ünitesinden oluşur. Processing elements, units,neuron. İşaret tanıma, el yazısı gibi farklı alanlarda başarıya ulaşmıştır. Yapay sinir ağları, bulanık mantık ve genetik algoritmayla birlikte kullanılarak çok etkin çözümler ortaya koyar.

Adsız

Biyolojik Nöron ve Yapay Nöronun Karşılaştırması

Biyolojik nöron;

–  İşlem birimlerine nöron denir.

– Nöron aktif veya pasif durumda olabilir.

– Eğer toplam giriş değeri belirtilen eşik değerinden büyükse nöron aktif olur. Değilse pasiftir.

Yapay nöron;

– Her nöron giriş ve çıkışlara sahiptir.

– Birçok sayıda işlem ünitesinden oluşur.

– Her nöron sahip olduğu aktivasyon fonksiyonu ile basit hesaplamalar yapar.

– Nöron bir giriş fonksiyonuna sahiptir.

-Node’lar giriş,çıkış,node fonksiyonu, bağlantılar ve bağlantı gücünden oluşur.

Yapay Nöronun Şekli

Adsız

Eğer toplam sinyal hücreyi ateşleyebilecek eşik değerini atlatabilecek kadar yüksekse o hücre aktiftir yani y=1 dir. Değilse pasiftir yani y=0 dır.

Yin= ∑pi=1 Xi * Wi      →  y= f(Yin)   bu aktivasyon fonksiyonudur.

Girişler yani X sinyalleri ağırlıklarıyla yani W lerle çarpılıp toplam sinyale dahil olur. En çok kullanılan fonksiyonlar Gaussian ve Sigmoid fonksiyonlarıdır.

Sigmoid Fonksiyonu: Devam eden sürekli cevaplar gelir ve ayrık değildir. Hassas değerlendirmelerde kullanılır.

Sigmoid f(x): 1/1+exp(-netj)   veya f(x): 1/ 1+e-x

Gaussian Fonksiyonu: f(net)= (1/√2Πσ) exp(-1/2(net-µ/σ)2)

Yapay Sinir Ağlarında Öğrenme

1- Denetimli Öğrenme: Ağa belirli giriş değeri için çıkış değerleri verilir. Ağırlıklarda verilen giriş ve çıkış değerlerine göre ayarlanır.

2- Denetimsiz Öğrenme: Çıkış değerlerinin girilmesine gerek yoktur. Sistemin kendi kendine öğrenmesi beklenir.

3- Destekleyici Öğrenme: Denetimlinin farklı bir türüdür. Amaç çıkış değerleri girmek yerine verilen girişe göre çıkışı bulmaktır.

Perceptron Öğrenme Kuralı

η= öğrenme oranı

Wi= i. bağlantının ağırlık değeri                                     Wi+1= Wi+ ΔWi

ΔWi= ağırlık değişim değeri                                            ΔWi= η * Xi * (d-o)

Xi= i.girişe verilen değer

d= istenen çıkış değeri  (tabloda verilir.)

o= hesaplanan çıkış değeri

Geri Beslemeli Öğrenim Algoritması (Backpropagation)

Buradaki amaç gerçek çıkış ile istenen çıkış arasındaki karesel hatayı minimum yapmaktır. Gizli katman için Sigmoid fonksiyonu hesaplanır.

Adsız

Algoritmadaki işlem basamaklarımız;

İleri Yayılım için

netj= Σni=1 Xi * Wij  → Gizli katman için toplam sinyal hesaplanır.

Zj= fsigmoid (zinj) → Gizli katman için çıkış değerleri hesaplanır.

Zj= 1/1+exp(-netj)

Yink= Σ zj * W jk  → Çıktı katmanı için toplam sinyaller hesaplanır.

yk= fsigmoid(yink) → Çıktı katmanı için çıkış değeri hesaplanır.

yk= 1/1+exp(-netj)

** Eğitimin bitip bitmediğini anlamak için E değerimizin önceden verilmiş hataya eşit veya daha küçük olması gerektiğine bakarız.

E= 1/2 * Σ (Tj-Fj)2  → Hata hesaplama

Geri Yayılım İçin

Delta ve çıkış değerleri geri yayılım için hesaplanır.

j= Fj * (1-Fj)*(TJ-Fj)  → Çıkış katmanının hata hesaplamıası (her bir nöron için)

j= Fj * (1-Fj) * Σkk * Wkj → Gizli katmanın hata hesaplaması

Bütün katmanlar için ağırlık değerleri yeniden hesaplanır.

Wi+1= Wi + η * Xi * (d-o)

Amaç verilen giriş değerleriyle hedefe ulaşmaktır. Yapay sinir ağlarıyla ilgili genel bilgileri verdim. İleri yayılım ve geri yayılımla ilgili örnekleri bir sonraki yazımda göstereceğim.

İyi Çalışmalar..

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

İşletim Sistemlerine Giriş

İşletim sistemleri, bilgisayar donanımları ve kullanıcılar arasında iletişim sağlamak amacıyla yazılmış olan programlardır. Bilgisayar Nedir? …

4 Yorumlar

  1. Çok güzel paylaşımlar gerçekten teşekkür ederim 🙂

  2. Sunda

    Samime hanım genetik algoritma yla ilgili döküman ve örnekleriniz var mıdır?