Soy nuevo en TensorFlow y necesito comprender las capacidades y las deficiencias de TensorFlow antes de poder usarlo. Sé que es un marco de aprendizaje profundo, pero aparte de lo que otros algoritmos de aprendizaje automático podemos usar con el flujo de tensor. Por ejemplo, ¿podemos usar SVM o bosques aleatorios usando TensorFlow? (Sé que esto suena loco)
En resumen, quiero saber qué algoritmos de aprendizaje automático son compatibles con TensorFlow. ¿Es solo aprendizaje profundo o algo más?
machine-learning
Swaroop
fuente
fuente
Respuestas:
Esta es una gran simplificación excesiva, pero actualmente hay dos tipos de bibliotecas de aprendizaje automático disponibles:
La razón de esto es que el aprendizaje profundo es mucho más computacionalmente intensivo que otros métodos de entrenamiento más tradicionales y, por lo tanto, requiere una especialización intensa de la biblioteca (por ejemplo, usando una GPU y capacidades distribuidas). Si está utilizando Python y está buscando un paquete con la mayor amplitud de algoritmos, intente scikit-learn. En realidad, si desea utilizar el aprendizaje profundo y métodos más tradicionales, deberá utilizar más de una biblioteca. No hay un paquete "completo".
fuente
TensorFlow está especialmente indicado para el aprendizaje profundo, es decir, redes neuronales con muchas capas y topologías extrañas.
Eso es. Es una alternativa a Theano , pero desarrollada por Google.
Tanto en TensorFlow como en Theano, usted programa simbólicamente. Defina su red neuronal en forma de operaciones algeabreicas (estos nodos se multiplican por estos pesos y luego se aplica una transformación no lineal, bla bla bla), que se representan internamente mediante un gráfico (que en el caso de TensorFlow, pero no Theano, puedes ver para depurar tu red neuronal).
Luego, TensorFlow (o Theano) ofrece algoritmos de optimización que hacen el trabajo pesado de averiguar qué pesos minimizan la función de costo que desea minimizar. Si su red neuronal está destinada a resolver un problema de regresión, es posible que desee minimizar la suma de las diferencias al cuadrado entre los valores pronosticados y los valores verdaderos. TensorFlow hace el trabajo pesado de diferenciar su función de costo y todo eso.
EDITAR: Olvidé mencionar que, por supuesto, los SVM pueden verse como un tipo de red neuronal , por lo que, obviamente, puede entrenar un SVM utilizando las herramientas de optimización TensorFlow. Pero TensorFlow solo viene con optimizadores basados en el descenso de gradiente que son un poco estúpidos para entrenar un SVM a menos que tenga muchas observaciones, ya que hay optimizadores específicos para SVM que no se atascan en los mínimos locales.
Además, probablemente valga la pena mencionar que TensorFlow y Theano son marcos de bastante bajo nivel. La mayoría de las personas usan marcos que están construidos sobre ellos y son más fáciles de usar. No sugeriré aquí ninguno, porque eso generaría su propia discusión. Vea aquí sugerencias para paquetes fáciles de usar.
fuente
Ryan Zotti ofrece una buena respuesta, pero esto está cambiando. Con la adición de los métodos Random Forest , Gradient Boosting y Bayesian
TensorFlow
, se encamina a convertirse en una solución única. Los algoritmos más tradicionales se enumeran aquí . TensorFlow tiene una promesa particular, ya que está diseñado para escalar bien y admite operaciones de GPU. Sin embargo,scikit learn
es la ventanilla única tradicional donde puede encontrar muchos algoritmos estándar. Por lo general, no son las últimas y mejores, por lo que es probable que también desee bibliotecas especializadas.fuente