Öğrenebilen algoritmaların tasarımını inceleyen bilgisayar bilimlerinde bir alan olan makine öğrenmesini zaten biliyorsunuzdur. Derin Öğrenmeye atlamadan önce, aşağıda belirtilenlerin temellerini bilmeniz önerilir.

Derin Öğrenme, makine öğrenmesinin bir alt alanıdır ve beynin yapısı ve işlevi tarafından esinlenilen bir dizi algoritmaya dayanır. Bu algoritmalara genellikle Yapay Sinir Ağları (ANN) adı verilir. Derin öğrenme, robotik, resim tanıma ve Yapay Zeka (AI) alanında muhteşem sonuçlar veren birçok çalışması ile veri bilimlerindeki en popüler alanlardan biri haline gelmiştir.

Derin öğrenme modellerini geliştirmek ve değerlendirmek için kullanılanen  güçlü ve kullanımı kolay Python kütüphanelerinden birisi Keras’dır; Theano ve TensorFlow’un verimli sayısal hesaplama kitaplıklarını kullanır. Biz de bu öğreticide bunları kullanacağız.

Yapay Sinir Ağlarının Tanıtılması

Derin öğrenmeye başlamadan önce sinir ağları hakkında fikir edinmelisiniz. İnsan beyni, bir takım nöronlardan oluşan bir sinir ağı örneğidir.

Hepinizin bildiği gibi, beyin oldukça karmaşık hesaplamalar yapabilir ve bu, Yapay Sinir Ağları‘nın ilham kaynağı olmuştur. Ağ güçlü bir modelleme aracıdır.

Algılayıcılar (Perceptron)

En basit sinir ağı, en basit biçiminde tek bir nörondan oluşan “algılayıcı”(perceptron) dur. Dendritler ve aksonlar içeren biyolojik nöronlara benzeyen yapay nöron, giriş düğümlerine ve her giriş düğümüne bağlı tek bir çıkış düğümüne sahip basit bir ağaç yapısına sahiptir.

siniragi.png

Yapay nöronların altı bileşeni vardır.

  1. Giriş düğümleri: Her giriş düğümü, herhangi bir gerçek sayı olabilecek sayısal bir değerle ilişkilendirilir; pozitif veya negatif, tam veya ondalık sayı olabilirler.
  2. Bağlantıları. Benzer şekilde, giriş düğümünden ayrılan her bağlantı, onunla ilişkili bir ağırlığa sahiptir ve bu da herhangi bir gerçek sayı olabilir.
  3. Daha sonra, giriş düğümlerinin tüm değerleri ve bağlantıların ağırlıkları bir araya getirilir: ağırlıklı toplamları girdi olarak kullanılır:formul_yapay1  Veya formul_yapay2 olarak ifade edilir.
  4. Bu sonuç bir aktarım veya aktivasyon fonksiyonu için bir girdi olacaktır. Bu transfer fonksiyonu bir kimlik fonksiyonudur, formul_yapay3 veya formul_yapay4olacaktır. Bu durumda, x, giriş düğümlerinin ve bağlantıların ağırlıklı toplamıdır. Bununla birlikte, yapay sinir hücresi de biyolojik bir nöron gibi girişlerin ağırlıklı toplamı belirli bir eşik değerini aştığında bir sonraki nörona aktarılır. Bunu şöyle gösterebiliriz:formul_yapay5Elbette, çıktıların düzgün bir çizgide olmayacağını önceden bilebilirsiniz: bu bir Süreksiz fonksiyondur. Sürekli verilerde bunu kullanmak çeşitli problemlere neden olur bu yüzden sigmoid fonksiyonu sıklıkla kullanılır. Lojistik Fonksiyonu kullanmak çok daha yumuşak bir sonuç verir.
  • Sonuç olarak, giriş düğümlerinin ağırlıklı toplamının fonksiyonla (sigmoid fonksiyonu gibi) ilişkili olan çıkış düğümünüz olur.
  • Son olarak, perceptron, bias olarak adlandırılan ek bir parametre olabilir ve bu da aslında kalıcı olarak 1 olarak ayarlanan ek bir giriş düğümüyle ilişkili ağırlık olarak dikkate alınabilir. Bias değeri önemlidir çünkü öğrenme başarınızı belirleyebilecek etkinleştirme işlevini(aktivasyon fonksiyonunu) sola veya sağa kaydırmaya yardımcı olur.

Bu modelin sonucunda, perceptron’ların sadece sayısal verilerle çalıştıklarına dikkat edin. Bu, herhangi bir nominal veriyi sayısal bir formata dönüştürmeniz gerektiği anlamına gelir.

Perceptronların eşiklerle çalışır.  Algılayıcı belirli bir eşik değerinin üzerindeki herhangi bir çıktının bir örüntünün bir sınıfına ait olduğunu ve eşiğin altındaki bir çıktının da başka bir sınıfa ait olduğunu belirtebilir.

Çok Katmanlı Algılayıcılar

Perceptronların ağları çok katmanlı algılayıcılardır. Çok katmanlı algılayıcılar, “ileri beslemeli sinir ağları” olarak da bilinir. Şimdiye kadar tahmin ettiğiniz gibi, katmanlar halinde düzenlenmiş birden çok nörondan oluştuğu için bunlar algılayıcıdan daha karmaşık ağlardır. Katmanların sayısı genelde iki veya üç ile sınırlıdır, ancak teorik olarak sınır yoktur.

Katmanlar, yukarıda okuduğunuz biyolojik nöronlara çok benzer: Bir katmanın çıktıları bir sonraki katmanın girdileri olarak kullanılır.

Katmanlar arasında bir girdi katmanını, gizli katmanları ve çıktı katmanını ayırt edebilirsiniz. Çok katmanlı algılayıcılar genellikle tam olarak birbirlerine bağlıdır. Bu, belirli bir katmandaki her algılayıcıdan bir sonraki katmandaki her algılayıcıya bir bağlantısı olduğu anlamına gelir. Bağlantılılık şart değildir ancak genelde durum böyledir.

Algılayıcı yalnızca sınıflar arasındaki doğrusal ayrımları temsil ederken, çok katmanlı algılayıcı bu sınırlamanın üstesinden gelir ve daha karmaşık karar sınırlarını da temsil edebilir.

Yapay Sinir Ağları