Derin Öğrenme Nedir?

İlk yazılarımdan birinde Derin Öğrenme‘nin yapay zekanın, dolayısıyla makine öğrenmesinin bir alt dalı olduğundan bahsetmiştim. Makine öğrenmesinde olduğu gibi Derin Öğrenme‘de de veriyi kullanırız. Ama bu ikisi arasında temel olarak bazı farklılıklar mevcut. Bu farklılıklara sırayla bakacak olursak;

  • Makine öğrenmesinde veri üzerindeki özellikler (features) belirlenerek veri üzerinden çıkarım yapılmaya çalışılırken, Derin Öğrenme‘de herhangi bir feature tanımlaması yapılmadan, direkt olarak ham veri üzerinden çıkarımlar yapılmaya çalışılır.
  • DL (Deep Learning-Derin Öğrenme) modellerinde daha büyük veri setlerinden yararlanılır. Veri setinin büyümesi oranında DL algoritmaları daha iyi sonuçlar vermeye başlar. Derin Öğrenme‘de veri setinin büyüklüğünden dolayı donanımsal olarak da genellikle ML modellerinde kullanılan CPU yerine GPU kullanılması, özellikle modelimizin eğitimi süresince bize hız kazandıracaktır. İnternette okuduğum bir makalede, Derin Öğrenme için CPU‘da 3 ay sürebilen bir eğitimin, GPU‘da bir günde bitebileceğini okumuştum!

Derin Öğrenme‘nin tarihçesine bakacak olursak, DL modelleri insan beyni örnek alınarak, beynimizdeki sinir ağları taklit edilerek tasarlanmıştır. Aslında Derin Öğrenme‘nin temelleri Perceptron denilen sinir ağı modelinden başlar. Eğer Derin Öğrenme‘nin matematiksel başlangıcını anlamak istiyorsanız, ilk olarak Perceptron‘u anlamınızı tavsiye ederim. İnternette yararlı kaynaklar bulabilirsiniz.

Yeniden Derin Öğrenme‘ye gelecek olursak; 1970‘lerde Sinir Ağları (Neural Network) ile başlayan süreç 2010‘larda Deep Neural Network ile, diğer adıyla Derin Öğrenme dediğimiz yapay zeka türü şimdiki haline evrilmeye başlamıştır. Derin Öğrenmeyi genel olarak anlamak için Sinir Ağlarını iyice anlamamız gerekiyor. Peki nedir bu Sinir Ağları, ya da Yapay Sinir Ağları- Artificial Neural Network? Sinir Ağları, girdi katmanı ile çıktı katmanı arasında gizli katmanların (hidden layers) bulunduğu, bu katmanlar arasında çeşitli matematiksel işlemler yaparak, çıktı katmanında elimizde bulunan değerlere yakınsama yapılması tekniğidir.


9 rakamını içeren 28×28 pikselli bir resim için oluşturulan Sinir Ağları. Kaynak: 3Blue1Brown (1)

Örnek verecek olursak, girdi katmanında her bir değer, bir rakamın bulunduğu bir resim dosyasındaki piksel değerlerinin alt alta belirli bir düzen eşliğinde sıralanmasıyla oluşturulabilir. Daha sonra bu piksel değerleriyle ağırlıklar (weights) çarpılarak diğer katmanlara geçilir. Aslında her katmanda resim içerisindeki aranılan obje daha iyi tanınmaya başlar. İlk gizli katmanda rakamın küçük parçaları belli olurken, ikinci gizli katmanda ana hatları belirlenmeye başlar. En son çıktı katmanında ise bir önceki gizli katmandaki parçalar birleştirilerek rakam belirlenmiş olur.


Kaynak: 3Blue1Brown (2)

Aslında matemetiksel olarak her şeyi açıklamak daha iyi olur. Ana hatları anlamak adına bence şimdilik bunlar yeter. Katmanlar arası geçişlerde ağırlıkların kullanılması, aktivasyon fonksiyonları, bias, loss, epoch, batch, Back-Propogation, threshold ve benzeri terimleri de anlamak hiç olmazsa işin arka tarafını öğrenmede kolaylık sağlayacaktır.

Yukarda kısaca bahsettiğim Sinir Ağlarının genel anlatımıydı. Tabiki sinir ağlarının da çeşitli geliştirilmiş versiyonları var. Hatta görüntü işleme gibi kompleks işlemlerin gerektiği yerlerde işler daha da karmaşıklaşıyor. Ama CNN (convolutional neural network) gibi bol katmanlı Sinir Ağları buralarda imdadımıza yetişiyor.

Gelelim Derin Öğrenmenin kullanım alanlarına. Yüz tanıma sistemleri, video veya resimlerden nesne algılanması, ses tanıma gibi alanlar bunlardan sadece bir kaçı. Kendi kendine sürüş yapan oto-pilotlu arabaları duymuşsunuzdur. İşte onlar da Derin Öğrenme yöntemlerini kullanılıyorlar.

Bu serinin bir sonraki yazılarında Derin Öğrenme algoritmalarının nasıl çalıştığını anlatmaya çalışacağım.

Şimdilik kalın sağlıcakla!

Kaynaklar:

1,2- https://www.3blue1brown.com/lessons/neural-networks#the-structure-of-a-neural-network

Leave a Reply