Search
Generic filters
Exact matches only

Derin Öğrenme (Deep Learning) Nedir?

0 4 sene önce
artificial intelligence concept robotic face

Derin Öğrenme (Deep Learning) Nedir?, Yapay zekâ ve makine öğrenmesi günümüzde adını sıkça duyduğumuz kavramlar.

Gelecekte bunların yaşamımızda büyük rol oynayacağının çoğu kişi farkındadır. Aslında şimdiden birçok alanda kullanılmaya başlandı ve bu geçiş devam ediyor.

Biz de bu yazımızda yapay zekâ ve makine öğrenmesinin temellerine ineceğiz.

Sonrasında asıl konumuz olan derin öğrenmenin nasıl çalıştığını anlayacağız.

İlk olarak bazı kavramları ve onların arasındaki farkı kavramalıyız.

Yapay Zekâ, verilen seçenekleri önceden kodlanmış kurallar çerçevesinde seçer.

Makine Öğrenmesi ise bir makinenin sabit kodlanmış kurallar yerine büyük veri kümelerini kullanarak öğrenme yeteneğini ifade eder ve modern bilgisayarların işlem gücünden yararlanır.

Denetimli öğrenme, yapay zekâyı eğitirken kullanılır. Denetimli öğrenmede yapay zekâya girdiler verirsiniz ve beklenen çıktıyı söylersiniz. Eğer çıktı yanlış çıkarsa hesaplamalar yeniden ayarlanır ve bu süreç doğru sonuca ulaşıncaya kadar devam eder.

Buna örnek olarak hava durumu tahminlerini verebiliriz.

Eski zamanlardaki verileri kullanılarak (basınç, nem, rüzgâr hızı) gelecekteki hava durumunu tahmin edilir.

Denetimsiz öğrenme ile yapay zekâyı eğitirken girdileri yapay zekânın kendisi seçer.

Mesela bir e-ticaret sitesi düşünebiliriz. Yapay zekâ bu durumda girdi verileri için kendi sınıflandırmasını oluşturacaktır. Hangi tür kullanıcıların farklı ürünleri satın alma olasılığının yüksek olduğunu söyleyecektir.

Derin Öğrenme (Deep Learning)

Artık derin öğrenmeyi anlamak için hazırız.

Derin Öğrenme bir makine öğrenme yöntemidir. Bir dizi girdi verildiğinde çıktıları tahmin etmek için bir yapay zekâ eğitmemize izin verir. Yapay zekâyı eğitmek için hem denetimli hem de denetimsiz öğrenme kullanılabilir.

Tıpkı hayvanlarda olduğu gibi yapay zekânın da beyninde nöronlar vardır ve bunlar üç farklı katman olarak gruplandırılır.

  • *Giriş Katmanı
  • *Gizli Katman
  • *Çıkış Katmanı

Bir örnek üzerinden gidelim.

Uçak bileti fiyatlarını tahmin eden bir sistem geliştireceğiz ve bunu denetimli öğrenme ile yapacağız.

Aşağıdaki girdileri kullanacağız:

  • *Kalkış Havaalanı
  • *Hedef Havaalanı
  • *Uçuş Tarihi
  • *Havayolu Şirketi

Giriş katmanı, giriş verilerini alır.

Bizim durumumuzda, giriş katmanında dört nöronumuz var:

  • Kalkış Havaalanı,
  • Hedef Havaalanı,
  • Uçuş Tarihi ve Havayolu Şirketi.
  • Giriş katmanı, girişleri ilk gizli katmana geçirir.

Gizli katmanlar girdilerimizde matematiksel hesaplamalar yapar.

Sinir ağları oluşturmanın zorluklarından biri, gizli katmanların sayısına ve her katman için nöron sayısına karar vermektir.

Derin Öğrenmedeki “Derin”, birden fazla gizli katmana işaret eder.

Çıktı katmanı çıktı verilerini döndürür. Bizim durumumuzda, bize fiyat tahmini verir.

Peki, fiyat tahmini nasıl yapılıyor?

İşte burada derin öğrenmenin büyüsü başlıyor.

Nöronlar arasındaki her bağlantı bir ağırlıkla ilişkilidir. Bu ağırlık, giriş değerinin önemini belirler. Başlangıç ağırlıkları rastgele ayarlanır. Bir uçak biletinin fiyatını tahmin ederken, kalkış tarihi en ağır faktörlerden biridir.

Her nöronun bir Aktivasyon Fonksiyonu vardır. Bu işlevleri matematiksel akıl yürütme olmadan anlamak zordur. Basitçe söylemek gerekirse, amaçlarından biri nöronun çıktısını “standartlaştırmak” tır.

Biraz karmaşık, öyle değil mi?

Devam edelim…

Uçak bileti fiyat tahmincimiz için bilet fiyatlarının geçmiş verilerini bulmamız gerekiyor. Ve çok sayıda olası havaalanı ve kalkış tarihi kombinasyonları nedeniyle, bilet fiyatlarının olduğu çok büyük bir listeye ihtiyacımız var.

Yapay zekâyı eğitmek için, veri setimizden gelen girdileri vermeli ve çıktılarını veri setindeki çıkışlarla karşılaştırmalıyız. Yapay zekâ hala eğitimsiz olduğundan, çıktıları yanlış olacaktır.

Veri kümesinin tamamını inceledikten sonra, Yapay zekânın çıktılarının gerçek çıktılardan ne kadar yanlış olduğunu gösteren bir fonksiyon oluşturabiliriz.

Bu fonksiyon Maliyet Fonksiyonu olarak adlandırılır. İdeal olarak, maliyet fonksiyonumuzun sıfır olmasını istiyoruz.

Maliyet fonksiyonunu nasıl azaltabiliriz?

Nöronlar arasındaki ağırlıkları değiştirebiliyoruz. Maliyet fonksiyonumuz düşük olana kadar bunları rastgele değiştirebiliriz, ancak bu çok verimli değildir.

Bunun yerine Gradient Descent(Gradyan İniş) adlı bir teknik kullanacağız.

Gradyan İniş, bir fonksiyonun minimumunu bulmamıza izin veren bir tekniktir.

Her veri kümesi yinelemesinden sonra ağırlıkları küçük artışlarla değiştirerek çalışır. Bu yöntemle maliyet fonksiyonunun türevini (veya gradyanını) belirli bir ağırlık kümesinde hesaplayarak, minimumun hangi yönde olduğunu görebiliyoruz.

İşte hazırız!

Derin Öğrenme gradyan inişi kullanarak ağırlıkların güncellenmesi otomatik olarak yapar ve bu şekilde bize tahmin yapmaya başlar.

Derin Öğrenme biraz karışık bir konu ve olabildiğince basit yazmaya çalıştım.

Umarım aklınızda bir şeyler oturmuştur.

Bir sonraki yazımda görüşmek üzere!

Bir Cevap Yazın

X