O TensorFlow é uma biblioteca de aprendizado de máquina completa?

11

Eu sou novo no TensorFlow e preciso entender os recursos e as deficiências do TensorFlow antes de poder usá-lo. Eu sei que é uma estrutura de aprendizado profundo, mas, além daquela que outros algoritmos de aprendizado de máquina podemos usar com o fluxo tensorial. Por exemplo, podemos usar SVMs ou florestas aleatórias usando o TensorFlow? (Eu sei que isso parece loucura)

Em resumo, quero saber quais algoritmos de aprendizado de máquina são suportados pelo TensorFlow. É apenas aprendizado profundo ou algo mais?

Swaroop
fonte
11
Máquina de vetores de suporte implementado em TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater
3
Apenas para ter certeza: o TensorFlow NÃO É uma biblioteca de aprendizado profundo. O Keras (que pode usar o TensorFlow como back-end) é uma biblioteca desse tipo. O TensorFlow é uma maneira inteligente de lidar com cálculos pesados ​​(usando um gráfico computacional) para executá-los em vários hardwares (CPU, GPU e outros).
8248 Robin

Respostas:

15

Essa é uma grande simplificação excessiva, mas existem essencialmente dois tipos de bibliotecas de aprendizado de máquina disponíveis hoje:

  1. Aprendizado profundo (CNN, RNN, redes totalmente conectadas, modelos lineares)
  2. Tudo o resto (SVM, GBMs, florestas aleatórias, Naive Bayes, K-NN, etc)

A razão para isso é que o aprendizado profundo é muito mais intensivo em termos computacionais do que outros métodos de treinamento mais tradicionais e, portanto, requer intensa especialização da biblioteca (por exemplo, usando uma GPU e recursos distribuídos). Se você estiver usando Python e estiver procurando por um pacote com a maior variedade de algoritmos, tente o scikit-learn. Na realidade, se você quiser usar o aprendizado profundo e métodos mais tradicionais, precisará usar mais de uma biblioteca. Não há pacote "completo".

Ryan Zotti
fonte
11
Essa resposta ainda é válida dois anos depois? Parece que o TensorFlow cresceu muito desde então.
John Sullivan
7

O TensorFlow é especialmente indicado para aprendizado profundo, ou seja, redes neurais com muitas camadas e topologias estranhas.

É isso aí. É uma alternativa ao Theano , mas desenvolvido pelo Google.

No TensorFlow e no Theano, você programa simbolicamente. Você define sua rede neural na forma de operações algébricas (esses nós são multiplicados por esses pesos e, em seguida, uma transformação não linear é aplicada, bla bla bla), que internamente são representadas por um gráfico (que no caso do TensorFlow, mas não Theano, você pode realmente ver para depurar sua rede neural).

Então, o TensorFlow (ou Theano) oferece algoritmos de otimização que fazem o trabalho pesado de descobrir quais pesos minimizam qualquer função de custo que você queira minimizar. Se sua rede neural é destinada a resolver um problema de regressão, convém minimizar a soma das diferenças quadráticas entre os valores previstos e os valores reais. O TensorFlow faz o trabalho pesado de diferenciar sua função de custo e tudo mais.

EDIT: Esqueci de mencionar que, é claro, os SVMs podem ser vistos como um tipo de rede neural ; portanto, obviamente, você pode treinar um SVM usando as ferramentas de otimização do TensorFlow. Mas o TensorFlow vem apenas com otimizadores baseados em descida de gradiente que são um pouco estúpidos de usar para treinar um SVM, a menos que você tenha muitas observações, pois existem otimizadores específicos para SVM que não ficam presos nos mínimos locais.

Além disso, provavelmente vale a pena mencionar, que o TensorFlow e o Theano são estruturas de baixo nível. A maioria das pessoas usa estruturas que são construídas sobre elas e são mais fáceis de usar. Não vou sugerir aqui nenhum, porque isso geraria sua própria discussão. Veja aqui sugestões para pacotes fáceis de usar.

Ricardo Cruz
fonte
11
Theano não é desenvolvido pelo Google. Segundo o site , ele é "desenvolvido principalmente por acadêmicos". Tensorflow foi desenvolvido pelo Google .
precisa saber é o seguinte
11
@antiston sim, eu sei. Eu quis dizer "O TensorFlow é uma alternativa ao Theano e o TensorFlow é desenvolvido pelo Google". Eu estava me referindo ao TensorFlow, não ao Theano. Palavras ruins, desculpe.
Ricardo Cruz
5

Ryan Zotti oferece uma boa resposta, mas isso está mudando. Com a adição dos métodos Random Forest , Gradient Boosting e Bayesian TensorFlow, ele caminha na direção de se tornar uma solução completa. Algoritmos mais tradicionais estão listados aqui . O TensorFlow tem uma promessa específica, pois foi projetado para dimensionar bem e suporta operações da GPU. No entanto, scikit learné o balcão único tradicional, onde você pode encontrar muitos algoritmos padrão. Eles geralmente não são os melhores e mais recentes, então você provavelmente também desejará bibliotecas especializadas.

Adam Erickson
fonte