20.7 Construyendo redes neuronales con Keras y TensorFlow

En el camino del aprendizaje sobre Machine Learning y Deep Learning, un paso fundamental es la construcción de redes neuronales. Keras, una API de alto nivel que se ejecuta sobre TensorFlow, es una de las herramientas más populares y poderosas para esta tarea. En este capítulo, exploraremos cómo construir redes neuronales usando Keras y TensorFlow, con un enfoque especial en funciones de activación e inicializadores de peso.

Introducción a Keras y TensorFlow

Keras es una interfaz para la biblioteca de aprendizaje automático de TensorFlow. Proporciona una forma simplificada de crear modelos de aprendizaje profundo, lo que permite a los desarrolladores centrarse en la arquitectura de las redes neuronales sin preocuparse por los detalles de bajo nivel de TensorFlow. TensorFlow, a su vez, es una biblioteca de código abierto para computación numérica y aprendizaje automático, que permite la ejecución eficiente de cálculos en CPU y GPU.

Construyendo redes neuronales con Keras

La construcción de una red neuronal con Keras comienza con la definición del modelo. El tipo de modelo más común es el Sequential, que permite la creación de modelos capa por capa de forma secuencial. Cada capa se agrega al modelo usando el método add().


desde keras.models importar secuencial
de keras.layers importar Denso

modelo = Secuencial()
model.add(Denso(unidades=64, activación='relu', input_dim=100))
model.add(Denso(unidades=10, activación='softmax'))

En este ejemplo, creamos un modelo con dos capas densas. La primera capa tiene 64 neuronas y usa la función de activación ReLU, mientras que la segunda capa, que es la capa de salida, tiene 10 neuronas y usa la función de activación softmax.

Funciones de activación

Las funciones de activación son un componente crítico de las redes neuronales porque ayudan a introducir no linealidades en el modelo, lo que le permite aprender patrones complejos en los datos. Algunas de las funciones de activación más comunes incluyen:

  • ReLU: funciona bien en la mayoría de los casos y se utiliza principalmente en capas ocultas.
  • Sigmoide: se utiliza a menudo en problemas de clasificación binaria en la capa de salida.
  • Softmax: Se utiliza en la capa de salida para problemas de clasificación multiclase, ya que devuelve la probabilidad de cada clase.
  • Tanh: una alternativa a ReLU que se puede utilizar en capas ocultas.

La elección de la función de activación puede tener un impacto significativo en el rendimiento del modelo y debe realizarse en función del tipo de problema y la distribución de datos.

Inicializadores de peso

Los inicializadores de peso son otra parte crucial de la construcción de redes neuronales. Definen la forma en que se establecen los pesos de las capas iniciales, lo que puede afectar la convergencia del entrenamiento y el rendimiento final del modelo. Algunos inicializadores de peso comunes incluyen:

  • Normal Aleatoria: Inicializa los pesos con valores tomados de una distribución normal.
  • Uniforme aleatorio: Inicializa los pesos con valores tomados de una distribución uniforme.
  • Ceros: Inicializa los pesos con ceros. Generalmente no se recomienda ya que puede provocar problemas de entrenamiento.
  • He Inicialización: Especialmente diseñado para redes ReLU, tiene en cuenta el tamaño de la capa anterior para ajustar la escala de peso.
  • Inicialización de Xavier/Glorot: una buena opción para capas con funciones de activación simétricas como tanh.

La elección del inicializador de peso debe estar alineada con la función de activación utilizada para garantizar que los gradientes fluyan correctamente durante el entrenamiento.

Ejemplo de uso de funciones de activación e inicializadores de peso


de keras.layers importar Denso
de keras.initializers importa HeNormal

modelo = Secuencial()
model.add(Denso(unidades=64, activación='relu', kernel_initializer=HeNormal(), input_dim=100))
model.add(Denso(unidades=10, activación='softmax'))

En este ejemplo, utilizamos la función de activación ReLU en la primera capa y el inicializador de peso HeNormal, que es una buena combinación para esta función de activación. La capa de salida utiliza la función de activación softmax, adecuada para clasificación de clases múltiples.

Compilando el modelo

Después de definir la arquitectura del modelo, el siguiente paso es compilarlo. Esto se hace utilizando el método compile() de la plantilla, donde se especifica el optimizador, la función de pérdida y las métricas de evaluación.


model.compile(optimizador='adam', pérdida='categorical_crossentropy', métricas=['exactitud'])

Aquí utilizamos el optimizador Adam, que es una opción común y eficiente para muchos problemas de aprendizaje profundo, y la función p.Erder categórico de entropía cruzada, que es adecuado para problemas de clasificación de clases múltiples.

Conclusión

La creación de redes neuronales eficaces con Keras y TensorFlow implica comprender las funciones de activación y los inicializadores de peso, que son fundamentales para el rendimiento del modelo. La elección correcta de estos componentes, junto con una sólida comprensión de la arquitectura de la red neuronal y el problema en cuestión, puede conducir a la construcción de modelos potentes y precisos para una amplia variedad de tareas de aprendizaje automático.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre la construcción de redes neuronales con Keras y TensorFlow es cierta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Construcción de redes neuronales con Keras y TensorFlow: compilación y entrenamiento de modelos de aprendizaje profundo

Siguiente página del libro electrónico gratuito:

75Construcción de redes neuronales con Keras y TensorFlow: compilación y entrenamiento de modelos de aprendizaje profundo

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.