elektrik port üyelik servisleri elektrik port üyelik servisleri

TensorFlow ile Yapay Sinir Ağları

Dijitalleşmede son ulaştığımız nokta yapay zekânın temelini oluşturan makine öğrenmesidir. Bu kavram sayesinde dijital sistemlerinin örnek verilerden kendilerini eğitmeleri ve daha sonra öğrendikleri algoritma ile yeni durumlar karşısında bizim yerimize karar vermelerini sağlayabiliyoruz. Makine öğrenme teknolojisinde kullanılan araçlardan biri de Google tarafından sunulan TensorFlow.



A- A+
07.02.2018 tarihli yazı 10709 kez okunmuştur.
Zor kararlar alırken, geçmiş tecrübelerimizden ve karar verme yetisine güvendiğimiz çevremizdeki insanlardan yardım alırız. Yapay sinir ağları sayesinde kolektif geçmiş bilgi birikiminden yararlanarak karar verebilecek yeni bir kaynağımız oluştu.

TensorFlow, geliştiricilere bu noktada destek veren ve üreticisi Google’ın tanımıyla “veri akış grafikleri kullanarak nümerik hesaplar yapabilen, açık kaynak kodlu, kütüphane” [1] olan bir araç.

Not: Bu dokümanın amacı tam bir kod örneği sunmaktan ziyade, mantığın anlaşılmasını sağlamaktır.
 

Kurulum


TensorFlow birçok geliştirme ortamında kullanılabilir ama en iyi desteğin alınabildiği ve en hızlı şekilde sonuç alınabilen yazılım dilinin Python olduğu kanaatindeyim.

Python’u bilgisayarınıza manüel olarak kurabilirsiniz ama kolay yollardan biri olan Anaconda’yı kullanmanızı tavsiye ederim. [2] Python kurulumdan sonra yazılımlarınızı yazabileceğiniz bir ortama (IDE) ihtiyacınız olacak. Bu ortam için de JetBrains firmasının PyCharm IDE’sini kullanabilirsiniz. [3]

Uygulamaları indirebileceğiniz bağlantılar “KAYNAKLAR” bölümünde listelenmiştir.
 

TensorFlow Kullanımı 


TensorFlow ismini Tensor kelimesinden almıştır. Tam olarak karşılamamak ile birlikte anlamını Vektör olarak düşünebilirsiniz. TensorFlow’un avantajı, herhangi bir işlemi çok boyutlu bir dizi üzerinde işleme kabiliyetidir.



Yukardaki kod önce “X” ve “Y” adında iki tane ondalık değer tutabilecek değişken tanımlar. Arkasında da test olması için tanımlanmış olan çarpım işlemini (multiplication). TensorFlow üzerinde bir “Session” oluşturarak, X ve Y’nin birden fazla değeri için tek bir seferde hesaplama yapabiliriz.

Örneğimizin sonucu aşağıdaki gibi olacaktır: [ 4. 10. 18.]
 

TensorFlow ile Makine Öğrenme 


Makalemizdeki amacımız basit çarpma toplama işlemlerinin ötesinde yapay sinir ağları oluşturmaktır.
 


Şekil 1: Yapay Sinir Ağları [4]

Normal sinir ağları gibi yapay sinir ağları da, giriş sinyallerinin karmaşık bağlantılar ile çıkışlara aktarılmasıdır. Elinizle çok sıcak bir nesneye dokunduğunuzda bir giriş sinyali alırsınız, beyninizdeki nöronlar kendi aralarında bu sinyalleri daha önceden öğrendikleri yapıya göre dolaştırır ve sonunda bir karar verilerek elinizi çekme çıkışına aktarılır.

Buradaki kilit kısım, giriş sinyali ile çıkış sinyali arasındaki sinyalin dolaşımıdır. Bu dolaşım her bir nöronun arasındaki bağlantılarının “ağırlıklarının” geçmiş tecrübelere göre belirlenmesi ile oluştur. Örnek vermek gerekirse, bir A nörona gelen sinyalin X nöronuna aktarılma ağırlığı 0,3 iken, Y nöronuna aktarım ağırlığı 0,6 olabilir. Bu sayede gelen sinyalin yol haritası belirlenmiş olur.
 

A. Yapay Sinir Ağı Oluşturma Adımı


İlk etapta giriş katmanımızı, ara katmanlarımızı, çıkış katmanlarımızı ve ara katmanlarımızı oluşturmamız gerekmektedir. Aşağıdaki örnek kodda 10 girişli bir giriş katmanı tanımlanmıştır.



Giriş katmanından sonra ara katmanı ve bu ara katman ile giriş katmanı arasındaki bağlantıyı tanımlıyoruz. İstediğimiz kadar ara katman tanımlayıp, bu ara katmanları birbirine bağlayabiliriz.

Aşağıdaki örnekte 10 adet giriş, 20 düğümlü bir ara katmana bağlanıyor.



Son olarak ara katmanı tek bir çıkışımıza bağlamamız gerekiyor.


B. Öğretme Adımı


Oluşturduğumuz yapay sinir ağını boş bir beyin gibi düşünebilirsiniz. Bu ağı örnek veriler ve örnek sonuçlar ile eğitmemiz gerekmektedir.

Örnek verileri çok çeşitli ortamlarda oluşturup, kodumuza ekleyebiliriz. Dikkat edilmesi gereken husus örnek verimizde, giriş sayımız kadar veri alanı (sütun) ve yine aynı şekilde çıkış sayımız kadar sonuç veri alanı olması gereklidir.


 

C. Yeni Veriler ile Tahmin


Yapay sinir ağı oluştuktan ve eğitildikten sonra, aynı tip ve sayıdaki yeni veriler ile tahminler üretmesini sağlayabiliriz. Maalesef kurulan yapay sinir ağ her zaman doğru sonuç verememektedir, bu yüzden gerçek bir tahmin yapmasını istemeden önce test verileri ile besleyerek beklenen sonuç ile çıkan tahminin karşılaştırılmasının yapılması gereklidir.


Kullanım Alanları


Öğrenen bir yapay sinir ağı yardımıyla bir sistemde veya cihazda meydana gelebilecek arızaların tanımlanma olanağıolmaktadır. Makro ekonomik tahminler, banka kredilerinin değerlendirilmesi, döviz kuru tahminleri, risk analizleri gibi örnekler de finansal konularda uygulama alanı bulmaktadır. Tıp bilimde, tıbbi sinyallerin ve kanserli hücrelerin analizinde, savunma sanayi uygulamalarında ise hedef izleme, nesneleri veya görüntüleri ayırma ve tanıma, askeri uçakların uçuş yörüngelerinin belirlenmesigibi alanlarda kullanılmaktadır. Üretim sistemlerinin optimizasyonu, ürün analizi ve tasarımı, ürünlerin kalite analizi ve kontrolü, planlama ve yönetim analizi gibi alanların yanı sıra, robot sistemlerin kontrolü, doğrusal olmayan sistem modelleme, resim işleme, karakter el yazısı ve imza tanıma, veri madenciliği gibi alanlarda da kullanılmaktadır. Yapay Sinir Ağları uygulamaları genellikle tahmin, sınıflandırma, veri ilişkilendirme, veri yorumlama ve veri filtreleme işlemlerinde kullanılmaktadır. [5] 


TenseorFlow Dağıtımı 


TensorFlow ile oluşturmuş olduğunuz yapay sinir ağ modelinizin dosya olarak çıktısını alıp, başka ortamlara taşıma olanağınız bulunmaktadır. Bu olanak sayesinde oluşturduğunuz modeli bir çok sunucu üzerinde hatta cep telefonları uygulamalarında bile kullanabilirsiniz. Google ve diğer firmaların sunduğu bulut barındırma hizmetleri ile çok büyük işlem gücü gerektirecek ve normalde günler sürecek eğitim işlemlerini çok hızlı bir şekilde yapıp, yine bulut ortamı içinde kişisel veya ticari kullanımıza açabilirsiniz.


Yazar: Emre Sami Süzer
Operasyonlar Direktörü
Aktif Mühendislik

 

Kaynaklar:
[1] https://www.tensorflow.org/
[2] https://www.anaconda.com/download/
[3] https://www.jetbrains.com/pycharm/
[4] https://www.cse.unr.edu/~bebis/MathMethods/NNs/lecture.pdf
[5] Mühendis ve Makine Dergisi, Sayı 662 Zafer Ağyar



Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar