Etiket arşivi: derin öğrenme

Makine Öğrenmesinin Matematiği – 1 – Giriş

Motivasyon

Makine öğrenmesi, veriden otomatik olarak değerli bilgiler çıkaran algoritmalar tasarlamayla ilgilenir. Burada dikkat edilmesi gereken en önemli kelime “otomatik” tir; yani makine öğrenmesi, birçok farklı veri kümesine uygulanabilen ve anlamlı sonuçlar üreten genel amaçlı yöntemlerle ilgilenir. Makine öğrenmesinin temelinde yer alan üç ana kavram vardır: veri, model ve öğrenme.

Makine öğrenmesi doğası gereği veri odaklıdır; bu nedenle veri, makine öğrenmesinin merkezinde yer alır. Makine öğrenmesinin amacı, belirli bir alana özgü uzmanlığa fazla ihtiyaç duymadan, veriden değerli örüntüleri (pattern) çıkarmak için genel amaçlı yöntemler tasarlamaktır.

Örneğin, geniş bir doküman koleksiyonuna (örneğin, birçok kütüphanedeki kitaplar) sahip olduğumuzu düşünelim. Makine öğrenmesi yöntemleri, bu dokümanlarda yaygın olarak paylaşılan konuları otomatik olarak belirlemek için kullanılabilir.

Bu hedefe ulaşmak için, genellikle veriyi üreten sürece benzer şekilde modellenen yapılar tasarlarız. Örneğin, bir regresyon probleminde model, girdi değerlerini gerçek sayılarla ifade edilen çıktılara eşleyen bir fonksiyon tanımlar.

Mitchell’in (1997) ifadesini yorumlayarak söyleyecek olursak:
Eğer bir model, veriyi dikkate aldıktan sonra belirli bir görevdeki performansını artırıyorsa, o modelin veriden öğrendiği söylenebilir.

Burada Tom Mitchell’ın ifadesini kitabı okumayanlar için iyice detaylandıralım:

Tom Mitchell, makine öğrenmesi alanında önemli bir araştırmacıdır ve 1997’de yazdığı “Machine Learning” adlı kitabında makine öğrenmesini şu şekilde tanımlamıştır:

“Bir bilgisayar programı, belirli bir görev T üzerinde, performans ölçütü P’ye göre, deneyim E’den öğrenerek performansını artırıyorsa, o zaman programın T’yi öğrenerek geliştirdiği söylenir.”

Bu tanımın açılımını şöyle düşünebiliriz:

  • T (Görev – Task): Modelin gerçekleştirmesi gereken iş. Örneğin, bir e-postanın spam olup olmadığını belirleme, görüntüdeki nesneleri tanıma veya bir borsa tahmini yapma.
  • P (Performans Ölçütü – Performance Measure): Modelin başarısını ölçen kriter. Örneğin, bir sınıflandırma modelinde doğruluk oranı, bir regresyon modelinde hata metriği gibi.
  • E (Deneyim – Experience): Modelin eğitim verisinden elde ettiği bilgi. Yani geçmiş verilere dayalı öğrenme süreci.

Bu tanıma göre bir model, veriden öğrenmiş sayılabilmesi için belirli bir görevde (T), performans ölçütüne (P) göre, deneyim kazandıkça (E) daha iyi hale gelmelidir.

Örneğin:

  • Bir e-posta sınıflandırma modeli, spam ve normal e-postaları ayırmak için tasarlanmış olsun (T).
  • Modelin başarısı, doğru tahmin oranı ile ölçülüyor olsun (P).
  • Eğer model, daha fazla e-posta örneği ile eğitildikçe spam tespitinde daha başarılı hale geliyorsa (E), o zaman model gerçekten “öğreniyor” demektir.

Buradaki temel amaç, henüz karşılaşmadığımız veriler üzerinde de iyi genelleme yapabilen modeller bulmaktır, çünkü gelecekte ilgileneceğimiz veriler bunlar olabilir. Öğrenme, modelin parametrelerini optimize ederek verideki desenleri ve yapıları otomatik olarak bulmanın bir yolu olarak düşünülebilir.

Makine öğrenmesi birçok başarı hikayesine sahip olsa da ve zengin, esnek makine öğrenmesi sistemlerini tasarlayıp eğitmek için yazılımlar kolayca erişilebilir durumda olsa da, makine öğrenmesinin matematiksel temellerinin anlaşılmasının son derece önemli olduğuna inanıyoruz.

Bu temel prensipleri kavramak, şu konularda bize büyük avantaj sağlar:

  • Yeni makine öğrenmesi çözümleri geliştirmek,
  • Mevcut yaklaşımları anlamak ve hata ayıklamak,
  • Kullandığımız yöntemlerin temel varsayımlarını ve sınırlamalarını öğrenmek.

Özetle, makine öğrenmesini sadece uygulamalı bir araç olarak görmek yerine, altında yatan matematiksel prensipleri öğrenmek, daha sağlam ve bilinçli çözümler üretmemizi sağlar.

Bu yazıda neden matematiksel altyapıya odaklıyoruz kısmını anlatmaya çalıştım, bir sonraki yazıda görüşmek üzere.

İyi kodlamalar.

Loading

Facebooktwitterredditpinterestlinkedinmail

Transformer Neural Networks – 1 – Genel Mimari ve Giriş

Bu yazı serimizde popüler bir yapay zeka modeli olan Transformer ağlarını detaylı olarak inceleyeceğiz.

Orijinal Transformer tanımı ilk defa 2017 yılında Vaswani ve arkadaşları tarafından yayınlanan Attention is All You Need makalesinde geçmektedir. Burada biz de bu makalede bahsedilen Transformer modelini temel alacağız.

Orijinal Transformer modeli üst üste binmiş 6 katmandan (layer) oluşur. l katmanının çıktısı son tahmine (final prediction) gelene kadar l+1 katmanının girdisidir.

Transformer Architecture
Transformer Mimarisi

Transformer ile attention, recurrence(yineleme)’ın yerini almıştır. İki kelimenin arası arttıkça yineleme miktarının da artacağını düşünürsek bu hem işlem, hem de performans olarak aşırı yük getirecektir. Oysa attention mekanizması word-to-word bir işlemdir. Attention’ın temel amacı kelimenin diğer kelimelerle, kendisi de dahil olmak üzere nasıl bir ilişkisi olduğunu belirlemektir.

Aşağıdaki cümle üzerinden akışın nasıl ilerlediğini anlamaya çalışalım:

The cat sat on the mat.

Attention word vektörleri arasında dot product yapacak ve diğer tüm wordler arasındaki kendisi de dahil olmak üzere ilişkiyi ortaya koyacaktır.

Attention mekanizması. Dot product işlemleri
“cat” kelimesi için attention örneği

Her bir attention altkatmanı (orijinal Transformer modeli için ) tek tek değil 8’li şekilde paralel olarak çalışır böylece hesaplamalar hızlanır. Bu işleme multi-head attention adı verilir.

Multi-head attention:

  • Metin sekanslarının daha derinlemesine analizini
  • Yinelemenin engellenerek hesaplama işlemlerinin azaltılmasını
  • İşlemlerin paralel şekilde yapılarak eğitim zamanının düşürülmesini
  • Her attention mekanizmasının aynı inputu farklı perspektifler ile öğrenmesini

sağlar.

Dipnot: Attention mekanizmasının recurrence(yineleme) yerine geçmesinin Transformer modelinin en büyük değişikliklerinden birisi olduğunu söyledik, ancak bu mimariyi çok daha efektif kılan başka özelliklerden de ileriki serilerimizde bahsedeceğiz. Transformer’ın sadece recurrence'(yineleme)ı yok ettiğini düşünmeyelim.

Loading

Facebooktwitterredditpinterestlinkedinmail