Ana içeriğe atla

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI


Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap (A Logical Calculus of Ideas Immanent in Nervous Activity)” başlıklı makale ile ortaya çıkarılmıştır.
Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım.

Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır.
Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır.
Axon (Akson): Akson, hücre gövdesindeki uyartıyı akson ucunda bulunan diğer sinir hücresine veya tepki organına ileten yapıdır.
Synapse (Sinaps): Hücrelerin aksonlarının diğer dentritlerle olan bağlantısını sağlayan yapılardır.
Myelin Sheath (Miyelin Tabaka): İmpulsların (uyarıların) daha hızlı bir şekilde iletilmesini sağlayan yapılardır.
Biyolojik Sinir Sistemi
Yapay Sinir Sistemi
Nöron
İşlemci Elemanı
Dentrit
Toplama Fonksiyonu
Hücre Gövdesi
Transfer Fonksiyonu
Aksonlar
Yapay Nöron Çıkışı
Sinapslar
Ağırlıklar
Biyolojik sinir sistemi elemanlarının yapay sinir sisteminde karşılıkları (Koç, 2004).

YAPAY SİNİR AĞLARININ YAPISI

Yapay sinir hücrelerinin temel elemanları girdi, ağırlıklar, transfer fonksiyonu, aktivasyon fonksiyonu ve çıktılardır.

Girdiler: Bir yapay hücresine dış dünyadan gelen bilgilerdir. Bunlar ağın öğrenmesini istenen örnekler tarafından belirlenir.
Ağırlıklar: Bir yapay hücreye gelen bilginin önemini ve hücre üzerindeki etkisini gösterir. Şekildeki ağırlık wi1, xi1 girdisinin hücre üzerindeki etkisini göstermektedir. Ağırlıkların büyük ya da küçük olması önemli veya önemsiz olduğu anlamına gelmez. Bir ağırlığın sıfır olması o ağ için en önemli olay olabilir.
Toplama Fonksiyonu (Birleştirme Fonksiyonu): Bu fonksiyon, bir hücreye gelen net girdiyi hesaplar. Bunun için değişik fonksiyonlar kullanılmaktadır. En yaygın olanı ise ağırlıklı toplamıdır. Burada her gelen bilgi kendi ağırlığı ile çarpılarak toplanır. Böylece ağa gelen net girdi bulunmuş olur. Aşağıdaki tabloda bazı toplama fonksiyonlarına yer verilmiştir.
                                                     Bazı Toplama Fonksiyonları (Çayıroğlu, 2015)
Aktivasyon Fonksiyonu: Bu fonksiyon hücreye gelen net girdiyi işleyerek hücrenin bu girdiye karşılık üreteceği çıktıyı belirler. Aktivasyon fonksiyonu genellikle doğrusal olmayan bir fonksiyon seçilir. Yapay sinir ağlarının bir özelliği olan “doğrusal olmama” aktivasyon fonksiyonlarının doğrusal olmama özelliğinden gelmektedir. Aktivasyon fonksiyonu seçilirken dikkat edilmesi gereken bir diğer nokta ise fonksiyonun türevinin kolay hesaplanabilir olmasıdır. Geri beslemeli ağlarda aktivasyon fonksiyonunun türevi de kullanıldığı için hesaplamanın yavaşlamaması için türevi kolay hesaplanır bir fonksiyon seçilir. Şekil 4‘te yapay sinir ağlarında kullanılan aktivasyon fonksiyonları listelenmiştir. Günümüzde en yaygın olarak kullanılan “Çok katmanlı algılayıcı” modelinde genel olarak aktivasyon fonksiyonu olarak “Sigmoid fonksiyonu” kullanılır.

Aktivasyon Fonksiyonları (Çayıroğlu, 2015)

Hücrenin Çıktısı: Aktivasyon fonksiyonu tarafından belirlenen çıktı değeridir. Üretilen çıktı dış dünyaya veya başka bir hücreye gönderilir. Hücre kendi çıktısını kendisine girdi olarak da gönderebilir. Bir proses elemanının birden fazla çıktısı olmasına rağmen sadece bir çıktısı olabilir (Öztemel, 2006).
Yapay sinir ağları bazı temel özelliklere sahiptir. Bu özellikler;

  • Doğrusal Olmama
  • Paralel Çalışma
  • Öğrenme
  • Genelleme
  • Hata Toleransı ve Esneklik
  • Eksik Verilerle Çalışma
  • Çok Sayıda Değişken ve Parametre Kullanma
  • Uyarlanabilirlik

Yapay Sinir Ağları uygulamaları en çok tahmin, sınıflandırma, veri ilişkilendirme, veri yorumlama ve veri filtreleme işlemlerinde kullanılmaktadır. Bunlardan da şu şekilde bahsedeyim.
Tahmin: Bu prensipte çalışan yapay sinir ağları girdi değerinden çıktıları tahmin etme üzerine çalışır, örneğin altın ons fiyatının tahmini.
Veri Filtreleme: Bu doğrultuda kodlanan yapay ağlar toplanan veriler arasından en işe yarayan verileri kullanır.
Sınıflandırma: Girdi değerlerini sınıflandırarak sistemin daha hızlı sonuca varmasına etkide bulunur.
Veri Yorumlama: Önceden eğitilen ağ girdilerini analiz eder, bir olay hakkında bu girdiler sayesinde yeni yorumlamalar yapabilmektedir.
Veri İlişkilendirme: Öğrendiği bilgilerle konuları ilişkilendirir ve bunun sonucunda ortaya çıkan eksik bilgileri tamamlar.

YAPAY SİNİR AĞ MODELLERİ

Yapay sinir ağı modelleri tek katmanlı algılayıcılar, çok katmanlı algılayıcılar, ileri beslemeli yapay sinir ağları ve geri beslemeli yapay sinir ağları olarak dört grupta incelenebilir.

Tek Katmanlı Algılayıcılar
Tek katmanlı ağlar sadece girdi ve çıktıdan oluşur. Tek katmanlı algılayıcılarda çıktı fonksiyonu doğrusaldır ve 1 veya -1 değerlerini almaktadır. Eğer çıktı 1 ise birinci sınıfa, -1 ise ikinci sınıfa kabul edilmektedir (Öztemel, 2006).


               Tek Katmanlı Algılayıcı Modeli (Öztemel, 2006)

Çok Katman Algılayıcılar
Yapısal olarak doğrusal olmayan aktivasyon fonksiyonu olan birçok nöronun belli bir üstünlük içerisinde bağlandığı yapıya çok katmanlı algılayıcılar denir. Çok katmanlı algılayıcıların ortaya çıkmasında bazı yöntemlerin etkisiz kalmasının rolü vardır.


İleri Beslemeli Yapay Sinir Ağları
İleri beslemeli sinir ağları tek yönlü sinyal akışı için izin verir. Ayrıca, ileri beslemeli sinir ağları çoğu katmanlar halinde organize edilmektedir. Üç katmanlı ileri beslemeli sinir ağı bir örneği Şekil 7’de gösterilmiştir. Bu şebeke giriş düğümleri, iki gizli katman ve bir çıkış katmandan oluşur. Tipik aktivasyon fonksiyonları Şekil 4’te gösterilmiştir. Bu sürekli aktivasyon fonksiyonları katmanlı ağlar gradyan tabanlı eğitimi için izin verir (Wilamowski, 2003).


       İleri Beslemeli Sinir Ağlara Örnek (Öztemel, 2006)

Geri Beslemeli Yapay Sinir Ağları
Geri beslemeli Yapay Sinir Ağları (YSA)’ da, en az bir hücrenin çıkışı kendisine ya da diğer hücrelere giriş olarak verilir ve genellikle geri besleme bir geciktirme elemanı üzerinden yapılır. Geri besleme, bir katmandaki hücreler arasında olduğu gibi katmanlar arasındaki hücreler arasında da olabilir. Bu yapısı ile geri beslemeli YSA, doğrusal olmayan dinamik bir davranış gösterir. Dolayısıyla, geri beslemenin yapılış şekline göre farklı yapıda ve davranışta geri beslemeli YSA yapıları elde edilebilir. Aşağıda bulunan Şekil 8’de iki katmanlı ve çıkışlarından giriş katmanına geri beslemeli bir YSA yapısı görülmektedir (Kabalcı, 2015).

Geri Beslemeli YSA (Kabalcı, 2015)
Ağ modellerinden bahsettikten sonra gelelim başarımı arttırmak için Rumelhart ve arkadaşları tarafından ilk defa 1986 yılında kullanılmış Geri Yayılım Algoritmasına…
Geri Yayılım Algoritması (BackPropagation):
Çok Katmanlı Algılayıcılar eğitimi için denetimli bir öğrenme algoritmasıdır. Daha öncede belirtildiği gibi girişlerle çıkışlar arasındaki hata sinyali bulunarak, ağırlıklar bu hata sinyaliyle güncellenmektedir. Hata yani e(t), arzu edilen çıkış t(t) ile sinir ağının çıkışı y(t) arasındaki farktır.

e(t) = t(t) – y(k) ; t=1,..,m   (2)

Geri yayılım öğrenme algoritmasının temel yapısı, zincir kuralı kullanılarak, ağ üzerindeki tüm ağırlıklara E hata fonksiyonunun etkilerini yaymaktır. Böylelikle toplam hata değerini minimize etmektedir.

E_Top= lim┬(t→∞)((∑_(t=1)^t▒E^t )/t)   (3)

Herhangi bir ‘t’ denemesinde Et değeri küçültülebilirse sistemin hatasının azalacağı Eşitlik 3’te kolaylıkla gözlenmektedir. Sistem hatasındaki azalmayı temel olarak alarak ve bu azalmayı destekleyecek şekilde ağ üzerindeki ağırlık değerleri yeniden belirlenecek yöntemler kullanılmaktadır. Eğitme işlemi ve eğitimden sonraki test işlemi bu akışa göre yapılır. Bu algoritma ile xi. giriş için, i ve j kat işlem elemanları arasındaki ağırlıklardaki wji(t) değişikliği hesaplanır.
  (4)

olarak verilir. Eşitlik 4’de η öğrenme katsayısı, α momentum katsayısı ve δj ara veya çıkış katındaki herhangi bir j nöronuna ait bir faktördür. Çıkış katı için bu faktör aşağıdaki şekilde verilir.
    (5)

Burada yj(t) ise j işlemci elemanının hedef çıkışıdır. Ara katlardaki (İşlem Elemanları – Nöronlar ) İşlem Elemanları (İE) için ise bu faktör,
  (6)

olarak verilir. Ara katlardaki İE’ler için herhangi bir hedef çıkış olmadığından, Eşitlik 5 yerine Eşitlik 6 kullanılır. Bu duruma bağlı olarak çıkış katından başlayarak δj faktörü, bütün katlardaki İE’ler için hesaplanır. Daha sonra Eşitlik 4’deki formüle bağlı olarak, bütün bağlantılar için ağırlıkların güncelleştirilmesi gerçekleştirilir. Geri yayılım algoritmasında kullanılacak aktivasyon fonksiyonu birkaç önemli karakteristiğe sahip olmalıdır. Aktivasyon fonksiyonu, sürekli, türevi alınabilir ve tekdüze bir şekilde azalmayan bir fonksiyon olmalıdır. Bu fonksiyonun türevinin kolay alınıyor olması tercih sebebidir. Genellikle, fonksiyonun minumum ve maksimum asimtotlar arasında uzanması beklenir (Yüksek, 2007).
 İki katmanlı bir ağ modelinin eğitilmesi için aşağıdaki 11 satırlık Python kodu yeterlidir.

Yapay sinir ağları özetle insan beyninin çalışma yapısını taklit ederek geliştirilen yapay zeka tekniklerinden sadece biridir.
Görüş, öneri ve katkıda bulunmak veya beraber öğrenmek isterseniz safaburakbahceci29@gmail.com ‘dan bana ulaşabilirsiniz. Görüşmek üzere…

Yararlanılan Kaynaklar:

 Yapay Sinir Ağları ve Yapay Zekâ’ya Genel Bir Bakış- Kadir Öztürk, Mustafa Ergin Şahin

 Geçmişten Günümüze Yapay Sinir Ağları ve Tarihçesi- Mustafa Furkan Keskenler, Eyüp Fahri Keskenler

Yorumlar

Bu blogdaki popüler yayınlar

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dakika

Davranışların İnterneti : IoB (Internet of Behaviors)

Bu yazımda yeni teknoloji trendleri içinde gördüğüm ve hayatımızda örnekleri olan fakat önümüzdeki zamanlarda daha çok hayatımızda olacak bir teknoloji konusu olan Davranışların İnterneti’ni ele alacağım.   Davranış İnterneti, çok çeşitli yeni veri kaynaklarıyla sonuçlanan cihazların birbirine bağlanması olan Nesnelerin İnterneti'nden (IoT) uzanır. Bu, geri bildirim döngüleri aracılığıyla eylemleri ve davranışları etkilemek için hem dijital hem de fiziksel dünyalardan gelen verileri bir araya getirir. IoB'nin yaptığı, bu verileri anlamlandırmak ve çevrimiçi satın alma veya belirli bir markayı takip etme gibi belirli insan davranışlarına eklemektir. Davranışın İnterneti, doğrudan bireylere odaklanan mevcut teknolojileri birleştirir. Yüz tanımadan konum izlemeye kadar, elde edilen verileri nakit satın alma veya cihaz kullanımı gibi ilişkili davranışsal olaylara bağlar. Kullanıcıların çevrimiçi etkinliklerinden toplanan verileri davranışsal psikoloji perspektifinden anlamak, tam o