Derin Öğrenme (Deep Learning)

Keras

Yayın tarihi :14-Şub-22

Keras Nedir?

Keras; Tensorflow, Theano veya CNTK üzerinde çalışan Python ile yazılmış açık kaynaklı üst düzey sinir ağı kitaplığıdır. Tensorflow da olduğu gibi Keras da Google mühendisleri tarafından geliştirilmiştir. Keras düşük sayıda verileri işlemekte başarısızdır, bunun yerine "Backend (arka uç)" olarak ifade edilen Tensorflow, Theano veya CNTK kitaplıklarıyla ile oldukça başarılı kullanımlara sahiptir ve bundan dolayı sarmalayıcı katman olarak tanımlanmaktadır.  

Bilindiği üzere derin öğrenme alanında yapılan çalışmalarda bazen problemler ile karşılaşılmaktadır. Meydana gelebilecek problemler ile model üzerindeki düğüm bölümlerine entegre edilmiş birçok operatörü kullanabilme yeteneğine sahip sinir ağları kullanılmaktadır. Ancak, bu durum oldukça karmaşıktır ve bundan dolayı yetenekli sinir ağlarının uygulanması oldukça zor bir işlem olabilir. Bahsedilen bu zorlukla mücadele ise keras yardımıyla oldukça basitleştirilmektedir. Buradan hareketle keras ile yapay sinir ağı modelleri oluşturma sürecinde katmanları tanımlama veya birden çok girdi-çıktı modeli kurma işlemleri başarılı bir şekilde yönetilebilinmektedir.  Ayrıca Keras, oluşturulan modelin kayıp ve optimizer fonksiyonları ile optimizasyonunu sağlayabilmektedir. 

Keras kitaplığı kullanılarak gerçekleştirilmek istenilen öğrenme(fit) ve diğer kitaplıklarla beraber çalışabilme yeteneği diğer araçlara göre kolay sayılabilecek bir durumdur. Bu durumun temel nedeni ise keras'ın hesaplamalar için birden fazla arka uç(backend) desteğine sahip olması ve bunun sonucunda yüksek seviyelerde soyutlama yeteneğiyle python programlama dili ön ucu(frontend) sağlayabilmektedir. Bu yeteneklerinden dolayı Keras, diğer öğrenme kitaplıklarına göre nispeten yavaş ancak basit ve sağlam adımların atılmasına olanak sağlamaktadır. 

Yukarıda bahsedildiği üzere Keras, birden fazla arka uç'u(backend) desteklemektedir ve bu uçlar arasında geçiş yapılmasına olanak sağlamaktadır. Bu bağlamda arka planda keras ile oldukça uyum gösteren bazı özelleştirilmiş çerçeveler bulunmaktadır. Bunlar;

Burada ifade edilen 3 farklı özelleştirilmiş kitaplık(veya arka uç), Keras ile en iyi uyum gösterebilen çerçeveler olarak ifade edilebilir. İfade edilen bu çerçeveler arasında Keras ile en iyi uyum gösteren kitaplık TensorFlow'dur. Bunun temel nedeni Keras'ın TensorFlow kitaplığı içerisinde gömülü olmasıdır. Böylelikle TensorFlow, Keras kitaplığını diğer kitaplıklara göre üst düzey ilişki noktasında benimsemektedir.

Keras ile başta TensorFlow olmak üzere diğer kitaplıkların güçlü ilişkileri, çalışmalarda oluşturulan yapay tüm sinir ağlarının hesaplanması için gömülü modüllere olanak sağladığı için derin öğrenme sürecinin hızlı ve başarılı bir şekilde yönetilmesini sağlamaktadır. 

Keras'ın ifade edilen üç farklı kitaplık ile başarılı uyum sağlaması ve içlerinde gömülü olmasından dolayı, Keras ile sinir ağı oluşturmanın kolay olabileceği düşünülmektedir(bunun temel nedeni daha az kodla çok ifade üretebilmektir). Ancak, bilindiği üzere Keras kitaplığı kodlarla sinir ağı oluşturmak için değil, temel olarak sinir ağlarıyla birlikte kullanılabilecek iyileştirici ve geliştirici bir araç olarak geliştirilmiştir. Bu durumdan dolayı ise Keras kitaplığı kullanılarak farklı makine öğrenimi algoritmalarının geliştirilmesi oldukça zor veya imkansız bir süreç olarak ifade edilebilir. 

Ayrıca, Keras kitaplığı CPU veya GPU sistemlerinin destekleriyle kullanılabilinmektedir. Yani, eğer derin öğrenme çalışmaları güçlü bir merkezi işlem birimi veya ekran kartına sahip makinelerde yapılırsa, işlem süreci belirtilen sistemlerin performansına göre kısalabilmektedir. 

Sonuç olarak yukarıda ifade edilen bilgilerden referansla Keras;

  • Esnek bir formdadır. Yani, meydana gelen karmaşıklıklar karşısında adım adım karmaşıklığın resmedilmesini amaçlamaktadır. 
  • Güçlü bir formdadır. Keras sahip olduğu özellikler sayesinde YouTube, NASA vb. dünya devleri tarafından tercih edilmektedir. Bu tercihin en temel nedenleri ise kapsamlı-güçlü performans ve ölçeklenebilirliktir.
  • Uyum: Keras, başta TensorFlow olmak üzere diğer derin öğrenme kitaplıkları ile üst düzey ilişkiler kurabilmektedir. Meydana gelen bu yüksek uyum ilişkileri sayesinde oldukça kapsamlı çalışmaları basit bir forma indirgeyebilmektedir. 

 

Keras Neden Kullanılır?

Keras bahsedildiği üzere araştırmacılar ve geliştirmecilerin kolay çalışma yapabilmesi için geliştirilmiş kapsamlı bir kitaplıktır. Diğer kitaplıklar ile üst düzey bir uyum göstermesi ve içlerinde gömülü olmasından dolayı eylem azlığı ve adım adım problem tespitinin yapılabilmesine olanak sağlamaktadır. Bu özelliklerinden dolayı diğer kitaplıklara göre oldukça daha kapsamlı olduğu söylenebilinir.

Ayrıca Keras;

  • İlk örneklerin(prototip) oluşum sürelerini nispeten kısaltmaktadır. Bunun sonucunda hızlı bir şekilde çıktılar oluşur, değerlendirilir ve uygunluklarına göre çalışma sonlandırılır veya baştan başlanabilir. 
  • Oldukça yüksek düzeylerde soyutlayabilme özelliğine sahiptir. Normal koşullar altında yüksek düzeyde soyutlama yapabilen kitaplıklar nispeten yavaştır. Ancak Keras, olumsuzluk sayılabilen bu durumdan TensorFlow üzerinden çalışabilmesinden dolayı kurtulur ve hatta nispeten daha hızlı bir forma dönüşür.
  • TensorFlow ile oldukça güçlü ilişki kurabildiğinden dolayı spesifikleştirilmiş farklı iş akışları oluşturulabilir.
  • CPU veya GPU sistemleriyle oldukça başarılı bir uyum sağlar ve bunun sonucunda çalışma hızları ciddi oranlarda artırılabilinir.
  • Hemen hemen bütün sinir ağ modellerini destekleyebilmektedir.

Bu bilgilerden de anlaşılacağı üzere derin öğrenme çalışmalarında Keras kitaplığının kullanılması, çalışmaların hazırlık, gelişim ve sonuç süreçlerine ciddi oranlarda olumlu bir ivme kazandırmaktadır.

 

Keras Kullanılarak Model Nasıl Oluşturulur?

1. Modelin tanımlaması: Kullanılacak modelin farklı katmanları ve aralarındaki ilişkileri tanımlanır. Keras kitaplığında toplamda 2 farklı model vardır. Bunlar;

İfade edilen bu iki modelden herhangi biri çalışmanın uygunluğuna göre seçilir.

2. Modele katmanların eklenmesi: Oluşturulan modele "add()" komutu ile istenilen sayıda katman(layer) eklenebilir. 

3. Modelin derlenmesi: Bu adımda model.compile() komutu ile kod yapıları, makinenin anlayabileceği forma dönüştürülür. Ayrıca bu adımda kayıp fonksiyonları, optimize ediciler ve doğruluk tespit ediciler tanımlanır. 

4. Modelin veri setini öğrenmesi: Model yapısı uygun sıralama süreci ardından model.fit() komutu ile eğitilir.

5. Modelin değerlendirilmesi: Bu adımda bir önceki adımda eğitilen model, model.evaulate() komutu kullanılarak başarı değerlendirilmesi yapılır.

6. Modelin kaydedilmesiKeras tarafından oluşturulan model ve model içinde bulunan ağırlıkları kaydetmek için "model_from_json" kütüphanesi kullanılabilir. JSON, verileri hiyerarşik olarak tutmak için kullanılan bir dosya biçimidir.

7. Modelin tahminlenmesi: Değerlendirilen ve kaydedilen model, model.predict() komutu kullanılarak başarı oranı tahminlenir.

 

Keras'ın Kullanım Alanları Nelerdir?

Keras kitaplığı, en genel ifadesiyle akıllı teknolojik ürünlerin hemen hemen hepsinde kullanıldığı söylenebilinir. Örneğin; günümüzdeki birçok akıllı telefona entegre edilmiş asistanların geliştirilmesinde tercih edilmektedir. Bu duruma örnek olarak Samsung şirketinin "bixby" uygulaması, Apple şirketinin akıllı saatleri vb. yüzlerce örnek verilebilir. Teknolojik ürünlerin yanı sıra Netflix, Youtube, Facebook, Twitter vb. gibi dünyada oldukça popüler sosyal platformlarda iyileştirme ve geliştirme amacıyla yaygın bir şekilde kullanılmaktadır. Genel itibariyle alt alta yüzlerce Keras kullanım alanı yazılabilir. Yani, Kerasın kullanım alanlarının belirli bir sınırı yoktur. Bu bağlamda ise herhangi bir yapay zeka ürününde Keras'ın kullanıldığı söylenebilir. Ayrıca, kısa bir süre içerisinde model oluşturmak ve oluşturulan modelin uygulanabilirliğini sağlamak için de yaygın bir şekilde kullanılmaktadır. 

Sonuç olarak Keras kitaplığı, derin öğrenme sürecinde modellerin geliştirilmesi, iyileştirilmesi ve herhangi bir yapay zeka ürününün geliştirilmesi için yaygın olarak kullanılmaktadır.

 

 

 

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.