Yapay Sinir Ağlarının Temel Yapısı

Not: Bu yazıda yapay sinir ağlarının temel iki mimarisinden ve temel yapıtaşlarına değiniyorum.  Regresyon ve sınıflandırma türlerinin basitçe ne olduğunu bilmek sizler için daha aydınlatıcı olacaktır.

Yapay Sinir Ağları Nedir?

Yapay sinir ağları (YSA), Artificial Neural Networks (ANNs), insan beyninden esinlenilerek oluşturulmuş bir  hesaplama modelidir. İnsan beyninin çalışma mantığının matematiksel olarak modellenmesidir de denilebilir. Temel amaç mevcut verilerin belirli süreçlerden geçtikten sonra elimize amacımız doğrultusunda bir sonuç olarak ulaşmasını sağlamaktır. Nasıl ki insan beyni milyarlarca nöronlardan oluşuyorsa, YSA da yüzlerce hatta binlerce yapay nöronlardan oluşabilir.

YSA’lar hem regresyon hem de sınıflandırma problemleri için kullanılırlar  ve temelde iki mimariden oluşurlar:

  1. Tek Katmanlı Yapay Sinir Ağları
  2. Çok Katmanlı Yapay Sinir Ağları

Tek Katmanlı Yapay Sinir Ağları

Tek katmanlı yapay sinir ağlarına Perseptron(Perceptron) da denir. Perseptron, YSA’nın temel parçasıdır. Frank Rosenblatt tarafından 1957’de icat edilmiş basit ikili sınıflandırma(binary classification) algoritmasıdır. Yani, bir girdinin hangi çıktı sınıfa ait olduğuna karar vermeye çalışan bir algoritmadır. 

Perseptron nasıl çalışır?

Perseptronlar beş bileşenden oluşurlar:

  1. Girdiler (inputs): Bunlar sahip olduğumuz bağımsız değişkenlerdir (x).
  2. Ağırlıklar (weights): Ağırlık parametreleri (w), girdiler ile nöronlar arasındaki bağlantının gücünü kontrol eder. Bir bağımsız değişkenin, sonuç üzerindeki etkisini temsil eder de denilebilir.
  3. Bias değeri(b): Çıktı değerini kontrol edebilmeyi sağlayan sabit değerdir. Bütün girdiler sıfır olduğunda, sürecin hala devam edebilmesini de sağlar.
  4. Aktivasyon fonksiyonu (activation function): Aktivasyon fonksiyonu(f), belli koşullara göre nöronun çıktısını tanımlar.
  5. Çıktı (output): Bağımlı değişken(y), bulmak istediğimiz sonuçtur. Perceptronlarda sonuç, 1 ve 0 sınıfları olarak iki sınıfa ayrılır.

Süreci formülize edecek olursak, şu şekilde gösterebiliriz: y=f(x×w+b)

 

Perceptron

Süreç şu şekilde ilerler:

  • Girdiler ve parametreler çarpılıp toplanarak ağırlıklı toplam (weighted sum) hesaplanır. Bu toplamın içinde bias değeri de dahildir.(bias=b=x0×w0)

  • Bulunan toplama(z) aktivasyon fonksiyonu uygulanır ve sonuç elde edilir. Perceptronlar aktivasyon fonksiyonu olarak step fonksiyonunu kullanırlar. Step fonksiyona göre eğer ağırlıklı toplam;
    • z>0 ise sonuç 1 sınıfına,
    • z<0 ve z=0 ise sonuç 0 sınıfına ait olur.

Perseptronların uygulandığı alanlar bazı açılardan sınırlıdır. Perseptronlar daha çok doğrusal olarak ayrılabilen, basit ikili sınıflandırma problemleri için kullanılırlar.

Çok Katmanlı Yapay Sinir Ağları

Çok katmanlı yapay sinir ağları/çok katmanlı perseptron (Multi Layer Perceptron-MLP) adından da anlaşılacağı üzere, birden fazla katman içerir. Perseptronların aksine doğrusal olarak ayrılamayan problemler için de kullanılabilirler. Bunu da katmanlarında kullandıkları aktivasyon fonksiyonları ile başarırlar.  Aktivasyon fonksiyonları nöronların çıktısını lineer olmayan hale getirir. Bu sayede daha karmaşık problemleri çözebilmeyi sağlar.(Aktivasyon fonksiyonu olmadan YSA’lar aslında bir lineer regresyon modeli olurlar.)

MLP’nin temel katmanları şunlardır:

  • 1  giriş katmanı (input layer)  →Her x için 1 tane nöron içerir
  • Gizli katmanlar(hidden layers) → İçerdiği nöron sayısı probleme göre değişir.
  • 1 çıktı katmanı (output layer) → İçerdiği nöron sayısı probleme göre değişir.
A hypothetical example of Multilayer Perceptron Network. | Download Scientific Diagram
Çok Katmanlı Yapay Sinir Ağı (MLP)

İlk aşamada( giriş katmanı ve gizli katmanda), gizli katmandaki her bir hücre için  perceptronda anlattığımız süreç uygulanır:

  1. Ağırlıklı toplam(z) hesaplanır.
  2. İlgili gizli nörona iletilir.
  3. Nöronda mevcut olan aktivasyon fonksiyonu(ReLU veya SELU) uygulanır.

Daha sonraki aşamada, gizli nöronların çıktıları çıkış katmanına(output layer) gider. Bu katmanın içerdiği yapay nöron sayısı problem türüne göre değişir:

  • Regresyon→ 1 nöron,
  • İkili sınıflandırma(binary classification)→ 1 nöron,
  • Çoklu etiket sınıflandırma(multi-label classification)→ her etiket(label) için 1 nöron,
  • Çok sınıflı sınıflandırma(multi-class classification)→ her sınıf için 1 nöron çıktı nöronu (output neuron) içerir.

Çıkış katmanındaki nöronlarda kullanılan aktivasyon fonksiyonları da probleme göre değişir:

  • Regresyon→ Ya hiç kullanılmaz ya da pozitif çıktılar için ReLU/softplus, sınırlı çıktılar için Logistic/tanh fonksiyonları,
  • İkili sınıflandırma(binary classification)→Logistic(sigmoid) fonksiyonu,
  • Çoklu etiket sınıflandırma(multi-label classification) → Logistic(sigmoid) fonksiyonu,
  • Çok sınıflı sınıflandırma(multi-class classification)→ Softmax fonksiyonu kullanılır.

Temel amacımız, doğru gizli katman sayıları ve nöron sayıları ile YSA’nın en doğru ağırlık  ve bias değerlerini öğrenmesini (böylece en doğru sonuca da ulaşır) sağlamaktır. Bunu yapay sinir ağımızda belirli süreçleri uygulayarak, onu en optimize hale getirerek yaparız.

“Peki YSA’da öğrenme işlemini nasıl gerçekleşir? Aktivasyon fonksiyonlarının ayrıntıları nelerdir? Kaç tür yapay sinir ağı bulunur ve bunlar hangi amaçlarla kullanılır?” gibi kafanızda eminim pek çok soru canlanmıştır. Bu makalede anlatılanlar aslında buzdağının görünen küçük bir kısmıdır. Bu soruları aydınlatmak için buluştuğumuz başka yazılarda görüşmek dileğiyle!

***

Kaynakça

  • “Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems” book by Aurelien Geron

Resimler:

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.