Keras - Aprendizaje profundo

Keras proporciona un marco completo para crear cualquier tipo de redes neuronales. Keras es innovador y muy fácil de aprender. Admite una red neuronal simple a un modelo de red neuronal muy grande y complejo. Entendamos la arquitectura del marco de Keras y cómo Keras ayuda en el aprendizaje profundo en este capítulo.

Arquitectura de Keras

La API de Keras se puede dividir en tres categorías principales:

  • Model
  • Layer
  • Módulos centrales

En Keras, cada RNA está representada por Keras Models. A su vez, cada modelo de Keras es una composición deKeras Layers y representa capas ANN como entrada, capa oculta, capas de salida, capa de convolución, capa de agrupación, etc., modelo de Keras y acceso a capa Keras modules para función de activación, función de pérdida, función de regularización, etc. Utilizando el modelo Keras, Keras Layer y los módulos Keras, cualquier algoritmo ANN (CNN, RNN, etc.,) se puede representar de una manera simple y eficiente.

El siguiente diagrama muestra la relación entre el modelo, la capa y los módulos centrales:

Veamos la descripción general de los modelos Keras, capas Keras y módulos Keras.

Modelo

Los modelos Keras son de dos tipos, como se menciona a continuación:

Sequential Model- El modelo secuencial es básicamente una composición lineal de capas de Keras. El modelo secuencial es sencillo, mínimo y tiene la capacidad de representar casi todas las redes neuronales disponibles.

Un modelo secuencial simple es el siguiente:

from keras.models import Sequential 
from keras.layers import Dense, Activation 

model = Sequential()  
model.add(Dense(512, activation = 'relu', input_shape = (784,)))

Dónde,

  • Line 1 importaciones Sequential modelo de modelos Keras

  • Line 2 importaciones Dense capa y Activation módulo

  • Line 4 crear un nuevo modelo secuencial usando Sequential API

  • Line 5 agrega una capa densa (API densa) con relu función de activación (mediante el módulo de activación).

Sequential modelo expone Modelclass para crear modelos personalizados también. Podemos usar el concepto de subclasificación para crear nuestro propio modelo complejo.

Functional API - La API funcional se utiliza básicamente para crear modelos complejos.

Capa

Cada capa de Keras en el modelo de Keras representa la capa correspondiente (capa de entrada, capa oculta y capa de salida) en el modelo de red neuronal propuesto. Keras proporciona una gran cantidad de capas preconstruidas para que cualquier red neuronal compleja se pueda crear fácilmente. Algunas de las capas importantes de Keras se especifican a continuación,

  • Capas centrales
  • Capas de convolución
  • Capas de agrupación
  • Capas recurrentes

Un código Python simple para representar un modelo de red neuronal usando sequential El modelo es el siguiente:

from keras.models import Sequential 
from keras.layers import Dense, Activation, Dropout model = Sequential() 

model.add(Dense(512, activation = 'relu', input_shape = (784,))) 
model.add(Dropout(0.2)) 
model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2)) 
model.add(Dense(num_classes, activation = 'softmax'))

Dónde,

  • Line 1 importaciones Sequential modelo de modelos Keras

  • Line 2 importaciones Dense capa y Activation módulo

  • Line 4 crear un nuevo modelo secuencial usando Sequential API

  • Line 5 agrega una capa densa (API densa) con relu función de activación (mediante el módulo de activación).

  • Line 6 agrega una capa de abandono (API de abandono) para manejar el ajuste excesivo.

  • Line 7 agrega otra capa densa (API densa) con relu función de activación (mediante el módulo de activación).

  • Line 8 agrega otra capa de abandono (API de abandono) para manejar el ajuste excesivo.

  • Line 9 agrega una capa densa final (API densa) con softmax función de activación (mediante el módulo de activación).

Keras también ofrece opciones para crear nuestras propias capas personalizadas. La capa personalizada se puede crear subclasificando elKeras.Layer class y es similar a la subclasificación de modelos de Keras.

Módulos centrales

Keras también proporciona muchas funciones integradas relacionadas con la red neuronal para crear correctamente el modelo de Keras y las capas de Keras. Algunas de las funciones son las siguientes:

  • Activations module - La función de activación es un concepto importante en ANN y los módulos de activación proporcionan muchas funciones de activación como softmax, relu, etc.,

  • Loss module - El módulo de pérdida proporciona funciones de pérdida como mean_squared_error, mean_absolute_error, poisson, etc.

  • Optimizer module - El módulo optimizador proporciona una función optimizadora como adam, sgd, etc.,

  • Regularizers - El módulo regularizador proporciona funciones como regularizador L1, regularizador L2, etc.

Aprendamos los módulos de Keras en detalle en el próximo capítulo.