Kitaplıklar ve Çerçeveler
Bu bölümde, derin öğrenmeyi farklı kütüphaneler ve çerçevelerle ilişkilendireceğiz.
Derin öğrenme ve Theano
Derin bir sinir ağını kodlamaya başlamak istiyorsak, Theano, TensorFlow, Keras, PyTorch vb. Gibi farklı çerçevelerin nasıl çalıştığına dair bir fikrimiz olması daha iyidir.
Theano, makinemizde hızlı bir şekilde eğitilen derin ağlar oluşturmak için bir dizi işlev sağlayan bir python kitaplığıdır.
Theano, derin bir ağ öncüsü olan Yoshua Bengio'nun önderliğinde Kanada, Montreal Üniversitesi'nde geliştirildi.
Theano, matematiksel ifadeleri dikdörtgen sayı dizileri olan vektörler ve matrislerle tanımlamamıza ve değerlendirmemize izin verir.
Teknik olarak konuşursak, hem sinir ağları hem de girdi verileri matrisler olarak temsil edilebilir ve tüm standart ağ işlemleri matris işlemleri olarak yeniden tanımlanabilir. Bilgisayarlar matris işlemlerini çok hızlı gerçekleştirebildikleri için bu önemlidir.
Birden fazla matris değerini paralel olarak işleyebiliriz ve bu temel yapı ile bir sinir ağı oluşturursak, makul bir zaman aralığında devasa ağları eğitmek için GPU'lu tek bir makine kullanabiliriz.
Ancak Theano kullanırsak, derin ağı sıfırdan inşa etmeliyiz. Kitaplık, belirli bir derin ağ türü oluşturmak için tam işlevsellik sağlamaz.
Bunun yerine, derin ağın model, katmanlar, aktivasyon, eğitim yöntemi ve aşırı uydurmayı durdurmak için özel yöntemler gibi her yönünü kodlamalıyız.
Bununla birlikte, iyi haber şu ki, Theano bizim uygulamamızı vektörize edilmiş fonksiyonların üstüne inşa etmemize izin vererek bize oldukça optimize bir çözüm sağlıyor.
Theano'nun işlevselliğini artıran birçok başka kütüphane var. TensorFlow ve Keras, Theano ile arka uç olarak kullanılabilir.
TensorFlow ile Derin Öğrenme
Googles TensorFlow bir python kitaplığıdır. Bu kütüphane, ticari düzeyde derin öğrenme uygulamaları oluşturmak için harika bir seçimdir.
TensorFlow, Google Brain Project'in bir parçası olan başka bir DistBelief V2 kitaplığından büyüdü. Bu kütüphane, makine öğreniminin taşınabilirliğini genişletmeyi amaçlamaktadır, böylece araştırma modelleri ticari düzeydeki uygulamalara uygulanabilir.
Theano kitaplığına çok benzer şekilde, TensorFlow, bir düğümün kalıcı verileri veya matematik işlemi temsil ettiği ve kenarların, çok boyutlu bir dizi veya tensör olan düğümler arasındaki veri akışını temsil ettiği hesaplama grafiklerine dayanır; dolayısıyla TensorFlow adı
Bir işlemden veya bir dizi işlemden elde edilen çıktı, bir sonrakine girdi olarak beslenir.
TensorFlow sinir ağları için tasarlanmış olsa da, hesaplamanın veri akış grafiği olarak modellenebileceği diğer ağlar için de iyi çalışıyor.
TensorFlow ayrıca, ortak ve alt ifade eleme, otomatik farklılaştırma, paylaşılan ve sembolik değişkenler gibi Theano'nun çeşitli özelliklerini kullanır.
Evrişimli ağlar, Otomatik kodlayıcılar, RNTN, RNN, RBM, DBM / MLP vb. Gibi TensorFlow kullanılarak farklı derin ağ türleri oluşturulabilir.
Ancak TensorFlow'da hiper parametre yapılandırması için destek yoktur, bu işlevsellik için Keras kullanabiliriz.
Derin Öğrenme ve Keras
Keras, derin öğrenme modellerini geliştirmek ve değerlendirmek için güçlü, kullanımı kolay bir Python kitaplığıdır.
Katman katman net bir katman oluşturmamızı sağlayan minimalist bir tasarıma sahiptir; eğitin ve çalıştırın.
Verimli sayısal hesaplama kitaplıkları Theano ve TensorFlow'u sarar ve sinir ağı modellerini birkaç kısa kod satırında tanımlamamıza ve eğitmemize olanak tanır.
Derin öğrenme ve yapay zekadan geniş ölçüde yararlanmaya yardımcı olan yüksek seviyeli bir sinir ağı API'sidir. TensorFlow, Theano vb. Dahil olmak üzere bir dizi alt düzey kitaplığın üzerinde çalışır. Keras kodu taşınabilir; Kodda herhangi bir değişiklik olmadan arka uç olarak Theano veya TensorFlow kullanarak Keras'ta bir sinir ağı uygulayabiliriz.