TensorFlow tam bir Makine Öğrenim Kütüphanesi midir?


11

TensorFlow için yeniyim ve TensorFlow'u kullanmadan önce yeteneklerini ve eksikliklerini anlamam gerekiyor. Bunun derin bir öğrenme çerçevesi olduğunu biliyorum, ancak diğer makine öğrenme algoritmalarının tensör akışı ile birlikte kullanabileceğimizden başka. Örneğin, TensorFlow kullanarak SVM'ler veya rastgele ormanlar kullanabilir miyiz? (Bunun çılgınca geldiğini biliyorum)

Kısacası, hangi Makine Öğrenimi Algoritmalarının TensorFlow tarafından desteklendiğini bilmek istiyorum. Sadece derin öğrenme mi yoksa daha fazlası mı?


1
TensorFlow'da uygulanan destek vektör makinesi: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
Sadece emin olmak için: TensorFlow derin bir öğrenme kütüphanesi DEĞİLDİR. Keras (TensorFlow'u Arka Uç olarak kullanabilir) böyle bir kütüphanedir. TensorFlow, birden fazla donanımda (CPU, GPU ve diğerleri) çalıştırmak için ağır hesaplamaları (hesaplama grafiği kullanarak) işlemenin akıllı bir yoludur.
Robin

Yanıtlar:


15

Bu büyük bir aşırı basitleştirme, ancak bugün iki tür makine öğrenme kütüphanesi var:

  1. Derin öğrenme (CNN, RNN, tam bağlantılı ağlar, doğrusal modeller)
  2. Diğer her şey (SVM, GBM'ler, Rastgele Ormanlar, Naif Bayes, K-NN, vb.)

Bunun nedeni, derin öğrenmenin diğer geleneksel eğitim yöntemlerinden çok daha fazla hesaplama yoğunluğudur ve bu nedenle kütüphanenin yoğun bir şekilde uzmanlaştırılmasını gerektirir (örn. GPU ve dağıtılmış yetenekler kullanmak). Python kullanıyorsanız ve en geniş algoritmalara sahip bir paket arıyorsanız scikit-learn'u deneyin. Gerçekte, derin öğrenme ve daha geleneksel yöntemler kullanmak istiyorsanız, birden fazla kütüphane kullanmanız gerekir. "Tam" paket yok.


1
Bu cevap iki yıl sonra hala geçerli mi? TensorFlow o zamandan beri çok büyüdü.
john sullivan

7

TensorFlow özellikle derin öğrenme, yani çok katmanlı ve garip topolojilere sahip sinir ağları için endikedir.

Bu kadar. Theano'ya bir alternatiftir , ancak Google tarafından geliştirilmiştir.

Hem TensorFlow hem de Theano'da sembolik olarak programlıyorsunuz. Sinir ağınızı algeabreik işlemler şeklinde tanımlarsınız (bu düğümler bu ağırlıklarla çarpılır ve daha sonra dahili olarak bir grafikle temsil edilen (TensorFlow durumunda, ancak doğrusal olmayan bir dönüşüm uygulanır, bla bla bla), ancak Theano değil, aslında sinir ağınızda hata ayıklamak için görebilirsiniz).

Ardından, TensorFlow (veya Theano), hangi ağırlıkları en aza indirmek istediğiniz herhangi bir maliyet fonksiyonunu en aza indirgeme işini yoğunlaştıran optimizasyon algoritmaları sunar. Sinir ağınızın bir regresyon sorununu çözmesi gerekiyorsa, öngörülen değerler ile gerçek değerler arasındaki kare farkların toplamını en aza indirmek isteyebilirsiniz. TensorFlow, maliyet fonksiyonunuzu ve tüm bunları farklılaştırmak için yoğun bir çalışma yapar.

DÜZENLEME: Tabii ki, SVM'lerin bir tür sinir ağı olarak görülebildiğini , bu yüzden açıkça, bir SVM'yi TensorFlow optimizasyon araçlarını kullanarak eğitebileceğinizden bahsetmeyi unutmayın. Ancak TensorFlow, yalnızca çok fazla gözleminiz olmadıkça bir SVM'yi eğitmek için kullanmak için biraz aptal olan degrade iniş tabanlı optimize edicilerle birlikte gelir, çünkü SVM için yerel minima'da sıkışmayan belirli optimize ediciler vardır.

Ayrıca, muhtemelen TensorFlow ve Theano'nun oldukça düşük seviyeli çerçeveler olduğunu belirtmek gerekir. Çoğu kişi, üzerine inşa edilmiş ve kullanımı daha kolay çerçeveler kullanır. Burada hiçbirini önermeyeceğim, çünkü bu kendi tartışmasını yaratacaktır. Kullanımı kolay paketler için buradaki önerilere bakın .


1
Theano, Google tarafından geliştirilmemiştir. Web sitelerine göre , “öncelikle akademisyenler tarafından geliştirilmiştir”. Tensorflow Google tarafından geliştirilmiştir .
dantiston

1
@dantiston evet, biliyorum. "TensorFlow Theano'ya bir alternatif ve TensorFlow Google tarafından geliştirildi" demek istedim. Theano'ya değil, TensorFlow'a atıfta bulunuyordum. Kötü ifade, özür dilerim.
Ricardo Cruz

5

Ryan Zotti iyi bir cevap sunuyor, ama bu değişiyor. Eklenmesiyle birlikte Rastgele Ormanı , Gradyan Arttırılması ve karşı Bayes yöntemleri TensorFlow, bir tek durak çözüm olma yönünde ilerliyor. Daha geleneksel algoritmalar burada listelenmiştir . TensorFlow, iyi ölçeklendirmek için tasarlandığından ve GPU işlemlerini desteklediğinden, özel bir vaat vardır. Ancak, scikit learnbirçok standart algoritmayı bulabileceğiniz geleneksel tek noktadan dükkanı. Genellikle en yeni ve en büyük değiller, bu yüzden muhtemelen özel kütüphaneler de isteyeceksiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.