Yapay Sinir Ağı(Artificial Neural Network) Nedir?
Yapay Sinir Ağı Nedir?
Yapay sinir ağları (YSA), insan beyninin özelliklerinden olan öğrenme yolu ile yeni bilgiler türetebilme, yeni bilgiler oluşturabilme ve keşfedebilme gibi yetenekleri, herhangi bir yardım almadan otomatik olarak gerçekleştirebilmek amacı ile geliştirilen bilgisayar sistemleridir[1].
Yapay sinir ağları insan beyni örnek alınarak, öğrenme sürecinin matematiksel olarak modellenmesi sonucu ortaya çıkmıştır. Beyindeki biyolojik sinir ağlarının yapısını, öğrenme, hatırlama ve genelleme kabiliyetlerini taklit eder[2]. Yapay sinir ağlarında öğrenme işlemi örnekler kullanılarak gerçekleştirilir. Öğrenme esnasında giriş çıkış bilgileri verilerek, kurallar koyulur.
Yapay Sinir Ağlarının Avantajları
- Yapay Sinir Ağları bir çok hücreden meydana gelir ve bu hücreler eş zamanlı çalışarak karmaşık işleri gerçekleştirir.
- Öğrenme kabiliyeti vardır ve farklı öğrenme algoritmalarıyla öğrenebilirler.
- Görülmemiş çıktılar için sonuç (bilgi) üretebilirler. Gözetimsiz öğrenim söz konusudur.
- Örüntü tanıma ve sınıflandırma yapabilirler. Eksik örüntüleri tamamlayabilirler.
- Hata toleransına sahiptirler. Eksik veya belirsiz bilgiyle çalışabilirler. Hatalı durumlarda dereceli bozulma (graceful degradation) gösterirler.
- Paralel çalışabilmekte ve gerçek zamanlı bilgiyi işleyebilmektedirler.
Yapay sinir ağları başlıca teşhis, sınıflandırma, tahmin, kontrol, veri ilişkilendirme, veri filtreleme, yorumlama gibi alanlarda kullanılmaktadır. Hangi problem için hangi ağın daha uygun olduğunu belirlemek için ağların özellikleri ile problemlerin özelliklerini karşılaştırmak gerekir.
Yapay Sinir Ağlarının Kullanım Alanları
- Hesaplamalı Finans(Computational finance): Kredi skorlaması(credit scoring), Algoritmik Ticaret(algorithmic trading)
- Görüntü işleme ve bilgisayarla görü(image processing and computer vision): Yüz tanıma(face recognition), hareket tanıma(motion detection), nesne tanıma(object detection)
- Hesaplamalı biyoloji(Computational biology): Tümör bulma(tumor detection), İlaç keşfi(durg discovery), DNA dizilimi(DNA seqencing)
- Enerji üretimi (Energy production): Fiyat ve yük tahmini (price and load forecasting)
- Otomotiv, havacılık ve üretim (Automotive, aerospace and manufacturing): Öngörücü bakım (predictive maintenance)
- Doğal dil işleme(Natural language processing ): Sesli Asistan(voice assistant), Duygu analizi(emotion analysis)
Yapay Sinir Ağlarının Biyolojik Temelleri
Yapay sinir ağları nöronlardan(sinir hücrelerinden ) oluşur. Nöronların bilgi işleme özelliği vardır. Nöronlar birbirleri ile bağlanarak fonksiyonları oluşturur. Beynimizde 100 milyar adet nöron bulunduğu tahmin edilmekte. Bir nöron başka nöronlarla 50.000 – 250.000 arasında bağlantı yapabilmekte ve beynimizde 6×10^13’ten fazla sayıda bağlantı bulunduğu tahmin edilmektedir[3].
Canlıların davranışlarını inceleyip,matematiksel olarak modelleyip benzer yapay modeller üretilmesine sibernetik denir[4]. Varılmak istenen nokta eğitilebilir, kendi kendine organize olup öğrenebilen, değerlendirme yapabilen sinir ağları ile insan beyninin öğrenme ve uygulama yapısını modellemeye çalışmaktır. Bir işi bilgisayar da gerçekleştirebilmek için algoritmasını bilmek gerekir. Algoritma, girdiyi çıktıya çevirmek için temel komut dizilerinin tamamıdır. Ancak bazı problemleri çözmek için bilinen bir algoritma olmayabilir. İstenen ve istenmeyen durumlarda zamanla değişiklik gösterebilir ya da kullanıcıya göre değişkenlik gösteren uygulamalar sabit algoritmalara sahip değillerdir. Elimizde bilgimiz eksikse de verimiz bol olabilir. Kolayca hem istenen hem istenmeyen binlerce örnekten sistemin öğrenmesini sağlayabiliriz.
Günümüz teknolojisinde veri toplama cihazları sayısal olduğundan verilerin güvenilir bir şekilde erişilebiliyor olması, saklanabiliyor ve işlenebiliyor olması bize avantaj sağlamaktadır.
Peki bir sinir hücresi nasıl çalışıyor?
Canlılardaki sinir hücrelerinin biyolojik görünümü yukarıda gördüğümüz şekildeki gibidir. Çekirdeğimiz var ve bir akson boyunca iletim yapılıyor. Burada çıkış terminallerinde dentrit uclarından elde edilen sensör verilerimiz çekirdekte ağırlandırılarak akson boyunca iletiliyor ve başka sinir hücresine bağlanıyor. Bu şekilde sinirler arası iletişim sağlanmış oluyor.
İnsandaki bir sinir hücresinin matematiksel modeli ise şu şekilde gösterilebilir:
Dentrit dediğimiz yollar boyunca ağırlıklarımız mevcut ve bu dentritlere giren bir başka nörondan da gelmiş olabilecek bir giriş değerimiz (x0 ) var. Giriş değerimiz ve dentritteki ağırlığımız(w0) çarpıldıktan sonra( w0x0) sinir hücresine iletilir ve sinir hücresinde bu çarpma işlemi yapılıyor ve tüm dentritlerden gelen ağırlık ile giriş çarpımları toplanır. Yani ağırlıklı toplama işlemi yapılır. Ardından bir bias(b) ile toplandıktan sonra aktivasyon fonksiyonu ardından çıkışa aktarılır. Bu çıkış nihai çıkış olabileceği gibi bir başka hücrenin girişi olabilir. Matematiksel olarak ağırlıklar ile girişler çarpılır artı bir bias eklenir. Böylelikle basit bir matematiksel model elde edilir.
Yapay Sinir Ağlarında yapılan temel işlem; modelin en iyi skoru vereceği w(ağırlık parametresi) ve b(bias değeri) parametrelerinin hesabını yapmaktır.
Her bir sinir hücresi aynı şekilde hesaplanır ve bunlar birbirine seri ya da paralel şekilde bağlanır.
Bir yapay sinir hücresi beş bölümden oluşmaktadır;
1.Girdiler: Girdiler nöronlara gelen verilerdir. Bu girdilerden gelen veriler biyolojik sinir hücrelerinde olduğu gibi toplanmak üzere nöron çekirdeğine gönderilir.
2. Ağırlıklar: Yapay sinir hücresine gelen bilgiler girdiler üzerinden çekirdeğe ulaşmadan önce geldikleri bağlantıların ağırlığıyla çarpılarak çekirdeğe iletilir. Bu sayede girdilerin üretilecek çıktı üzerindeki etkisi ayarlanabilinmektedir.
3.Toplama Fonksiyonu (Birleştirme Fonksiyonu): Toplama fonksiyonu bir yapay sinir hücresine ağırlıklarla çarpılarak gelen girdileri toplayarak o hücrenin net girdisini hesaplayan bir fonksiyondur
4.Aktivasyon fonksiyonu: Önceki katmandaki tüm girdilerin ağırlıklı toplamını alan ve daha sonra bir çıkış değeri (tipik olarak doğrusal olmayan) üreten ve bir sonraki katmana geçiren bir fonksiyondur. (örneğin, ReLU veya sigmoid ).
5.Çıktılar: Aktivasyon fonksiyonundan çıkan değer hücrenin çıktı değeri olmaktadır. Her hücrenin birden fazla girdisi olmasına rağmen bir tek çıktısı olmaktadır. Bu çıktı istenilen sayıda hücreye bağlanabilir.
Yapay Sinir Ağının Yapısı
Yapay sinir ağları yapay sinir hücrelerinin birbirine bağlanmasıyla oluşan yapılardır.
Yapay sinir ağları üç ana katmanda incelenir; Giriş Katmanı, Ara (Gizli) Katmanlar ve Çıkış Katmanı.
Bilgiler ağa girdi katmanından iletilir. Ara katmanlarda işlenerek oradan çıktı katmanına gönderilirler. Bilgi işlemeden kasıt ağa gelen bilgilerin ağın ağırlık değerleri kullanılarak çıktıya dönüştürülmesidir. Ağın girdiler için doğru çıktıları üretebilmesi için ağırlıkların doğru değerlerinin olması gerekmektedir.
Birçok nörondan ve gizli katmandan oluşuyorsa buna çok katmanlı sinir ağı(multilayer artificial neural network) denir. Eğer tek bir katmandan oluşuyorsa tek katmanlı sinir ağı(single layer artificial neural network) denir.
Tek Katmanlı Sinir Ağları Nasıl Çalışır?
En basit sinir ağı türü olan tek katmanlı sinir ağları mantık devrelerinde kullanılan kapılar gibi düşünülebilir. Girdisi ya doğrudan çıkışa ya da bir sonraki katmana eklenebilir. Genellikle iki girdisi olur bir çıktısı olur. Girişler sinapslar boyunca uzanır ve ağırlıklarıyla çarpılarak bir eşik değerinden geçirilir.
İki sınıfı tek doğru ile ayıran sinir ağıdır. Ya da birçok sınıf varsa tek katmanlı birkaç sinir ağıyla gerçekleştirilen ayırtaçlar bu ayırtaçlar diskriminant olarak tanımlanabilir. Doğrusal diskriminant denklemi ile ayırabiliyoruz.
Problemin sınırlarının kolayca belirleniyor olması gerekir.
Peki diskriminantların doğrusal ve x girdisine sahip olduğunu varsayarsak eğer ;
Hesaplayacağımız diskriminant, ağırlıklar ve girişlere bağlı bir şekilde d kadar toplama yapılarak w ağırlıkları, x ler ise girdileri ifade etmektedir. Doğrusal diskriminant daha çok basitliği nedeniyle tercih edilen bir yöntemdir. Çıktı xj girdisinin ağırlıkları toplamıdır ve wj ağırlığının büyüklüğü xj girdisinin önemini simgeler. Ağırlığı büyük olan girdi önemli bir girdi demektir. Girişten gelen önemli özellikleri taşıyor anlamına gelir. Şekildeki genelleştirme kısmını açıklayacak olursak; xt nin w ile çarpılmış halidir diyebiliriz. Diskriminantı teta olarak tanımlayacak olursak eğer genel diskriminant formülümüzü ağırlıkların x e bağlı diskriminantları ağırlıklı toplamı şeklinde ifade edilir. Girdiye çarpım değeri de eklenenilir.
Doğrusal olarak ayrılabilen iki sınıf varsa bunun için bir diskriminant denklemi kullanmak yeterli olur.
İki sınıf için tanımlamış olduğumuz diskriminant denklemlerinden tek bir diskriminant denklemine geçiş yapabilme işlemine ayırtaç denklemi denir. g1 ve g2 iki farklı ağırlık ve x girdilerine göre hesaplanıyor. w ile x birer vektör ve vektörleri birbirleriyle çarparken bir tanesinin transpozesini almamız gerektiğini biliyoruz. Sonuç olarakta elde ettiğimiz g(x) fonksiyonu g(x) denkleminde sıfırdan büyükse ve değilse durumu olarak iki sınıf atıyorum. Sıfırdan büyük elde edilirse c1 sınıfına, sıfırdan küçük elde edilirse c2 sınıfına ait olsun diyoruz. Bunu yaparken y yi yani diskriminant denklemini bir sigmoid fonksiyonuna tabi tutmuş oluyoruz.
Basit bir sinir ağı üzerinde gösterecek olursak;
VE(AND) Mantık Kapısı Problemi
İki sınıflı çıkış üreten ve tek bir ayırtaçla simgelenebilen tek katmanlı modelle ifade edilebilen bir problemdir. V kapısının çalışma prensibi Şekilde görüldüğü gibidir. İki girişi olur, bir çıkışı olur. Bunun için eşik değeri olarak sinir hücresinde 1.5 i eşik değeri olarak kabul edilir ve girişlerimiz 1.5 değerinden büyük olduğu durumda çıkış 1 çıktısını, diğer durumlarda 0 çıktısını üretir.
X1 =0 x1.w1=0.1=0 0+0=0 0>1.5 hayır çıkış=0
X2=0 x2.w2=0.1=0
(0,0) olduğunda çıktı=0
(0,1) olduğunda çıktı=0
(1,0) olduğunda çıktı=0
(1,1) olduğunda çıktı=1 olduğunu görüyoruz.
Biz bunu sıfırların olduğu uzay ve birin olduğu uzay olarak doğrusal bir ayırtaç ile ikiye ayırabiliyoruz. İşte bu tek katmanlı sinir ağının çalışma şeklidir. Bu ayırtacın eşik değerini ileriye geriye doğru çektikçe modelin performansını arttırıp azaltabiliriz. Örneğin eşik değerini 1.5 değilde 0.5 olarak tanımlansaydı sınıfları doğru şekilde ayrılmazdı.
VEYA (OR) Mantık Kapısı Problemi
Çıkış yine iki sınıftan oluşur. Buradaki koşul ise çıkışların 0.5 ten büyük olduğu durumlarda 1 olarak çıkar.Çıkışta iki sınıfı ayırmak için bu sefer diskriminantın eşik değeri olarak 0.5 kullanılır. Böylelikle 0 olan değer ile 1 olan birbirinden ayrılmış olur.
X1 =1 x1.w1=1.1=0 1+1=2 2>0.5 evet çıkış=1
X2=1 x2.w2=1.1=0
(0,0) olduğunda çıktı=0
(0,1) olduğunda çıktı=1
(1,0) olduğunda çıktı=1
(1,1) olduğunda çıktı=1 olduğunu görüyoruz.
Sonuç olarak bu yazıda yapay sinir ağları konusu üzerinde durduk. Yapay sinir ağları, insan beyninden esinlenerek öğrenme, karar verme gibi problemlere çözümler getirdiğinden,bize sağladığı faydalardan ve kullanım alanlarından bahsetmiş olduk.
Başka bir yazı da görüşmek üzere.
Kaynakça
- http://www.ibrahimcayiroglu.com/Dokumanlar/IleriAlgoritmaAnalizi/IleriAlgoritmaAnalizi-5.Hafta-YapaySinirAglari.pdf
- https://www.linkedin.com/pulse/yapay-sinir-a%C4%9Flar%C4%B1-ve-tek-katmanl%C4%B1-a%C4%9Flarda-%C3%B6%C4%9Frenme-tanju-do%C4%9Fan/
- https://www.linkedin.com/pulse/yapay-sinir-a%C4%9Flar%C4%B1-ve-tek-katmanl%C4%B1-a%C4%9Flarda-%C3%B6%C4%9Frenme-tanju-do%C4%9Fan/
- https://www.udemy.com/course/derin-ogrenmeye-giris/learn/lecture/11220340#questions
7.https://www.udemy.com/course/derin-ogrenmeye-giris/learn/lecture/11145308#overview
8.https://www.udemy.com/course/derin-ogrenmeye-giris/learn/lecture/11145308#overview
9.https://www.udemy.com/course/derin-ogrenmeye-giris/learn/lecture/11145308#overview