TensorFlow
21. yüzyılın en büyük gelişmelerinden biri hiç şüphesiz hayatlarımıza bir anda girip bomba etkisi yaratan “yapay zeka” kavramı. Aslında bu kavrama çok da yabancı değiliz. Hepimiz içinde yapay zeka geçen ve genellikle robotların dünyayı ele geçirmeye çalışmasıyla devam eden filmlere oldukça aşinayız. Öğrenen, yorumlayan, sürekli gelişen makineler ve sonunda kaçınılmaz son, insanlığın çöküşü … Gerçek hayat uygulamalarında ise bu durum oldukça farklı . Öyle görünüyor ki her ne kadar yapılan yapay zeka çalışmaları umut vadedip bizleri heyecanlandırsa da robotların dünyayı ele geçirmeden önce hala öğrenecekleri çok şey var :)
Gelin beraber bir göz atalım nedir bu yapay zeka?
En basit ifadeyle yapay zeka (AI), görevleri yerine getirmek için insan zekasını taklit eden ve topladıkları bilgilere göre yinelemeli olarak kendilerini iyileştirebilen sistemler veya makineler anlamına gelir. Buradaki yinelemeli kısmı oldukça kilit bir nokta. Şu anki kullanılan teknolojide makineler öğrenmek için sürekli bilgiye ihtiyaç duyuyor. Ne kadar veri , o kadar kesin sonuç. Bu da demek oluyor ki robotlar dünyayı ele geçirmeden önce hala bizim yardımımıza ihtiyaç duyuyor :)
Yapay zekanın kendi içinde pek çok alt dala ayrılıyor ama bunları 2 ana başlıkta toplayabiliriz. Makine Öğrenmesi (Machine Learning) ve Derin Öğrenme (Deep Learning). Bu yazımda Derin Öğrenme üzerine çalışacağız.
Türkçeye Derin öğrenme olarak çevirdiğimiz Deep Learning kavramı temelde insanı taklit eden bir öğrenme biçimi ortaya koyuyor. Sık sık görmeye başladığımız sürücüsüz araçlar, ses ile kontrol edilebilir cihazların arkasındaki esas teknolojiyi oluşturuyor.
Deep learning bir bilgisayar modeli olarak karşımıza çıkıyor. Resimlerden yazılardan ya da sesten bilgi öğrenebiliyor. Öğrendiği bilgi ilerledikçe de daha gelişmiş işler ortaya koyabiliyor. Kimi zaman insan kabiliyetinin ötesine geçebiliyor. Günümüzde deep learning sayesinde sürücüsüz araçlar geliştirilebildiği gibi, kırmızı ışığı görünce durabilen, boş park yeri bulunca otomatik park edebilen sistemler geliştirilmiş durumda.
Yapay zeka uygulamaları için pek çok farklı teknoloji bulunuyor ve herbiri farklı alanlarda harikalar yaratıyor. Şimdi sizlere bu alanda en çok kullanılan teknolojilerden biri olan Tensorflow kütüphanesini anlatacağım. Hazırsanız başlayalım !
Tensorflow derin öğrenme alanında kullanılmak için Google tarafından geliştirilmiş açık kaynaklı oldukça kullanışlı ve kullanım kolaylığından dolayı şimdiden pek çok geliştirici tarafından benimsenmiş bir kütüphane.
Framework, tensor(çok boyutlu matris) ve flow(akış) kelimelerinin birleştirilmesinden adını alıyor. Tensor tüm veri tiplerini temsil eden bir vektör veya n-boyutlu bir matristir diyebiliriz.
Tensorflow en basit tabirle bir matris manüpilasyon aracıdır. Tensorflow’un ana arayüzü Python gibi gözükse de Python aslında sadece bir konfigürasyon dili olarak kullanılıyor. Python bize çıktı olarak bir “graph” sunuyor ve bu graph in node larında tensor operasyonları bulunuyor. Kısaca 2 aşamada Tensorflow’un yaptığını özetleyebiliriz.
1- Graph oluştur.
2-Graph’ i işlet.
Akış şu şekilde sonuçlandırılabilir.
Veriyi Oku(Read Data) → Modeli Oluştur (Create the Model)→ Modele Katman Ekle(Add Layer)→ Tahmin Et(Estimate) → Kaybı En Aza İndir(Minimize the Loss)
Tensorflow ile ilgili tüm detayları aşağıdaki linkte bulabilirsiniz.
TensorFlow geliştiricilere oldukça geniş bir kullanım alanı yelpazesi sunuyor. Bunların en yaygın olanları ses, görsel, mimik ve obje tanıma-algılama. Tensorflow’un bu kadar yaygın kullanılmasının diğer bir sebebi de çoklu platform desteği sunması. Web tabanlı uygulamalar için Tensorflow.js, Mobil uygulamalar için ise hem IOS hem Android uyumlu Tensorflow Lite geliştiricilerin kullanımına sunulmuş durumda. İlk başlarda her ne kadar Windows desteği sağlanmasa da (bu durum kütüphanenin yaygınlaşmasında büyük bir engel oluşturdu) 29 Kasım 2016 itibariyle Google Windows desteği de vermeye başladı.
TensorFlow kütüphanesiyle yapabilecekleriniz aslında sizin hayal gücünüze kalmış. “The sky is the limit” 🚀. Aşağıda Google tarafından hazırlanmış bazı demo uygulamaları görebilirsiniz. Bilgisayar kamerasını kullanarak yapabilecekleriniz gerçekten heyecan verici ! Öyle görünüyor ki bilgisayar karşısında eğitilmiş bir algoritmanın karşısında spor yaptığımız, hareketleri doğru yapıp yapmadığımızla ilgili anlık feedback ler aldığımız günler çok da uzakta değil. Hem kim şimdi hazırlanıp da spor salonuna gidecek :)
TensorFlow’un ne olduğunu ve çalışma mantığını anladığımıza göre haydi gelin bunu güzel bir uygulama ile pekiştirelim. Y kuşağının çok iyi bildiği ve atari salonlarında saatlerini geçirdiği Mortal Kombat oyununu günümüze uyarlayalım ve kameramızı ve Tensorflow’un bize sunmuş olduğu posture-detection özelliğini kullanarak karakterimizi yönetelim. Hem kendi kollarımız varken bozuk(!) kollara ya da gereksiz butonlara kimin ihtiyacı var ki? Oyunun yapım aşamasını adım adım göstermek istediğim için onun için ayrı bir yazı hazırlayacağım. Aşağıda oyundan ufak bir parça görebilirsiniz. Yeni yazıda görüşmek üzere .