Son zamanların en popüler konusu olan derin öğrenme (deep learning) eğitim verisi hazırlamadan öğrenme ve tahmin üretebilecek yöntemler üretmeyi amaçlar. Aslında yapay sinir ağlarının isminin modifiye edilmiş halidir. Yapay sinir ağlarının en büyük problemi karmaşık problemlerin çözümde yavaş kalması idi. Özellikle, paralel programlama ve GPU’ların çıkması ile birlikte bu konu tekrar ön plana çıkmış ve tekrar literatürdeki yerini almıştır.
Derin Öğrenme
TensorFlow
TensorFlow, Python ve Deep Learning deyince akla gelen ve Google AI Organizasyonu tarafından geliştirilen kütüphanedir. Nümerik hesaplamalar için yüksek performans sağlayan bir kütüphanedir. Esnek mimarisi sayesinde CPUs, GPUs, TPUs gibi farklı yapılarda hesaplamalar kolay şekilde uygulanabilir. Nesne tanıma, konuşma tanıma, yüz tanıma ve benzeri birçok zor problemi çözmek için tf-learn, tf-slim, skflow ve benzeri birçok yardım katmanına sahiptir.
Keras
Keras, TensorFlow, Theano, CNTK ve MxNet gibi yapay sinir ağı kütüphaneleri üzerinde çalışabilen yüksek seviye bir kütüphanedir. Hızlı deney yapmaya olanak sağlama üzerine odaklanmıştır. “Hızlı şekilde sonuç alabilmenin araştırmanın anahtar noktası” olduğunu göz önüne alınarak geliştirilmiştir.
- Hızlı ve kolay prototipleme sağlar.
- Hem evrişimli(convolutional) hem de recurrent ağları veya her ikisini de destekler.
- CPU ve CPU’da sorunsuz çalışır.
Theano
Theano, matematiksel ifadeleri (özellikle çok boyutlu dizi içeren) etkili bir şekilde tanımlamayı, optimize etmeyi ve değerlendirmeyi sağlayan bir kütüphanedir. En temel özellikleri:
- NumPy ile sıkı entegrasyon: Theano-derlenmiş fonksiyonları içinde numpy.ndarray kullanma
- GPU kullanımı: Yoğun hesaplamalarda CPU’ya göre 140x kat daha hızlı yürütülmesi
- Etkili türev alma: Bir veya daha fazla girdili fonksiyon için türev işlemi
- Hız ve kararlılık optimizasyonları: x değerinin çok küçük olduğu durumlarda bile log(1+x) için doğru cevabı alma.
- Dinamik C kodu üretimi: İfadeleri daha hızlı değerlendirme
- Kapsamlı birim-testi ve kendini-doğrulama: Birçok hata olayını ortaya çıkarma ve tanımlama.
04.04. PyTorch
PyTorch, GPU hızlandırma ile tensor hesaplamaları yapmanıza, dinamik hesaplamalı grafikler oluşturmanıza ve gradient’leri otomatik hesaplamayı sağlayan büyük bir framework’tür. Ayrıca, sinir ağları ile ilgili problemleri çözmek için geniş bir API havuzu sunar. Kütüphane, Lua’da C’de uygulanan açık kaynaklı bir derin öğrenme kütüphanesi olan Torch’a dayanıyor. Python API’si 2017’de tanıtıldı ve bu noktadan itibaren, popülerlik kazandı.
Dist-keras
Distributed Keras (Dağıtık Keras), dağıtık makine öğrenme algoritmaları kullanarak eğitimi önemli ölçüde azaltmak amacıyla Apache Spark ve Keras’ın üzerine inşa edilmiş dağıtılmış derin bir öğrenme kütüphanesidir. Bu kütüphane, bir geliştiricinin kolaylıkla yeni bir dağıtık optimize edici uygulayabileceği ve böylece bir geliştiricinin araştırma ve model geliştirmeye odaklanmasını sağlayacak şekilde tasarlanmıştır.
04.06. Elephas
Elephas, Spark ile dağıtık derin öğrenme modellerini çalıştırmamızı olanak tanıyan ve Keras’ın bir extension’ı (uzantısı) olan bir kütüphanedir. Elephas aşağıdaki uygulamaları destekler:
- Derin öğrenme modellerinin paralel eğitimi
- Dağıtık hiper-parametre optimizasyonu
- Ensemble modellerinin dağıtık eğitimi
Deep Learning Pipelines for Apache Spark
Deep Learning Pipelines, Apache Spark ile Python içinde ölçeklenebilir bir derin öğrenme API’si sunar. Spark ve Spark MLlib mantığı az sayıda kod satırı ile derin öğrenme için metotlar sunar. Aynı şekilde bu API Python için kullanımı kolay bir ortam sunar. Büyük veri setlerinde derin öğrenmeyi ölçekleme için Spark’ın güçlü dağıtık motorunu kullanır.