Makine Öğrenmesi -3: Deep Learning Nedir?

Okuma Süresi: 2 Dakika

Deep Learning(Derin Öğrenme) Nedir?

Daha önceki yazımızda Machine Learning (makine öğrenme) konusunu ele almıştık. Makine öğrenme ve derin öğrenme birbiriyle ilişkili olduğu için öncelikle makine öğrenme yazıları okunmalıdır. Derin öğrenme bilimsel olarak da genişleyen bir alan olmuştur. Derin öğrenme(deep learning) makine öğrenmesinin daha ilerisi olarak düşünmek mümkündür. Dünyayı bir robot tarafından algılanması ve anlamasında derin öğrenme algoritmaları kullanılmaktadır.  Derin öğrenmenin popüler olmasında büyük çaplı şirketler üniversiteler teknoloji üsleri derin öğrenmeyi kullandığı için zenginleşen bir alan olmuştur.

Derin öğrenme Çalışma Mekanizması?

Derin öğrenmede kullanılan bir yapay sinir ağları vardır. Bu yapay sinir ağların içlerinde çokça nöronlar vardır. Bu nöronların her biri bilgileri işler ağ birleşerek yapay sinir ağlarını oluştur. Birbirine bağlı olan nöronlar insan beynini taklit etmektedir. Her bir düğüm birbiriyle bir bilgi alışverişinde bulunacaktır.

Şekil 1: Yapay sinir ağı (YSA)

Burada X girişi, Y ise çıkışı belirtir. Ortadaki katman nöronların sayısı çok olduğu için nöronları gizlemek adına gizli katman ismini verilmiştir. Bu işlemleri gerçekleştirebilmesi için aktivasyon fonksiyonlarına ihtiyaç duymaktadır. Her bir nöronda aktivasyon sonucu ile çıktı alıp diğer nörona doğru hareketini sürdürür.

Aktivasyon Fonksiyonları

Yapay zekâ sistemlerinde çeşitli aktivasyon fonksiyonları bulunmaktadır. Çıktı katmanlarında kullanılan fonksiyonu seçmek diğer katmanlara göre daha kolaydır. Yapılan modelleme çıkış sayısına göre aktivasyon fonksiyonu tercih edilmektedir. Gizli katmanlarda kullanılan aktivasyon fonksiyonu modelin başarısına göre seçilir. Yapay sinir ağlarında her bir katmanda farklı bir aktivasyon fonksiyonu kullanılabilir. Aşağıda birkaç aktivasyon fonksiyonu verilmiştir.

Şekil 2 : Aktivasyon fonksiyonların grafiksel gösterimi

Sigmoid fonksiyonu : Binary Classification (Tekli sınıflandırma) tarafında çokça kullanılır. Giriş değerini 0-1 değer aralığına yerleştirir.

Tanh fonksiyonu: Grafik incelendiğinde fonksiyon sadece -1 ile 1 arasında değer alır. Yüksek girdi değerlerini 1 e yakın düşük girdi değerlerini -1 e yerleştirir.

Relu fonksiyonu: gelen girdi değeri 0 değerinden büyük ise değerini değiştirmeden negatif bölgede ise 0 olarak çalışır gizli katmanda çokça kullanılır.

Nöronların arasında ağırlıklar vardır. Bu ağırlıkları w sembolü ile gösterilir. Ağırlıklar her öğrenme sırasında güncellenir. Doğruluk (accuracy) değerini yüksek olduğunda ağırlıklar güncellenmez ve yapay zeka modeli hazır olur.

Unutulmamalıdır ki gizli katmanlarda nöron sayısını çok olması iyidir fakat bazı durumlarda bu aşırı öğrenmeye neden olacağı için model iyi aksiyon gösteremez.

Derin öğrenme Çeşitleri

Derin öğrenmede çeşitli öğrenmeler mevcuttur. Fakat bilişim firmaları çokça CNN modeli üzerinde çalışmalarında sürdürmektedir. Bu yazıda da CNN modeli ele alınacaktır.

 

Convolutional Neural Network(Evrişimli Sinir Ağı/ CNN)

Sinir ağı birden fazla evrişimli olarak katman içerir. Bu evrişim katmanında filtre görsel üzerinde büyüteç gibi gezer. Bu sayede feature exraction (öznitelik çıkarımı) yapılır. Bu özellikle ilgili öğrenme başlar. Resimler matristen oluştuğu için bu nitelik bir matris verir. Max pooling katmanı ile görsel daha küçük matrislere sıkıştırılır. Buradan birkaç katman devam edilir. Eğerki modelin sürekli öğrenilmesi görüldüğünde tekrarlayan verileri nörondaki bilgiler silinebilir. Tekrarlanan katmanlar ardından tamamı bağlı katmana göndererek tek boyutlu matrise indirgenir. Daha sonra YSA giriş olarak verilerek modelin bir çıkış üretmesi sağlanır. Yapay zekâ işte bu şekilde birtakım nesneleri tanıyabilir hale gelir. (deep learning)

Aşağıda nesne tanımasında kullanılan ağ yapısını gösterilmiştir.

 

Şekil 3: CNN ağları bir arabayı tanıması

Deep Learning Yazılım Araçları

Derin öğrenmede çalışırken KERAS veya PyTorch kütüphanelerini kullanmaktayız. Bu kütüphaneler pythonda dahil edilerek çalışması sağlanabilir. İleriki yazıda ise keras kütüphanesini kullanarak sizinle bir nesnenin tanımasını yapay zekâ tarafından yapılan bir algoritma geliştiriyor durumda olacağız.

Serinin ilk yazısı Makine Öğrenimi – 1: Makine Öğrenmesi (Machine Learning) Nedir ? yazısına da bağlantıdan ve ikinci yazısı Makine Öğrenimi -2: Yazılım yazısına da bağlantıdan ulaşabilirsiniz.

Hukuk ve Bilişim Dergisi‘nin Yeni Platformunda Yeni Sayısına bağlantıdan ulaşabilirsiniz.