Derin Öğrenme (Deep Learning) - Önemli Kütüphaneler

TensorFlow

Yayın tarihi :14-Şub-22

TensorFlow Nedir?

TensorFlow, makine öğrenimi alanında "Yapay Sinir Ağları" modellerini iyileştirmek ve eğitmek için geliştirilmiş uçtan uca açık kaynaklı bir matematiksel kütüphanedir. Derin öğrenme alanı çalışmalarında kullanılan bu kütüphane, Google beyin ekibi tarafından geliştirilen ve günümüzde en çok kullanılan derin öğrenme kitaplığı olarak ifade edilebilir.

Tensorflow kütüphanesinin ilk olarak geliştirilme amacı devasa boyutlardaki matematiksel hesaplamaları yapabilmek olmuştur. Ancak, bu kütüphanenin derin öğrenme çalışmalarında kullanılmasına bağlı olarak birçok olumlu yeni faydalar gözlenmiştir ve bu durumdan dolayı ise tensorflow üreticisi Google, kütüphanenin açık kaynaklı olmasını sağlamıştır. Ayrıca, bahsedildiği üzere tensorflow kütüphanesi modern makine öğreniminde(örn;derin öğrenme) kullanılmasının yanısıra, geleneksel makine öğrenimi alanında kullanılabilinmektedir. İfade edilen bu özellikleri sayesinde tensorflow kütüphanesi günümüzde modern veya geleneksel makine öğrenimi alanlarında popüler bir şekilde kullanıma sahiptir. Bu duruma bazı örnekler vermek gerekirse;  mobil gömülü platformlarda, CPU'larda (Merkezi işlem birimi) ve GPU 'larda(Grafik işleme birimi) sorunsuz bir şekilde çalışmaktadır. Ayrıca, Google şirketi tarafından TensorFlow'u daha verimli kullanabilmek için özel olarak Tensör İşleme Birimleri (Tensor Processing Unit -TPU) olarak tanımlanan yeni platform tasarlanmıştır (**TPU'lar COLAB tarafından belirli bir limit değerinde ücretsiz sunulmaktadır.).

TensorFlow Nasıl Çalışır?

TensorFlow, makine öğrenimi alanındaki çalışmalarda kullanılmak istenilen veri kümelerini tensor olarak isimlendirilen çok boyutlu diziler halinde girdi verileri olarak alır. Daha sonra alınan verilerin nasıl bir hareket eylemi gösterdikleri tanımlanabilinmesi için grafiksel düzlemde analizlenir(veri akışı grafikleri gibi) ve bu analizlemeye göre uygun yapıların oluşturulması sağlanır. Buradan da anlaşılacağı üzere herhangi bir veri kümesi girdi olarak alınır, daha sonra tensorFlow ile oluşturulan modele uygun Keras katmanları eklenerek girdi verisinin çıktı sonuçları elde edilir.  Tüm bu süreçlerin başarılı bir şekilde gerçekleşmesi sonucunda, girdilerin çıktıta dönüştüğü akış şeması oluşur. 

TensorFlow modeli genel olarak 3 farklı stratejiden geliştirilmektedir. Bunlar;

  1. Verilerin ön işlenmesi
  2. Modelin oluşturulması
  3. Modelin eğitilmesi ve tahminsel analizleme yapabilmesi

Örneğin; tensorFlow üzerinde keras ile oluşturulmuş bir model ve modele ait katmanların çalışma prensibi aşağıdaki gibidir;

Tensör Nedir?

TensorFlow, girdileri tensör adı verilen yüksek boyutlu diziler biçimindeki veriler şeklinde kabul ettiği için TensorFlow adını almıştır. Tensorlar en basit tabiriyle, potansiyel anlamda oldukça büyük boyutlardaki vektör veya matris yapılarının bir genellemesi olarak ifade edilebilir.  Buradan hareketle, derin öğrenme alanında kullanılan herhangi bir yapay sinir ağında, farklı boyutlarda ve farklı sıralamalarda bulunan girdi kaynakları yani veri dizileri tensor olarak tanımlanmaktadır.

Bilindiği üzere derin öğrenme alanında çalışma yapılacağı zaman genel olarak oldukça büyük boyutlardaki veri kümeleri kullanılmaktadır. Verilerin çok yüksek boyutlu olmasından dolayı ise depolama veya kullanıma hazırlama gibi bazı durumlarda karmaşıklık yaşanabilinmektedir. Meydana gelebilecek karmaşıklık ile mücadele edebilmek için tensörler kullanılır ve böylelikle kullanılacak veriler hacimsel olarak küçültülür ve/veya yoğunluk olarak artırılmaktadır. Bunun sonucunda ise devasa veriler yoğunlaştırılırak depolanabilinir ve basitleştirilmiş kullanıma hazır hale getirilmiş olunur.

Bu noktaya kadar tensörlerin ne olduğundan genel hatlarıyla bahsedilmiştir. Bu bilgilere ek olarak, tensörleri daha detaylı bir şekilde anlayabilmek için 2 farklı terimin bilinmesi gerekmektedir. Bunlar;

  • Boyut (Dimension)
  • Sıra (Rank)

Boyut (Dimension): Bu terim isminden de anlaşılacağı üzere, yapay sinir ağlarında kullanılacak dizi nesnelerinin boyutunu temsil etmektedir. Yukarıda bahsedildiği üzere tensörleri matematikte çok boyutlu verilerin simgelenebildiği bir geometrik yapı olarak ifade edebiliriz. Bu bağlamda vektörler (yönlü büyüklükler) veya matrisler (2 boyutlu nesneler) birer tensördür. Tensör kelimesi bu gibi yapıların genel bir ismidir. Günümüzde boyutsal anlamda farklılaşma gösteren tensörler, boyutlarına göre farklı tanımlamalar ile ifade edilmektedirler.

Sıra (Rank): Bu terim, çalışmalarda kullanılmak istenilen verilerin temsil edilebilinmesi için kullanılan boyutların sayısal ifadesidir.

Yukarıda bahsedilen bu iki terimide örnekler üzerinden ifade etmek gerekirse;

  • Scaler-0 Boyutlu Tensör: Yalnızca 1 sayı içeren tensörlere denir.

  • 1D Tensör: Tek boyutlu bir sayı dizisine yani vektörlere denir.

  • 2D Tensör: İki boyutlu bir sayı dizisine yani matrislere denir.

  • 3D Tensör: Üç boyutlu bir sayı dizine yani dizilere de denir. 

  • 4D veya 5D Tensörler: 3D Tensörlerin bir dizide paketlenmesiyle elde edilebilir.

 

 

 

 

 

"TensorFlow" kütüphanesi Python üzerinde kullanılabilmesi için paketininin indirilmesi ve içe aktarılması gerekmektedir.,

pip install tensorflow
import tensorflow

Kullanıldığı yerler

  • Google üzerinde arama yaparken aranacak kelimeyi yazmaya başladığınızda cümleyi tamamlama işlemi yaparken, öneride bulunurken veya çeviri işlemleri yaparken vb.
  • Konuşma tanıma sistemleri, görüntü tanıma sistemleri yapımında
  • Araçlarda kendi kendine sürüş yapabilmesini sağlama işlemlerinde
  • Duygu analizlerinde
  • Metin analizlerinde veya özetlemelerde
  •  Yeni metinler üretme işlemlerinde

gibi birçok uygulamada TensorFlow kullanılabilir.

Aşağıdaki gibi elbise veya ayakkabı çeşitlerinin görsellerinin bulunduğu bir veri seti eğitilebilir. Eğitilen modele gösterilecek bir nesnenin ayakkabı ise hangi türden ayakkabı olduğu veya elbise ise hangi türden elbise olduğunu tahmin etme işlemi yapılabilecektir.

TensorFlow Avantajları

  • Açık kaynaklı bir platform olduğu için tüm kullanıcıların kullanımına açıktır.
  • Verileri görselleştirme konusunda başarıldır. Ayrıca içinde bulunan TensorBoard aracı yardımıyla kayıp ve doğruluk gibi deney ölçümlerinin izlenmesine, model grafiğinin görselleştirilmesine, yerleştirmelerin daha düşük boyutlu bir alana yansıtılmasına olanak tanır.
  • Kullanıcıların bazı üst seviye işlevlerini kodlamasına olanak sağlayan Keras kütüphanesi ile uyumlu bir şekilde çalışır. 
  • Birçok programlama dili ile uyumludur. Bunlardan bazıları; Python, C++, Javascript, C# gibi.
  • Mobil gömülü platformlarda, CPU'larda ve GPU'larda sorunsuz bir şekilde çalışmaktadır.

TensorFlow haricinde, TensorFlow'un yaptığı işleri yapabilen birkaç tane daha kütüphane bulunmaktadır. Bunlardan önemli olanları; Theano ve Microsoft Bilişsel Araç Takımı (CNTK)'dır. Kısaca bu iki tane kütüphaneden de bahsettikten sonra Derin Öğrenme konularını "TensorFlow" üzerinden anlatmaya devam edilecektir.

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.