TensorFlow è una libreria di apprendimento automatico completa?


11

Sono nuovo di TensorFlow e ho bisogno di capire le capacità e le carenze di TensorFlow prima di poterlo utilizzare. So che si tratta di un framework di apprendimento profondo, ma a parte quello che altri algoritmi di apprendimento automatico possono usare con il flusso tensoriale. Ad esempio, possiamo usare SVM o foreste casuali usando TensorFlow? (So ​​che sembra folle)

In breve, voglio sapere quali algoritmi di Machine Learning sono supportati da TensorFlow. È solo un apprendimento profondo o qualcosa di più?


1
Supporto macchina vettoriale implementata in TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
Solo per essere sicuri: TensorFlow NON È una libreria di apprendimento profondo. Keras (che può usare TensorFlow come Backend) è una libreria del genere. TensorFlow è un modo intelligente per gestire calcoli pesanti (utilizzando un grafico computazionale) al fine di eseguirli su più hardware (CPU, GPU e altri).
Robin

Risposte:


15

Questa è una grande semplificazione eccessiva, ma oggi ci sono essenzialmente due tipi di librerie di machine learning:

  1. Apprendimento profondo (CNN, RNN, reti completamente connesse, modelli lineari)
  2. Tutto il resto (SVM, GBM, foreste casuali, Naive Bayes, K-NN, ecc.)

La ragione di ciò è che l'apprendimento profondo è molto più intenso dal punto di vista computazionale rispetto ad altri metodi di allenamento più tradizionali e quindi richiede un'intensa specializzazione della biblioteca (ad esempio, utilizzando una GPU e funzionalità distribuite). Se stai usando Python e stai cercando un pacchetto con la più ampia gamma di algoritmi, prova scikit-learn. In realtà, se si desidera utilizzare l'apprendimento approfondito e metodi più tradizionali, è necessario utilizzare più di una libreria. Non esiste un pacchetto "completo".


1
Questa risposta è ancora valida due anni dopo? Sembra che TensorFlow sia cresciuto molto da allora.
John Sullivan,

7

TensorFlow è particolarmente indicato per l'apprendimento profondo, vale a dire reti neurali con molti strati e strane topologie.

Questo è tutto. È un'alternativa a Theano , ma sviluppato da Google.

Sia in TensorFlow che in Theano, programmate simbolicamente. Definisci la tua rete neurale sotto forma di operazioni algeabre (questi nodi vengono moltiplicati per questi pesi e quindi viene applicata una trasformazione non lineare, bla bla bla), che internamente sono rappresentate da un grafico (che nel caso di TensorFlow, ma non Theano, puoi effettivamente vedere per eseguire il debug della tua rete neurale).

Quindi, TensorFlow (o Theano) offre algoritmi di ottimizzazione che fanno il duro lavoro di capire quali pesi minimizzano qualunque funzione di costo tu voglia minimizzare. Se la tua rete neurale ha lo scopo di risolvere un problema di regressione, potresti voler minimizzare la somma delle differenze al quadrato tra i valori previsti e i valori reali. TensorFlow fa il duro lavoro di differenziare la vostra funzione di costo e tutto il resto.

EDIT: Hai dimenticato di menzionare che, naturalmente, gli SVM possono essere visti come un tipo di rete neurale , quindi ovviamente puoi addestrare un SVM usando gli strumenti di ottimizzazione di TensorFlow. Ma TensorFlow viene fornito solo con ottimizzatori basati sulla discesa del gradiente che sono un po 'stupidi da usare per addestrare un SVM a meno che tu non abbia molte osservazioni, poiché ci sono ottimizzatori specifici per SVM che non si bloccano nei minimi locali.

Inoltre, probabilmente vale la pena ricordare, che TensorFlow e Theano sono framework piuttosto di basso livello. La maggior parte delle persone usa framework costruiti su di essi e che sono più facili da usare. Non suggerirò qui nessuno, perché ciò genererebbe una propria discussione. Vedi qui suggerimenti per pacchetti facili da usare.


1
Theano non è sviluppato da Google. Secondo il loro sito Web , è "sviluppato principalmente dagli accademici". Tensorflow è stato sviluppato da Google .
Dantiston,

1
@dantiston si, lo so. Volevo dire "TensorFlow è un'alternativa a Theano e TensorFlow è sviluppato da Google". Mi riferivo a TensorFlow, non a Theano. Formulazioni sbagliate, scusa.
Ricardo Cruz,

5

Ryan Zotti offre una buona risposta, ma questo sta cambiando. Con l'aggiunta dei metodi Random Forest , Gradient Boosting e Bayesian TensorFlow, si dirige nella direzione di diventare una soluzione completa. Gli algoritmi più tradizionali sono elencati qui . TensorFlow ha una promessa particolare, poiché è progettato per scalare bene e supporta le operazioni della GPU. Tuttavia, scikit learnè il tradizionale sportello unico in cui è possibile trovare molti algoritmi standard. Di solito non sono gli ultimi e i più grandi, quindi probabilmente vorrai anche biblioteche specializzate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.