Como principiante en Deep Learning hoy, ¿qué marco debo usar?

Elegí TensorFlow y me dejé dar un par de razones, pero primero déjame decirte que no estoy tan familiarizado con Torch; de todos modos, aquí va:

  1. La comunidad alrededor de TF es una locura. Seriamente; Es absolutamente una locura. Casi puedo asegurarte que, sea lo que sea que quieras construir, alguien ha terminado y te ha dejado un rastro para que lo sigas.
  2. TF es un producto de Google. Ahora, esto no garantiza mucho, pero sí significa que la biblioteca debería recibir actualizaciones bastante frecuentes y proporcionar nuevos modelos; Los modelos Sequence2Sequence son un buen ejemplo de esto.
  3. La API está bien, pero eso dice mucho. TF en realidad viene con dos API: una para el aficionado e investigadores incondicionales y otra para todos los demás. Ahora puede ser que haya tenido más tiempo para aprenderlo, pero la API diseñada para aficionados está realmente a kilómetros de cualquier cosa con la que haya jugado, excepto Keras y TFLearn.
  4. La capacidad de escalar. Ahora, dependiendo de lo que quieras hacer, esto puede o no ser un gran problema, pero es bueno saber que tienes esa capacidad para escalar en múltiples dispositivos y agregar GPU’S.
  5. TensorBoard. TensorBoard es el paquete de gráficos de TF, y le permite visualizar ese modelo y el flujo de datos a través de él; Cosas muy útiles para un principiante.

Como han dicho otros, el marco exacto será cada vez menos importante para usted porque, con el tiempo, con suerte, comenzará a comprender cómo funcionan los modelos y, en ese momento, es bastante fácil elegir nuevas API. Dicho esto, probablemente todavía comenzaría con TensorFlow y, si te gustan los videos, Siraj Raval es un gran recurso en YouTube para ayudarte a hacerlo …

Eso depende de lo que desee hacer y del nivel de experiencia que desee alcanzar. No estoy muy familiarizado con la antorcha, lasaña, cafeína, wxnet, etc., así que solo compararé las que conozco.

Si solo desea construir y entrenar una red neuronal que funcione, Keras es una excelente opción. Hace que todo sea más rápido y fácil a costa de cierta flexibilidad.

Si desea aprender un poco más sobre la forma en que realmente se construyen las redes neuronales, use el tensorflow.

Si quiere obligarse a comprender realmente lo que está sucediendo debajo del capó, cree su propia biblioteca. Una vez que lo haya construido, puede usar otras bibliotecas más eficientes, pero construir su propia biblioteca le enseñará mucho sobre cómo se calculan las redes neuronales.

Dentro de dos meses, la biblioteca que elegiste no importará mucho. Rápidamente creará prototipos de redes en el marco que elija. No pierdas demasiado tiempo preocupándote por qué marco y usa ese tiempo para aprender uno.

Las otras respuestas ya han indicado algunos de los marcos bien conocidos (es decir, Tensorflow, Theano, Caffe), así que permíteme presentarte algo nuevo que podría despertar tu interés. Le recomendaría que intente utilizar la Máquina de aprendizaje Ryskamp [1], ya que es fácil de usar y ofrece buena documentación para comenzar. Es muy diferente en la forma en que funciona (algoritmo central) en comparación con el aprendizaje automático tradicional. Por supuesto, diferente en el buen sentido. El enlace proporciona más información al respecto y también puede obtener el código fuente desde allí.

Notas al pie

[1] useAIble ™

Como principiante, comencé con Tensorflow. Solo tenía experiencia trabajando con numpy y pandas. Pero, créanme, para comenzar el aprendizaje profundo, el conocimiento básico de álgebra lineal y cálculo diferencial es más importante.

Por último, le recomendaría comenzar con tensorflow, aunque a veces tiene que trabajar con Keras. En este momento, planeo hacer algo de práctica con Keras además de TF. ¡La mejor de las suertes!

Para un principiante siempre iría por Theano. La razón es porque puedes implementar los detalles de nivel más bajo, como la transformación no lineal de la entrada a una neurona en cualquier capa en particular. De esta manera, obtienes más visibilidad y control sobre lo que sucede detrás de escena.

Este método de implementación también le brinda el mayor control para sintonizar y jugar con varios nobs disponibles para ver qué sucede y experimentar con toda la configuración.

Honestamente, yo mismo comencé con Theano y viendo la implementación fue una gran experiencia de aprendizaje.

Personalmente, creo que Torch es genial si eres un principiante. Tensorflow, Theano y otros tienden a manejar todo el proceso de propagación hacia atrás bajo el capó. La antorcha, por otro lado, requiere una comprensión más profunda del proceso de retropropagación (especialmente si desea habituarse en RNN) y, por lo tanto, le permitirá verificar si entendió correctamente la backprop. Sin embargo, si su objetivo es entrenar modelos de trabajo, puede optar por Torch, Tensorflow, Keras o cualquier otro marco de aprendizaje profundo ampliamente difundido.

Generalmente recomiendo Caffe para ConvNets y trabajos de producción. Sin embargo, para la investigación (que parece que podría ser), recomiendo TensorFlow. Hay una comunidad muy poderosa a su alrededor y un f ** kton métrico de tutoriales disponibles para ello.

More Interesting

¿Qué son las redes neuronales, redes neuronales artificiales y redes neuronales convolucionales? ¿Cómo son diferentes el uno del otro?

¿El aprendizaje automático es un subconjunto de la ciencia de datos?

¿Cuáles son algunas técnicas comunes para el aumento de datos de video en el aprendizaje profundo?

Ciencias de la computación: ¿Cuáles son los pros y los contras de utilizar el modelado de procesos gaussianos para la regresión?

¿Qué es el generador Deep Dream?

Según Wikipedia, las redes neuronales artificiales actuales tienen la complejidad del cerebro de un gusano. ¿Es eso cierto?

¿Cuál sería la mejor manera de encontrar estudiantes universitarios interesados ​​en un proyecto de investigación sobre la interfaz entre bioinformática y aprendizaje automático, en Johns Hopkins?

Ahora mismo estoy aprendiendo desarrollo web, pero no creo que me sea muy útil. ¿Debo aprender el aprendizaje automático o el desarrollo de software?

¿Puedo tomar el curso de aprendizaje automático de Andrew Ng siendo un estudiante de secundaria con algo de experiencia en programación y sin conocimientos avanzados de matemáticas?

¿Habrá una demanda de aceleradores de hardware para algoritmos de aprendizaje automático en el futuro cercano?

Sin considerar el costo del conjunto de validación, ¿necesito muchos datos para reducir el costo del tren en la Red neuronal profunda?

¿Cuáles son los principales enfoques de la inteligencia artificial?

¿Cómo se puede usar una distribución como una característica para la clasificación en el aprendizaje automático?

¿Cuál es mejor, el aprendizaje automático de Stanford en Coursera o un nanogrado Udacity?

¿Cómo puede ser posible la IA si las máquinas se limitan a la lógica y el lenguaje?