Data Vinci 28 : Tensorflow

Tahmini Okuma Süresi: 6 dakika

Bu yazıda tensorflow ile ilgili ufak tefek bilgiler vereceğim. Daha önceki yazılarda bahsettiğim yapay zeka, makine öğrenmesi, derin öğrenme gibi konular ile sıkı ilişkili bir başlık. Nasıl mı?  Tanımı yaptığımızda ortaya zaten çıkacaktır. Tensorflow Google tarafından açık kaynak olarak (2015 kasımdan beri) geliştirilen bir kütüphane. Makine öğrenmesi ve derin öğrenmede kullanmak mümkün.

Google (e bi zahmet), SAP, Snapchat, Twitter, Airbnb, Intel, Ebay, QualCOMM gibi firmalar tarafından kullanılmaktadır. İsminin kaynağı “Tensor” kelimesine dayanır. Tensorflow, bir veri akış grafında düğümler(node) matematiksel işlemleri, kenarlar(edge) ise tensörleri temsil etmektedir. Tensorflow ise bu ikisi arasındaki ilişkileri kurmaktadır.  Google Beyin takımı (Google Brain Team), başlarda Windows desteği olmamasına rağmen şimdilerde kurulum için MacOS, Linux ve Windows için seçenekler sunmakta.  Tensorflow 3 ana bileşenden oluşmaktadır. API, Board ve Serving denilen yapılar.

  • API, modelleri ve antreman datalarını içeren bileşen. C++ ile yazılmıştır.
  • Serving, ön tanımlı modellerin uygulanması için kullanılır.
  • Board, Tensorflow graflarının analizi, görselleştirilmesi ve hata ayıklama işlemleri için kullanılır.

Tensorflow esnek mimarisi sayesinde matematiksel işlemlerin gerçekleştirilmesi için  birden fazla CPU veya GPU kullanabilmektedir.

Şimdi biraz ellerimizi kirletelim. Tensorflow’un Windows’ta kurulumu için 64 bit Python 3.5 + ve pip gereksinimi var.  Çok sancılı olmasa da kurulum esnasında bir takım versiyon uyuşmazlıkları yaşadım. Neticede kurulum adımlarını tensorflow’un resmi sitesinde gösterildiği şekilde yapmak mümkün olmasa bile ufak tefek araştırmalar ile kolayca tamamlamak mümkün.

Tam kurdum import edeyim derken birkaç hata daha çıktı, fakat internette bu tarz hatalar ile karşılaşanlar için çözümler mevcut. Neticede import tensorflow dediğinde Python IDLE’da bir satır aşağıya temiz bir sayfa açabiliyorsan kurulum işlemi tamamlanmış demektir.

Bu noktadan sonra kütüphaneyi tanımak için internette bulunan kaynaklardan örnek kodlar çalıştırılıp incelenebilir. Açıkçası ben henüz hello world seviyesindeyim.

Tensor kelimesine bir tanım yapılması istense en basit anlamıyla n-boyutlu veri dizisi demek mümkündür. Her tensor’un 3 tane özelliği vardır.

Rank

Shape ve Type. Rank, bir tensor’un boyutunu belirtir. Örneğin Rank’ı “0” olan bir tensor için “scalar” değerlidir diyebiliriz. Rank = 1 ise bu vektorel bir tensor’dür ve diziyi ifade eder. Rank=2 ise bir matriks söz konusudur. Rank = 3 ise bir küpten(cube) bahsetmek mümkündür.

Shape

Shape ise rank ile ilişkilidir. Örneğin, Rank = 0 ise, shape boş küme, Rank =1 ise Shape vektörün uzunluğu, rank 2 ise matriksteki vektör sayısı ve her vektörün içerdiği eleman sayısıdır.

Data Type

Bu özelliği ise bildiğimiz veri tipleridir. complex64, complex128, qint8, qint16 gibi veri tipleri de kütüphane içerisinde yer almaktadır.

Yapay zeka konusuyla uğraşırken kaçınılmaz olarak nöron, nöron ağları gibi kavramlar ile de haşır neşir olmak gerekiyor. Bir nöron 4 bileşen ile çıktı üretebiliyor. Mimari olarak çizimine aşağıdaki resimden ulaşabilirsiniz.

Resimden anlaşılağı üzere girdiler bir takım weight değişkenleri ile işlenip bir Sum(Toplam) oluşturuluyor. Daha sonra activate fonksiyonu ile çıktı üretiliyor. Weight değerleri pozitif veya negatif olabilir. Modelin öğrenme aşaması bu noktaya denk geliyor. Her bir girdi kendi tekil weight değeri ile çarpılıp, bias eklendikten sonra aktivite fonksiyonunun parametresi oluşur ve işletilir. Bu işleme forward propagation adı veriliyor. Bu şekilde oluşturulan nöron ağları sayesinden daha optimum tahminleme yapma amaçlanmaktadır. Tensorflow kütüphanesi de bu işler için kullanabileceğimiz bir kütüphane sunuyor.

Yazıda bahsettiğim gibi konuya ilgili amatör, giriş seviyesinde yazmış olduğum bu yazıda öğrendiklerimi aktarmaya çalıştım. Daha derin bilgi seviyesine ulaşmak için konu hakkında yayınlanan eserleri takip edip incelemek gerekir. Endüstri 4.0 vs derken hızla ilerleyen teknoloji dünyasında Yapay Zeka konusu da çok ciddi bir alan olarak karşımızda duruyor. Mümkün olduğunca bilgi ve deneyim seviyemizi artırıp bu konularda da uzmanlaşmak gerekiyor diye düşünüyorum. CRUD  otomasyonları ile nereye kadar 🙂  Herkese iyi günler dilerim.

Kaynaklar:

Leave a Reply

Your email address will not be published. Required fields are marked *