C#Yapay Zeka

C# İle Yapay Sinir Ağı Eğitimi – 1

Merhabalar, yepyeni bir eğitim serimize başlıyoruz. Bu seriyle beraber C# ile yapay sinir ağı eğitimi yapacağız. Her adımı detaylı bir şekilde anlatmaya çalışacağım. Bu yüzden tek yazı olarak değilde bir seri olarak paylaşacağım.
Bu yazım ilk olacak ve yapay sinir ağı ile ilgili biraz bilgi verdikten sonra ikinci ve sonrasındaki yazılarda artık eğitime geçeceğim.

Yapay sinir ağı, ilk defa 1949 yılında Donald Hebb tarafından ortaya atılmış ve zamanla günümüze kadar büyük bir gelişme sağlayarak tahmin ve nesne sınıflandırma uygulamaları için vazgeçilmez tekniklerden biri olmuştur.
Yapay sinir ağları, insan beynindeki sinir ağları taklit edilerek geliştirilmiştir. Yapay sinir ağları ile ilgili gelişmeleri 1970’den öncekiler ve sonrakiler olmak üzere ikiye ayırabiliriz.
1970’den önceki çalışmalar;
  • 1890: İnsan beyninin yapısı ve fonksiyonları ile ilgili ilk yazının yayınlanması,
  • 1911: İnsan beyninin bileşenlerinin belirli bir düzenek ile sinir hücrelerinden (nöronlar) oluştuğu fikrinin benimsenmesi,
  • 1943: Yapay sinir hücrelerine dayalı hesaplama teorisinin ortaya atılması ve eşik değerli mantıksal devrelerin geliştirilmesi,
  • 1949: Biyolojik olarak mümkün olabilen öğrenme prosedürünün bilgisayar tarafından gerçekleştirilecek biçimde geliştirilmesi,
  • 1956-1962: ADALINE ve Widrow öğrenme algoritmasının geliştirilmesi,
  • 1957-1962: Tek katmanlı algılayıcıların (perceptron) geliştirilmesi,
  • 1965: İlk makine öğrenmesi kitabının yazılması,
  • 1967-1969: Bazı gelişmiş öğrenme algoritmalarının geliştirilmesi,
  • 1969: Tek katmanlı algılayıcıların problemleri çözme yeteneğinin olmadığının gösterilmesi,
1970’den sonraki çalışmalar:
  • 1969-1972: Doğrusal ilişkilerin geliştirilmesi,
  • 1972: Korelasyon matriks belleğinin geliştirilmesi,
  • 1974: Geriye yayılım modelinin geliştirilmesi,
  • 1978: ART modelinin geliştirilmesi,
  • 1982: Kohonen öğrenmesi ve SOM modelinin geliştirilmesi,
  • 1982: Hoppfield ağlarının geliştirilmesi,
  • 1982: Çok katmanlı algılayıcıların geliştirilmesi,
  • 1984: Boltzmann makinesinin geliştirilmesi,
  • 1988: RBF modelinin geliştirilmesi,
  • 1991: GRNN modelinin geliştirilmesi,
  • 1991-2000: Çalışmalar yapılmış ve birçok uygulamalar geliştirilmiştir.
Evet gördüğünüz üzere taa 1890’lı yıllarda temelleri atılmış ve günümüzde artık zirvelere çıkmıştır.

İnsan beyninde milyarlarca sinir hücresi yani nöron bulunmaktadır ve bunların hepsinin bi görevi vardır. Bir sinir hücresi; bir gövde, bir akson, birçok dendrit yani sinir ucu ve akson ile diğer sinir ağı arasındaki bağlantıyı sağlayan sinapslar olmak üzere 4 bölümden oluşmaktadır. Dendritler, gelen sinyali çekirdeğe iletir. Çekirdek dendritten gelen sinyali bir araya toplar ve aksona iletir. Toplanan sinyaller, akson tarafından işlenerek sinapslara gönderilir. Sinapslar da üretilen sinyalleri diğer sinir hücrelerine iletir.
İşte yapay sinir ağları da tam olarak bu şekilde çalışmaktadır.
Bir tane giriş, bir tane çıkış ve arada sayısı geliştirici tarafından belirlenmiş olan bir veya daha çok gizli katmandan oluşmaktadır. Katmanlar arasındaki her nöron, bağlantılar ile birbirlerine bağlıdır ve nöronlar kendilerine gelen veriyi çeşitli matematiksel fonksiyonlardan geçirerek kendinden sonra gelen katmandaki nöronlara iletir.
Çıkış katmanındaki nöron veya nöronlarda veriyi işleyerek bir çıkış üretir ve bu çıkış yapay sinir ağının tahminidir.
Bir ağın eğitimi, her aşamanın birden çok kere tekrar edilerek elde edilen çıkışlara göre hata oranının düşürülerek gerçek değere en yakın değere ulaşılana kadar devam etmesi ile sağlanır. Eğitim aşamasındaki her tekrara epoch adı verilir.

Yapay sinir ağı eğitimindeki en önemli şeylerden biri verisetidir ve veriseti olmadan ne yazık ki eğitim yapılamamaktadır. Veriseti içerisinde sonucu etkileyen bağımlı değişkenler ve bunların değeri ile o değerlere göre elde edilen gerçek değerler bulunmaktadır. Var olan bu veriler ile yapay sinir ağı eğitilir ve sonrasında verisetinde olmayan değerler ile oluşacak çıkış değerinin tahmin edilmesi sağlanır.

Yapay sinir ağında bulunan nöronların girdi ve çıktı değerleri bulunmakta ve girdi değerleri direk olarak verisetinden veya kendinden önce gelen nörondan yada kendi çıkışından gelebilir. Çıktı değeri ise girdi değerinin öncelikle toplama ve sonrasında aktivasyon fonksiyonu adı verilen 2 tane matematiksel işlemden geçirilerek elde edilen değerdir.
Birden çok toplama fonksiyonu ve yine birden çok aktivasyon fonksiyonu bulunmaktadır fakat en çok kullanılan toplama fonksiyonu Çarpımların Toplamı Fonksiyonu, aktivasyon fonksiyonu ise Sigmoid Fonksiyonu‘dur.
Toplama fonksiyonunda nöronda gelen tüm girdiler, girdinin geldiği nöron ile ilgili nöron arasındaki bağlantının bağlantı katsayılarının çarpılıp hepsinin toplanması ile elde edilir.
Toplama fonksiyonundan elde edilen değer aktivasyon fonksiyonuna sokulur ve orada elde edilen değer nöronun çıkışı olarak bir sonraki nörona yada tekrardan kendisine girdi olarak gönderilir.
En çok kullanılan toplama fonksiyonları;
En Çok Kullanılan Toplama Fonksiyonları

Ve en çok kullanılan aktivasyon fonksiyonları;
aktivasyon fonksiyonu


Evet bu kadar tarihi ve teorik bilginin ardından bu yazımı daha fazla uzatmadan sonlandırayım ki bir sonraki yazımda artık kodlamaya geçelim 🙂
Tüm serimize buraya tıklayarak ulaşabilirsiniz.Bir sonraki yazımızda görüşmek üzere, herkese hayırlı günler.
Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 2 Ortalama: 5]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu