Jestem nowy w TensorFlow i muszę zrozumieć możliwości i wady TensorFlow, zanim będę mógł z niego korzystać. Wiem, że jest to platforma do głębokiego uczenia się, ale oprócz tej, której innych algorytmów uczenia maszynowego możemy używać z przepływem tensora. Na przykład, czy możemy używać SVM lub losowych lasów za pomocą TensorFlow? (Wiem, że to brzmi szalenie)
Krótko mówiąc, chcę wiedzieć, które algorytmy uczenia maszynowego są obsługiwane przez TensorFlow. Czy to tylko głębokie uczenie się czy coś więcej?
machine-learning
Swaroop
źródło
źródło
Odpowiedzi:
Jest to duże uproszczenie, ale istnieją obecnie zasadniczo dwa rodzaje bibliotek uczenia maszynowego:
Powodem tego jest to, że głębokie uczenie się jest o wiele bardziej intensywne obliczeniowo niż inne bardziej tradycyjne metody szkolenia, a zatem wymaga intensywnej specjalizacji biblioteki (np. Przy użyciu karty graficznej i możliwości rozproszonych). Jeśli używasz języka Python i szukasz pakietu z największą liczbą algorytmów, spróbuj scikit-learn. W rzeczywistości, jeśli chcesz skorzystać z głębokiego uczenia się i bardziej tradycyjnych metod, musisz użyć więcej niż jednej biblioteki. Nie ma „kompletnego” pakietu.
źródło
TensorFlow jest szczególnie wskazany do głębokiego uczenia się, tj. Sieci neuronowych z dużą ilością warstw i dziwnymi topologiami.
Otóż to. Jest to alternatywa dla Theano , ale opracowana przez Google.
Zarówno w TensorFlow, jak i Theano programujesz symbolicznie. Swoją sieć neuronową definiujesz w formie operacji algeabreicznych (te węzły są mnożone przez te wagi, a następnie stosowana jest transformacja nieliniowa, bla bla bla), które wewnętrznie są reprezentowane przez wykres (który w przypadku TensorFlow, ale nie Theano, faktycznie można to zobaczyć w celu debugowania sieci neuronowej).
Następnie TensorFlow (lub Theano) oferuje algorytmy optymalizacji, które wykonują ciężką pracę nad ustaleniem, jakie wagi minimalizują funkcję kosztów, którą chcesz zminimalizować. Jeśli twoja sieć neuronowa ma rozwiązać problem regresji, możesz zminimalizować sumę kwadratowych różnic między wartościami przewidywanymi a wartościami rzeczywistymi. TensorFlow wykonuje ciężką pracę polegającą na różnicowaniu funkcji kosztów i tym podobnych.
EDYCJA: Zapomniałem wspomnieć, że SVM można oczywiście postrzegać jako rodzaj sieci neuronowej , więc oczywiście można trenować SVM za pomocą narzędzi optymalizacyjnych TensorFlow. Ale TensorFlow jest dostarczany tylko z optymalizatorami opartymi na zniżaniu gradientu, które są nieco głupie, aby używać SVM, chyba że masz dużo obserwacji, ponieważ istnieją specjalne optymalizatory dla SVM, które nie utknęły w lokalnych minimach.
Warto również wspomnieć, że TensorFlow i Theano to całkiem niskie frameworki. Większość ludzi korzysta z frameworków, które są na nich zbudowane i są łatwiejsze w użyciu. Nie zasugeruję tutaj żadnego, ponieważ spowodowałoby to własną dyskusję. Zobacz tutaj sugestie dotyczące łatwych w użyciu pakietów.
źródło
Ryan Zotti oferuje dobrą odpowiedź, ale to się zmienia. Dzięki dodaniu metod Random Forest , Gradient Boosting i Bayesian
TensorFlow
, firma zmierza w kierunku kompleksowego rozwiązania. Bardziej tradycyjne algorytmy są wymienione tutaj . TensorFlow ma szczególną obietnicę, ponieważ ma dobrze skalować i obsługuje operacje GPU. Jednakscikit learn
jest tradycyjnym one-stop shop, gdzie można znaleźć wiele standardowych algorytmów. Zazwyczaj nie są najnowszymi i najlepszymi, więc prawdopodobnie będziesz chciał także specjalistycznych bibliotek.źródło