TensorFlow ve Keras: Derin Öğrenme Modelleri Nasıl Kurulur?
Sözlük

TensorFlow ve Keras: Derin Öğrenme Modelleri Nasıl Kurulur?

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

TensorFlow'un ne işe yaradığını, Keras ile ilişkisini, nasıl çalıştığını ve hangi projelerde tercih edildiğini örnekle öğrenin.

TensorFlow nedir?

TensorFlow, sayısal hesaplamaları tensör adı verilen çok boyutlu diziler üzerinde yapan açık kaynaklı bir makine öğrenmesi çerçevesidir. Başlangıçta Google içinde geliştirildi, sonra herkesin kullanımına açıldı. Python arayüzüyle en çok bilinir, fakat modelleri mobil cihazlara, tarayıcıya ve sunuculara taşımak için de araçlar sunar.

Çerçevenin asıl işi, sinir ağı gibi hesaplama yükü ağır modellerin eğitimini kolaylaştırmaktır. Veriyi tensörler halinde alır, katmanlardan geçirir, hatayı hesaplar ve ağırlıkları bu hataya göre günceller. Aynı hesap işlemci üzerinde de, grafik işlemci üzerinde de çalışabilir; geliştirici çoğu zaman bu geçişi kodunu değiştirmeden yapar.

TensorFlow nasıl çalışır?

Her model şu temel parçalardan oluşur: tensörler, işlemler ve otomatik türev mekanizması. Tensör veriyi taşır; işlem bu veriyi dönüştürür (matris çarpımı, aktivasyon fonksiyonu, evrişim gibi). Eğitim sırasında çerçeve, kayıp değerinin her ağırlığa göre türevini otomatik hesaplar. Bu türevler olmadan geri yayılım elle yazılmak zorunda kalırdı.

Eğitim döngüsü kabaca şöyle ilerler:

  • Veri bir giriş hattıyla yüklenir, karıştırılır ve küçük gruplar halinde modele verilir.
  • Model tahmin üretir, kayıp fonksiyonu tahminle gerçek değer arasındaki farkı ölçer.
  • Otomatik türev, her ağırlığın hataya katkısını hesaplar.
  • Optimizer ağırlıkları günceller ve döngü bir sonraki gruba geçer.

Bu yapıyı özel eğitim döngüleri için elle yönetmek isteyenler tf.GradientTape yapısını kullanır; çoğu proje ise hazır eğitim komutlarıyla yetinir.

Keras nedir ve TensorFlow ile ilişkisi

Keras, sinir ağlarını az kodla tanımlamayı sağlayan yüksek seviyeli bir arayüzdür. TensorFlow içinden tf.keras olarak kullanılabilir ve çoğu TensorFlow kullanıcısının çerçeveyle ilk temas noktasıdır. Güncel Keras ise çok arka uçlu bir kütüphanedir: aynı Keras kodu TensorFlow'un yanında JAX ya da PyTorch üzerinde de çalıştırılabilir; arka uç KERAS_BACKEND ortam değişkeniyle seçilir. Katmanları ardı ardına dizersiniz, kayıp fonksiyonunu ve optimizer'ı seçersiniz, ardından modeli eğitirsiniz. Sıralı model basit yığınlar için yeterlidir; çok girdili ya da dallanan mimariler için Functional API kullanılır.

Ayrım şöyle düşünülebilir: Keras modeli anlatmanın rahat yoludur, TensorFlow ise bir TensorFlow projesinde o modeli çalıştıran motordur, yani arka uçtur. Hızlı denemeler için Keras yeterlidir. Özel bir kayıp fonksiyonu, alışılmadık bir eğitim adımı ya da dağıtık eğitim gerektiğinde alttaki TensorFlow yapılarına inilir.

Küçük bir örnek: görüntü sınıflandırıcı

Örneğin bir üretim hattında kusurlu ürünleri ayıran bir sistem kurulacak olsun. Önce ürün fotoğrafları etiketlenir: kusurlu ve kusursuz. Veri eğitim, doğrulama ve test kümesine ayrılır. Keras ile evrişimli bir ağ tanımlanır: birkaç evrişim katmanı özellikleri çıkarır, son katman sınıflar arasında karar verir.

Eğitim sürerken doğrulama kümesindeki başarı izlenir. Eğitim başarısı yükselirken doğrulama başarısı düşmeye başlarsa model ezberliyordur; erken durdurma ya da dropout gibi yöntemlere başvurulur. Sonuç kabul edilebilir olunca model kaydedilir ve TensorFlow Serving ile bir servis olarak sunulur ya da LiteRT (eski adıyla TensorFlow Lite, TFLite) biçimine çevrilip uç cihaza gömülür.

TensorFlow ne zaman tercih edilir?

TensorFlow'un güçlü yanı, araştırma prototipinden üretime uzanan bir araç zinciri sunmasıdır. Modelin servis edilmesi, mobil cihaza çevrilmesi, tarayıcıda çalıştırılması ve izlenmesi için hazır bileşenler vardır. Bu nedenle ürün ekipleri ve model yaşam döngüsünü bütün olarak yönetmesi gereken kurumlar onu sık seçer.

Rakip çerçevelerden en bilineni PyTorch'tur. PyTorch araştırma topluluğunda yaygındır ve esnek kod yazımıyla öne çıkar. Hangisinin seçileceği çoğunlukla ekibin mevcut bilgisine, kullanılacak dağıtım ortamına ve hazır model kütüphanelerinin uyumuna bağlıdır. Çerçeve seçimi kadar veri kalitesi ve doğru doğrulama yöntemi de sonucu belirler.

Sık yapılan hatalar arasında şunlar sayılabilir:

  • Veriyi karıştırmadan ya da test kümesini ayırmadan eğitime başlamak.
  • Öğrenme oranını denemeden varsayılan değerle yetinmek.
  • Modeli yalnızca eğitim başarısına bakarak değerlendirmek.
  • Yayına alma adımını, yani servis ve izleme ihtiyacını sona bırakmak.

Nerede kullanılır ve nereden başlanır?

Görüntü tanıma, doğal dil işleme, öneri sistemleri, zaman serisi tahmini ve ses işleme TensorFlow'un yaygın kullanım alanlarıdır. Başlangıç için Python bilgisi, temel doğrusal cebir ve sinir ağı mantığı yeterli bir zemindir; sonra Keras ile küçük bir sınıflandırma problemi çözmek en kısa yoldur.

Mindset kataloğunda bu konuya doğrudan karşılık gelen programlar var. TensorFlow ile Model Geliştirme programının modül başlıkları arasında TensorFlow ekosistemine giriş, Keras ile model tasarımı, özel eğitim döngüleri, dağıtık eğitim ve model yayına alma yer alır. Keras ile Hızlı Prototipleme programı ise Functional API, transfer öğrenmesi ve deney yönetimi başlıklarını içerir.

İlgili Mindset programı

TensorFlow ile Model Geliştirme

Sık sorulanlar

Sık sorulan sorular

TensorFlow ile Keras aynı şey midir?

Hayır. Keras sinir ağı tanımlamayı kolaylaştıran yüksek seviyeli bir arayüzdür, TensorFlow ise hesaplamayı yapan çerçevenin kendisidir. Keras TensorFlow içinden kullanılabilir ve çoğu TensorFlow projesi ikisini birlikte kullanır; güncel Keras ayrıca JAX ve PyTorch arka uçlarıyla da çalışabilir. Özel eğitim adımı ya da dağıtık eğitim gerektiğinde alttaki TensorFlow yapılarıyla çalışılır.

TensorFlow öğrenmek için hangi bilgiler gerekir?

Python programlama bilgisi, temel doğrusal cebir, türev mantığı ve veri hazırlama alışkanlığı iyi bir zemindir. Derin öğrenme kavramlarını bilmeden çerçeve öğrenmek zordur. Küçük bir sınıflandırma problemi üzerinde Keras ile çalışmaya başlamak, kavramlarla araçları birlikte oturtmanın en pratik yoludur.

TensorFlow yalnızca derin öğrenme için mi kullanılır?

Ağırlıklı kullanım alanı derin öğrenmedir, fakat çerçeve genel amaçlı sayısal hesaplama da yapabilir. Klasik makine öğrenmesi algoritmaları için başka kütüphaneler çoğu zaman daha pratiktir. TensorFlow, sinir ağı tabanlı modellerde, özellikle büyük veri ve üretim ortamı gerektiren işlerde öne çıkar.

Modelim eğitildikten sonra ne yapılır?

Model kaydedilir, ardından hedef ortama göre paketlenir. Sunucuda servis olarak çalıştırmak için TensorFlow Serving, mobil ve gömülü cihazlar için LiteRT (eski adıyla TFLite) kullanılabilir. Yayına alınan modelin tahmin kalitesi zamanla düşebileceğinden izleme ve yeniden eğitim planı da baştan düşünülmelidir.

TensorFlow Nedir? Keras ile Derin Öğrenme Çerçevesi