En İyi 10 Makine Öğrenimi Çerçevesi

Yayınlanan: 2017-03-11
İçindekiler gösterisi
1. Tensör akışı
2. Kafe
3. Amazon Makine öğrenimi
4. Apaçi Şarkısı
5. Microsoft CNTK
6. Meşale
7. Anlaşma.NET
8. Apaçi Mahoutu
9. Theano
10. Beyin fırtınası

Makine öğrenimi (ML) dünyasına girerken, birçok alternatif arasından bir çerçeve seçmek göz korkutucu bir görev olabilir. İsimlere zaten aşina olabilirsiniz, ancak karar verme sürecinde seçenekleri değerlendirmek faydalı olacaktır. Makine öğrenimi dünyasında, özellikle yeni başlıyorsanız çok kafa karıştırıcı olabilecek farklı çerçeveler, kitaplıklar, uygulamalar, araç setleri ve veri kümeleri vardır. Uygulamanızı oluşturmak için birini seçmek söz konusu olduğunda, popüler makine öğrenimi çerçevelerine alışmak gereklidir. Bu nedenle, en iyi 10 makine öğrenimi çerçevesinin bir listesini derledik.

1. Tensör akışı

Tensorflow, Google Beyin Ekibi tarafından farklı dil anlama ve algısal görevler için geliştirilmiştir. Bu açık kaynak çerçevesi, derin sinir ağları ve makine öğrenimi üzerine kapsamlı araştırmalar için kullanılıyor. Google Brain'in ikinci makine öğrenimi çerçevesi olduğundan, çoğu yeni CPU ve GPU ile uyumludur. Gmail, Konuşma tanıma, Google Fotoğraflar ve hatta Google Arama gibi günlük olarak kullandığımız popüler Google hizmetlerinin çoğu Tensorflow ile donatılmıştır.

Tensorflow, karmaşık sayısal görevleri gerçekleştirmek için veri akışı grafiklerini kullanır. Matematiksel hesaplamalar, kenarları ve düğümleri içeren yönlendirilmiş bir grafik kullanılarak detaylandırılır. Bu düğümler, işlemleri uygulamak için kullanılır ve ayrıca verilerin beslendiği uç noktalar olarak da işlev görebilir. Kenarlar ayrıca farklı düğümler arasındaki giriş/çıkış ilişkilerini de temsil eder.

2. Kafe

Caffe, odak noktaları olarak daha iyi ifade, hız ve modülerlik ile tasarlanmış bir makine öğrenimi çerçevesidir. Konvolüsyonlu Sinir Ağlarından (CNN'ler) yararlanarak bilgisayarla görme/görüntü sınıflandırması için geliştirilmiştir. Caffe, uygulamak için herhangi bir kodlama gerektirmeyen önceden eğitilmiş bir dizi model olan Model Hayvanat Bahçesi ile popülerdir.

Araştırma ve geliştirmede daha başarılı olan Tensorflow'un aksine uygulama oluşturmak için daha uygundur. Metin, ses veya zaman serisi verileri içeren uygulamalarla uğraşıyorsanız, Caffe'nin bilgisayar görüşü dışında bir amaç için tasarlanmadığını unutmayın. Ancak, bir dizi donanım üzerinde dinamik olarak çalışabilir ve yalnızca tek bir bayrak kullanarak CPU ile GPU arasında geçiş yapma konusunda iyi bir iş çıkarır.

3. Amazon Makine öğrenimi

Amazon, AML adlı geliştiriciler için kendi makine öğrenimi hizmetini geliştirdi. Kodla gerçekten uğraşmadan karmaşık, üst düzey ve akıllı öğrenme modelleri geliştirmek için kullanılabilecek bir araç ve sihirbaz koleksiyonudur. AML kullanarak, uygulamalarınız için gereken tahminler, kullanımı daha kolay API'ler aracılığıyla elde edilebilir. AML'nin arkasındaki teknoloji, Amazon'un dahili veri bilimcileri tarafından Amazon Bulut Hizmetlerini güçlendirmek için kullanılır ve son derece ölçeklenebilir, dinamik ve esnektir. AML, Amazon S3, RDS veya Redshift'te depolanan verilere bağlanabilir ve yeni modeller oluşturmak için ikili sınıflandırma, regresyon veya çok sınıflı sınıflandırma gibi işlemleri gerçekleştirebilir.

4. Apaçi Şarkısı

Apache Singa, öncelikle model bölümlemeyi kullanarak ve eğitim sürecini paralel hale getirerek dağıtılmış derin öğrenmeye odaklanmıştır. Bir düğüm kümesinde çalışabilen basit ve sağlam bir programlama modeli sağlar. Ana uygulamalar görüntü tanıma ve doğal dil işlemedir (NLP).

Singa, sezgisel bir katman soyutlama tabanlı programlama modeliyle geliştirildi ve bir dizi derin öğrenme modelini destekliyor. Çok esnek bir mimariye dayandığı için hem senkron hem de asenkron ve hatta hibrit eğitim yöntemlerini çalıştırabilir. Singa'nın teknoloji yığını üç önemli bileşenden oluşur: IO, Model ve Core. IO bileşeni, ağa ve diske veri okumak/yazmak için kullanılan sınıfları içerir. Çekirdek bileşen, tensör işlemlerini ve bellek yönetimi işlevlerini yönetir. Model, makine öğrenimi modelleri için kullanılan algoritmaları ve veri yapılarını barındırır.

5. Microsoft CNTK

CNTK (Bilişsel Araç Takımı), Microsoft'un açık kaynaklı makine öğrenimi çerçevesidir. Konuşma tanıma alanında daha popüler olmasına rağmen, CNTK metin ve görüntü eğitimi için de kullanılabilir. CNN, LSTM, RNN, Sequence-to-Sequence ve Feed Forward gibi çok çeşitli makine öğrenimi algoritmalarını destekleyen, piyasadaki en dinamik makine öğrenimi çerçevelerinden biridir. CNTK, çeşitli CPU'lar ve GPU'lar dahil olmak üzere birden çok donanım türünü destekler.

Uyumluluk, CNTK'nın öne çıkan özelliklerinden biridir. Ayrıca, en etkileyici ve kullanımı kolay makine öğrenimi mimarisi olarak övülür. CNTK'da C++ ve python gibi dillerle çalışabilir ve yerleşik eğitim modellerini kullanabilir veya kendinizinkini oluşturabilirsiniz.

6. Meşale

Torch, özellikle Ubuntu kullanıyorsanız, hızlı ve kolay bir şekilde kurmak ve başlamak için tartışmasız en basit makine öğrenimi çerçevesi olabilir. 2002 yılında NYU'da geliştirilen Torch, Twitter ve Facebook gibi büyük teknoloji şirketlerinde yaygın olarak kullanılmaktadır. Torch, yaygın olmayan ancak okunması ve anlaşılması kolay olan Lua adlı bir dilde kodlanmıştır. Torch'un bazı avantajları, faydalı hata mesajları, büyük bir örnek kod deposu, kılavuzlar ve yardımcı bir topluluk ile bu samimi programlama diline atfedilebilir.

7. Hesap rd.NET

Accord.NET, .NET'e dayalı açık kaynaklı bir makine öğrenimi çerçevesidir ve bilimsel bilgi işlem için idealdir. Kalıp tanıma, yapay sinir ağları, istatistiksel veri işleme, doğrusal cebir, görüntü işleme vb. uygulamalar için kullanılabilecek farklı kitaplıklardan oluşur. Çerçeve, yükleyiciler, NuGet paketleri ve kaynak kodu olarak kullanılabilen kitaplıklardan oluşur. Accord.NET, kodun yeniden kullanılabilirliğini ve kademeli algoritmik değişiklikleri kolaylaştıran bir matris kitaplığına sahiptir.

8. Apaçi Mahatı

Apache Software Foundation tarafından ücretsiz ve açık kaynaklı bir proje olan Apache Mahout, kümeleme, sınıflandırma ve işbirliğine dayalı filtreleme gibi uygulamalar için ücretsiz dağıtılmış veya ölçeklenebilir ML çerçeveleri geliştirme hedefiyle oluşturulmuştur. Mahout'ta farklı hesaplama işlemleri için Java koleksiyonları ve Java kitaplıkları da mevcuttur.

Apache Mahout, MapReduce paradigması kullanılarak Hadoop'un üzerine dağıtılır. Harika bir uygulama, verileri anında içgörülere dönüştürmektir. Hadoop'ta depolanan Büyük Veri bağlandıktan sonra Mahout, veri bilimi araçlarının veri kümelerinden anlamlı modeller bulmasına yardımcı olabilir.

9. Theano

Theano, makine öğrenimi algoritmaları için dünyaca ünlü olan Montreal Üniversitesi'nde 2007 yılında geliştirildi. Düşük kaliteli bir makine öğrenimi çerçevesi olarak görülmesine rağmen, esnektir ve son derece hızlıdır. Çerçeve tarafından atılan hata mesajları, yararsız ve şifreli olmakla ünlüdür. Bunları bir kenara bırakırsak, Theano araştırma görevleri için daha uygun bir platformdur ve bu konuda son derece yardımcı olabilir.

Çoğunlukla Theano'ya API sarmalayıcıları gönderecek olan üst düzey soyutlama sistemleri için bir temel platform olarak kullanılır. Bazı popüler kütüphanelere örnek olarak Lazanya, Bloklar ve Keras verilebilir. Theano kullanmanın bir dezavantajı, çoklu GPU desteğine sahip olmak için bazı geçici çözümlerle uğraşmanız gerekmesidir.

10. Beyin fırtınası

Beyin fırtınası, basitliği ve esnekliği göz önüne alındığında ustalaşması en kolay makine öğrenimi çerçevelerinden biridir. Sinir ağlarıyla çalışmayı aynı anda daha hızlı ve eğlenceli hale getirir. Tamamen Python'da yazılan Beyin Fırtınası, birden çok arka uç sisteminde sorunsuz çalışacak şekilde oluşturuldu.

Beyin fırtınası, biri Numpy kitaplığı tarafından CPU'lar için, diğeri ise CUDA kullanan GPU'lardan yararlanmak için Python kullanan iki 'hander' veya veri API'si sağlar. Ağır kaldırmanın çoğu Python komut dosyasıyla yapılır, bu da zengin bir ön uç kullanıcı arayüzünün neredeyse olmadığı anlamına gelir.