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.