
El aprendizaje profundo es un conjunto de algoritmos de aprendizaje automático que modelan abstracciones de alto nivel en datos utilizando arquitecturas que consisten en muchas transformaciones no lineales. De acuerdo, esta frase suena amenazante. Pero todo no da tanto miedo si Francois Schollay, quien creó Keras, la biblioteca más poderosa para trabajar con redes neuronales, habla sobre el aprendizaje profundo. Experimente el aprendizaje profundo con ejemplos prácticos de una amplia variedad de áreas. El libro está dividido en dos partes: la primera tiene los fundamentos teóricos, la segunda está dedicada a resolver problemas específicos. Esto le permitirá no solo comprender los conceptos básicos de DL, sino también aprender a utilizar nuevas oportunidades en la práctica.
El aprendizaje es un viaje de toda la vida, especialmente en el campo de la inteligencia artificial, donde hay más incógnitas que certezas. En el interior hay un extracto de "Investigación y monitoreo de modelos de aprendizaje profundo utilizando Keras y devoluciones de llamada de TensorBoard".
Acerca de este libro
El libro está escrito para todos los que quieran comenzar a estudiar tecnología de aprendizaje profundo desde cero o ampliar sus conocimientos. Los ingenieros de aprendizaje automático, los desarrolladores de software y los estudiantes encontrarán mucho valor en estas páginas.
Este libro ofrece un estudio práctico del mundo real del aprendizaje profundo. Intentamos evitar las fórmulas matemáticas, prefiriendo explicar conceptos cuantitativos utilizando fragmentos de código y formar una comprensión práctica de las ideas básicas de la máquina y el aprendizaje profundo.
Verá más de 30 ejemplos de código de programa con comentarios detallados, recomendaciones prácticas y explicaciones simples y generalizadas de todo lo que necesita saber para utilizar el aprendizaje profundo para resolver problemas específicos.
Los ejemplos utilizan el marco de aprendizaje profundo de Keras escrito en Python y la biblioteca TensorFlow como mecanismo interno. Keras es uno de los marcos de aprendizaje profundo más populares y de más rápido crecimiento. A menudo se recomienda como la herramienta más exitosa para que los principiantes aprendan el aprendizaje profundo.
Después de leer este libro, comprenderá claramente qué es el aprendizaje profundo, cuando corresponde y qué limitaciones tiene. Aprenderá sobre el proceso estándar de interpretación y resolución de problemas de aprendizaje automático y cómo lidiar con problemas comunes. Aprenderá a usar Keras para resolver problemas prácticos, desde el reconocimiento de patrones hasta el procesamiento del lenguaje natural: clasificación de imágenes, pronóstico temporal, análisis de emociones, generación de imágenes y textos y mucho más.
Investigue y monitoree modelos de aprendizaje profundo utilizando las devoluciones de llamada de Keras y TensorBoard
En esta sección, veremos formas de obtener un acceso más completo a los mecanismos internos del modelo durante la capacitación y la gestión. Ejecutar el procedimiento de entrenamiento en un gran conjunto de datos y durar decenas de eras llamando a model.fit () o model.fit_generator () es como lanzar un avión de papel: dando un impulso inicial, ya no controlas su ruta de vuelo o sitio de aterrizaje. Para evitar resultados negativos (y la pérdida de un avión de papel), es mejor no usar un avión de papel, sino un dron controlado que analice el entorno, envíe información al operador y controle automáticamente los timones dependiendo de su estado actual. Las técnicas que se presentarán aquí convertirán la llamada a model.fit () de un avión de papel en un dron autónomo inteligente capaz de evaluar su estado y realizar oportunamente acciones de control.
Usar devoluciones de llamada para influir en el modelo durante el entrenamiento
Muchos aspectos del entrenamiento modelo no se pueden predecir de antemano. Por ejemplo, no se puede predecir de antemano el número de épocas que proporcionan el valor óptimo de las pérdidas en el conjunto de prueba. En los ejemplos citados hasta ahora, se ha utilizado una estrategia de aprendizaje con un número suficientemente grande de eras. Por lo tanto, el efecto del reentrenamiento se logró cuando la primera carrera se realiza por primera vez para averiguar el número requerido de eras de entrenamiento, y luego la segunda es nueva, desde el principio con el número óptimo de eras seleccionado. Por supuesto, esta es una estrategia bastante derrochadora.
Sería mucho mejor dejar de aprender tan pronto como resulte que la estimación de pérdidas en el conjunto de pruebas ha dejado de mejorar. Esto se puede implementar utilizando el mecanismo de devolución de llamada Keras. Una devolución de llamada es un objeto (una instancia de una clase que implementa métodos específicos), que se pasa al modelo a través de una llamada al ajuste y que el modelo llamará en diferentes puntos del proceso de aprendizaje. Tiene acceso a toda la información sobre el estado del modelo y su calidad y puede realizar las siguientes acciones: interrumpir el entrenamiento, guardar modelos, cargar diferentes conjuntos de pesas o cambiar el estado del modelo.
Estos son algunos ejemplos del uso de devoluciones de llamada:
- fijar el estado del modelo en los puntos de control: guardar los pesos actuales del modelo en diferentes puntos durante el entrenamiento;
- parada temprana: interrupción del entrenamiento cuando la estimación de pérdidas en los datos de prueba deja de mejorar (y, por supuesto, mantiene la mejor versión del modelo obtenido durante el entrenamiento);
- ajuste dinámico de los valores de algunos parámetros en el proceso de aprendizaje, por ejemplo, el paso de aprendizaje del optimizador;
- registrar calificaciones para los conjuntos de datos de entrenamiento y prueba durante el entrenamiento o visualizar las vistas recibidas por el modelo a medida que se actualizan: ¡una barra de progreso en Keras con la que ya está familiarizado es una devolución de llamada!
El módulo keras.callbacks incluye varias devoluciones de llamada incorporadas. Aquí hay una lista lejos de ser completa:
keras.callbacks.ModelCheckpoint keras.callbacks.EarlyStopping keras.callbacks.LearningRateScheduler keras.callbacks.ReduceLROnPlateau keras.callbacks.CSVLogger
Veamos algunos de ellos para tener una idea de cómo usarlos: ModelCheckpoint, EarlyStopping y ReduceLROnPlateau.
ModelCheckpoint y EarlyStopping CallbacksLa devolución de llamada EarlyStopping se puede utilizar para interrumpir el proceso de aprendizaje si la métrica objetivo monitoreada no ha mejorado en un número determinado de eras. Por ejemplo, esta devolución de llamada le permitirá interrumpir el entrenamiento después del inicio del efecto de reentrenamiento y evitar así volver a entrenar el modelo por menos eras. Esta devolución de llamada generalmente se usa en combinación con ModelCheckpoint, que le permite guardar el estado del modelo durante el entrenamiento (y, si es necesario, guardar solo el mejor modelo: la versión del modelo que ha alcanzado una mejor calidad al final de la era):
Reducir la devolución de llamada de PlateauEsta devolución de llamada se puede utilizar para reducir la velocidad de aprendizaje cuando la pérdida de datos de prueba ya no disminuye. Disminuir o aumentar la velocidad de aprendizaje en el punto de inflexión de la curva de pérdida es una estrategia efectiva para romper un mínimo local durante el entrenamiento. El siguiente ejemplo demuestra el uso de la devolución de llamada ReduceLROnPlateau:
Diseña tu devolución de llamadaSi durante el entrenamiento necesita realizar algunas acciones especiales que no están previstas por ninguna de las devoluciones de llamada incorporadas, puede escribir su propia devolución de llamada. Las devoluciones de llamada se implementan heredando de la clase keras.callbacks.Callback. Puede implementar cualquiera de los siguientes métodos con nombres que se invocarán en los momentos apropiados
Todos estos métodos se llaman con los registros de argumentos: un diccionario que contiene información sobre el paquete anterior, la era o el ciclo de capacitación: métricas de capacitación y verificación, etc. Además, la devolución de llamada tiene acceso a los siguientes atributos:
- self.model: una instancia del modelo que causó esta devolución de llamada;
- self.validation_data: el valor pasado al método de ajuste como datos de validación.
Aquí hay un ejemplo simple de una devolución de llamada no estándar que guarda en el disco (como las matrices de Numpy) la activación de todas las capas del modelo después del final de cada era, calculada a partir de la primera muestra en el conjunto de prueba:
Esto es todo lo que necesita saber sobre devoluciones de llamada, todo lo demás son detalles técnicos, información sobre la cual puede encontrarse fácilmente. Ahora puede registrar cualquier información o controlar el modelo Keras durante el entrenamiento.
Sobre el autor

Francois Chollet se dedica al aprendizaje profundo en Google, Mountain View, California. Es el creador de Keras, una biblioteca de aprendizaje profundo, y miembro del proyecto de marco de aprendizaje automático TensorFlow. También se dedica a la investigación en el campo del aprendizaje automático, centrándose en el reconocimiento de patrones y la aplicación del aprendizaje automático al razonamiento formal. Él habló en las principales conferencias en este campo, incluidas la Conferencia sobre Visión por Computadora y Reconocimiento de Patrones (CVPR), Conferencia y Taller sobre Sistemas de Procesamiento de Información Neural (NIPS), Conferencia Internacional sobre Representaciones de Aprendizaje (ICLR), etc. .
»Se puede encontrar más información sobre el libro en
el sitio web del editor»
Contenidos»
ExtractoCupón de 20% de descuento para vendedores ambulantes -
Aprendizaje profundo con Python