Yapay Sinir Ağları



Original Source Here

Giriş

Sinir ağları ve derin öğrenme, Bilgisayar Bilimi ve teknoloji endüstrisindeki büyük konulardır, şuanda görüntü tanıma, konuşma tanıma ve doğal dil işlemedeki birçok soruna en iyi çözümleri sunmaktadırlar. ‘Yapay’ sinir ağı olarak adlandırılan bir sinir ağının tanımı, ilk nörobilgisayarlarınmucitlerinden biri olan Dr. Robert Hecht-Nielsen tarafından yapılmıştır. Bir sinir ağını şu şekilde tanımlar:

“… bilgileri harici girdilere dinamik durum tepkileri ile işleyen bir dizi basit, yüksek oranda birbirine bağlı işlem öğesinden oluşan bir bilgi işlem sistemi.”

Yapay Sinir Ağı, insan beynindeki biyolojik sinir ağlarının bilgiyi işleme biçiminden ilham alan hesaplama modeli olarak da düşünebilir.

Sinir Ağı Türleri:

Sinir ağları, kullanım amaçlarına göre farklı türlere ayırabiliriz. Kapsamlı bir tür listesi vermesekte, aşağıdakiler yaygın kullanım durumları için karşılaşacağınız en yaygın sinir ağı türlerini temsil etmektedir:

İleri Beslemeli Sinir Ağı(Feedforward neural networks):

Bir girdi katmanı, bir veya daha fazla gizli katman ve bir çıktı katmanından oluşmaktadırlar. Veriler genellikle onları eğitmek için bu modellere beslenir ve bunlar bilgisayarla görme, doğal dil işleme ve diğer sinir ağlarının temelidir.

Evrişimli Sinir Ağı(Convolutional Neural Networks):

Evrişimli sinir ağları (CNN’ler), ileri beslemeli ağlara benzer, ancak genellikle görüntü tanıma, örüntü tanıma ve/veya bilgisayar görü sistemleri için kullanılırlar. Bu ağlar, bir görüntü içindeki kalıpları tanımlamak için lineer cebirden, özellikle matris çarpımından gelen ilkeleri kullanır.

Tekrarlayan Sinir Ağları(Recurrent Neural Network):

Tekrarlayan sinir ağında (RNN), birimler arasındaki bağlantılar yönlendirilmiş bir döngü oluşturur (verileri ileriye doğru, aynı zamanda daha sonraki işlem aşamalarından önceki aşamalara kadar geriye doğru yayarlar). Bu, dinamik zamansal davranış sergilemesine izin verir. İleri beslemeli sinir ağlarından farklı olarak, RNN’ler kendi dahili belleğini rastgele girdi dizilerini işlemek için kullanabilir. Bu, onları bölümlere ayrılmamış, bağlantılı el yazısı tanıma, konuşma tanıma ve diğer genel sıra işlemcileri gibi görevlere uygulanabilir kılar.

Yapay Sinir Ağı İle İlgili Önemli Kavramlar:

  • Giriş Düğümleri (giriş katmanı): Bu katmanda burada hiçbir hesaplama yapılmaz, sadece girdi bilgiyi tutar ve bilgiyi bir sonraki katmana iletirler (çoğu zaman gizli katman). Sadece bir düğüm içeren bloklar da katman olarak adlandırılır.
  • Gizli Düğümler(Gizli katman): Gizli katmanlarda, ara işlem veya hesaplamanın yapıldığı yerdir. Hesaplamaları yaparlar ve ardından ağırlıkları (sinyaller veya bilgiler) giriş katmanından sonraki katmana (başka bir ara katman veya çıktı katmanına) aktarırlar. Ara bir katman olmadan bir sinir ağına sahip olmak mümkündür.
  • Bağlantılar ve ağırlıklar: Sinir ağları bağlantılardan oluşur. Her bağlantı bir nöronun i çıktısını bir sonraki nöronun j girişine aktarır. Bu anlamda i, j’nin öncülüdür yada j, i’nin halefidir. Her bağlantıya bir Wij ağırlığı atanır.
  • Aktivasyon fonksiyonu: Bir düğümün aktivasyon fonksiyonu, bir giriş veya giriş seti verilen o düğümün çıkış değerini tanımlar. Standart bir bilgisayar çip devresi, girişe bağlı olarak “AÇIK” (1) veya “KAPALI” (0) olabilen bir dijital etkinleştirme işlevleri ağına benzetilebilir. Bu, doğrusal algılayıcının sinir ağlarındaki davranışına benzer. Bununla birlikte, bu tür ağların sadece az sayıda düğüm kullanarak önemsiz olmayan sorunları hesaplamasına izin veren doğrusal olmayan aktivasyon işlevidir. Yapay sinir ağlarında bu işleve aktarım işlevi de denir.
  • Öğrenme kuralı: Öğrenme kuralı, ağa verilen bir girdinin tercih edilen bir çıktı üretmesi için sinir ağının parametrelerini değiştiren bir kural veya bir algoritmadır. Demek istediğim olarak ağırlıkların(Wij) ve eşiklerin değiştirilmesidir.

Yapay Sinir Ağı Mimarisi:

Yapay sinir ağlarının mimarisi, bir girdi katmanı, bir veya daha fazla gizli katman ve bir çıktı katmanı içeren düğüm katmanlarından oluşur. Her düğüm veya yapay nöron diğerine bağlanır ve ilişkili bir ağırlık ve eşiğe sahiptir. Herhangi bir düğümün çıktısı belirtilen eşik değerinin üzerindeyse, o düğüm etkinleştirilir ve ağın bir sonraki katmanına veri gönderilir. Aksi takdirde, ağın bir sonraki katmanına hiçbir veri iletilmez.Sinir ağları mimarisi aşağıdaki figürde açıklanmaktadır:

Ağın i. sıradaki katmana i ve katmanın j. sırasındaki nörona j dersek, elimizde:

bu denklemde w, b, z değerleri sırasıyla ağırlık, bias ve çıkış değerini temsil eder.

Aktivasyon Fonksiyonları:

Modele doğrusal olmayan karmaşıklıklar eklemek için gizli bir birimin sonunda etkinleştirme işlevlerikullanılır. Aktivasyon sonucu elde edilen değerler bir sonraki nöronların girişi olarak kullanılır. İşte enyaygın olanları(not:g(z)=a):

İleri Yayılma

İleri yayılma sürecinde nöronların sahip olduğu değerler güncellenir. Aşağıdaki sinir ağı örneğinde ileri yayılma işlemi genel olarak göstermektedir:

Eğer yukarki görselimizde daha fazla gizli katman olsaydı gizli kazmandaki nöronlar bu sefer bir sonki katmanların girdisi olacaktı(sigma işareti olarak gösterilen ifade sigma aktivasyon fonksiyonunu göstermektedir).

Cross Loss Entrophy(Çapraz Entropi Kaybı):

Çapraz entropi kaybı veya log kaybı, çıktısı 0 ile 1 arasında bir olasılık değeri olan bir sınıflandırma modelinin performansını ölçer.Tahmin edilen olasılık gerçek değerden yani o anki girdinin karşılığı olması gereken çıktıdan uzaklaştıkça çapraz entropi kaybı artar.Bu nedenle, gerçek gözlem sonucu 1 olduğunda 0.012 sonucunu tahmin etmek kötü olur ve yüksek bir kayıp değeriyle sonuçlanır. Mükemmel bir modelin kaybı 0 olur.

Sinir ağları içeriğinde, çapraz-entropi kaybı L(z,y) sık olarak kullanılır ve aşağıdaki gibi tanımlanır:

Öğrenme Oranı

Genellikle α veya bazen η olarak belirtilen öğrenme oranı, ağırlıkların hangi hızda güncellendiğini gösterir. Bu sabit veya uyarlanabilecek şekilde değiştirilebilir olabilirler. Mevcut en gözde yöntem Adam olarak adlandırılan ve öğrenme oranını uyarlayan bir yöntemdir.

Geri Yayılım

Geri yayılım sinir ağındaki ağırlıkları güncellemek için kullanılan ve bunu yaparken de asıl sonuç ile istenilen sonucu hesaba katan bir yöntemdir. Ağırlık w değerine göre türev, zincir kuralı kullanılarak hesaplanılır ve gradyan bulunur. Aşağıdaki işlem bunu temsil etmektedir:

Sonuç olarak, ağırlık güncellenmesi aşağıdaki gibidir:

Ağırlıkların Güncellenmesi

Sinir ağında ağırlıklar, aşağıdaki gibi güncellenir:

  • Adım 1: Bir küme eğitim verisi alın ve kaybı hesaplamak için ileriye doğru ilerleyin.
  • Adım 2: Her ağırlığa göre kaybın derecesini elde etmek için kaybı tekrar geriye doğru yayın.
  • Adım 3: Ağın ağırlıklarını güncellemek için gradyanları kullanın.

Bir modelin eğitimi kapsamında, modelin ağırlıklarını güncellemek için tüm eğitim setini kullandığı bir yinelemeye ifade etmek için kullanılan terime epok/epoch denilir. Eğer bu değer ne kadar belirtilirse yukar ki işlemler o kadar çok gerçeklerşir.

Kaynakça:

https://www.youtube.com/watch?v=rMOdrD61IoU&list=PLkDaE6sCZn6Ec-XTbcX1uRg2_u4xOEky0&index=27

AI/ML

Trending AI/ML Article Identified & Digested via Granola by Ramsey Elbasheer; a Machine-Driven RSS Bot

%d bloggers like this: