¿Es fácil entrenar un modelo de red neuronal profunda desde cero usando Keras?

La ventaja que Keras le brinda como marco de alto nivel es que viene repleto de utilidades para cargar datos fácilmente, construir el modelo apilando las capas como bloques de Lego y especificar cómo le gustaría entrenar. Para usar TensorFlow como back-end, suponiendo que tenga instalado TensorFlow, solo necesita asegurarse de que los archivos de configuración de Keras especifiquen TensorFlow como back-end.

Todo esto es posible porque Keras es de diseño modular y tiene muchas utilidades auxiliares, por lo que sí, en ese sentido, es fácil entrenar un modelo con Keras.

Pero como Chomba ha señalado, para los casos en que el conjunto de datos es grande o el modelo es complejo, luchar contra Keras para que se realice el entrenamiento podría ser más lento y sería mejor trabajar con TensorFlow y usar Pandas para cargar / manipule sus datos o incluso cree sus propios generadores de datos.

La mayor parte del tiempo entrenar en Keras será muy fácil, pero tenga en cuenta los escenarios en los que Keras no es ideal y sería mejor usar TensorFlow.

Depende de varios factores:

  1. Tamaño de datos, si el tamaño es muy grande, como ImageNet, es mejor encontrar una red previamente capacitada y usarla como un detector de características para su nuevo modelo. Luego, puede ajustar la red pre-entrenada junto con el nuevo modelo para un mejor rendimiento, esto se denomina aprendizaje de transferencia.
  2. Cuanto más grande sea el tamaño de la red neuronal profunda (DNN), más difícil es entrenar, más grande es la probabilidad de que sufra un sobreajuste y, por lo tanto, puede tener problemas para intentar que un DNN a gran escala funcione en realidad. Puede que ni siquiera sea la solución correcta para el problema.
  3. Encontrar los hiperparámetros correctos no es fácil la primera vez. Los DNN no son fáciles de entrenar, especialmente el hecho de que no es fácil encontrar los hiperparámetros correctos para el DNN para que funcione. Cuanto más grande es, más difícil es encontrar los hiperparámetros correctos.
  4. Disponibilidad de recursos computacionales: cuanto mayor sea el tamaño de los datos, más recursos computacionales + tiempo requerido. Cuanto mayor sea el DNN, más necesitará consumir recursos computacionales + tiempo.

Por lo tanto, entrenar un DNN desde cero no es muy fácil, por eso es mejor en la mayoría de los casos utilizar el aprendizaje de transferencia para problemas relacionados.

Espero que esto ayude

Muy fácil, aquí hay un ejemplo mnist:

Cargue los datos, establezca los tamaños de lote, etc. Luego cambie la forma de las imágenes y normalice:

¡Y tren!

¡Alrededor de 70 líneas de código para entrenar una red que obtiene una precisión del 99.25%, donde la mitad del código es una disputa de datos es bastante buena! Aquí está el enlace al código: fchollet / keras

Recomiendo ver todos los otros ejemplos geniales con Keras, ¡tienen cosas como Autoencoders Variacionales, LSTM Bidireccionales y Deep Dream!

fchollet / keras

Sí, si se compara con TensorFlow o Caffe.

Keras proporciona una API muy simple para escribir capas de redes neuronales. Se proporcionan muchas funciones de activación, optimizaciones, definiciones de capa, puede concentrarse en escribir capas y agregar estos parámetros a cada capa.

Si…. (?)

Documentación de Keras

More Interesting

Soy doctora en ingeniería informática con experiencia en aprendizaje automático y optimización bayesiana. Me encantaría evolucionar mi investigación hacia la mecánica estadística y la biofísica. ¿Cómo podría lograr eso? ¿Qué colaboraciones vale la pena buscar?

¿El análisis discriminante lineal funciona para distribuciones que no sean gaussianas?

¿Cuál es su proceso para diseñar funciones de pérdida para problemas de Machine Learning?

¿Qué empresas / startups en India están contratando para trabajos de ciencia de datos, análisis de datos o aprendizaje automático?

¿Cuál es la biblioteca de aprendizaje profundo más fácil de aprender?

¿Qué es la traducción automática estadística?

¿Cómo es un proyecto de visión por computadora "típico", de principio a fin?

¿Soy un desarrollador de dinosaurios si no uso Github, no conozco CI / CD y docker y solo conozco el aprendizaje profundo de la palabra de moda?

¿Es útil para un científico de datos conocer métodos ágiles como Scrum?

¿Cómo utilizaría el aprendizaje automático para resolver este tipo de preguntas: 1 + 4 = 5, 2 + 5 = 12, 3 + 6 = 21, 8 + 11 =?

¿Se puede extraer información significativa de un sistema caótico utilizando una red neuronal?

¿Qué es una capa de disminución de resolución en la red neuronal convolucional (CNN)?

¿Qué algoritmo de aprendizaje automático debo usar cuando tengo 5-6 valores categóricos independientes y 1 variable continua dependiente?

¿Por qué es beneficioso centrar y normalizar los datos antes de ejecutar el Análisis de componentes principales en él?

¿Cuáles son los algoritmos / documentos de última generación sobre clasificación y recuperación de imágenes?