Keras - Aprendizagem profunda

Keras fornece uma estrutura completa para criar qualquer tipo de rede neural. Keras é inovador e muito fácil de aprender. Ele suporta rede neural simples para modelo de rede neural muito grande e complexo. Vamos entender a arquitetura da estrutura Keras e como Keras ajuda no aprendizado profundo neste capítulo.

Arquitetura de Keras

Keras API pode ser dividida em três categorias principais -

  • Model
  • Layer
  • Módulos principais

Em Keras, cada RNA é representado por Keras Models. Por sua vez, cada modelo Keras é uma composição deKeras Layers e representa camadas ANN como entrada, camada oculta, camadas de saída, camada de convolução, camada de pooling, etc., modelo de Keras e acesso à camada Keras modules para função de ativação, função de perda, função de regularização, etc., Usando o modelo Keras, camada Keras e módulos Keras, qualquer algoritmo ANN (CNN, RNN, etc.) pode ser representado de maneira simples e eficiente.

O diagrama a seguir descreve a relação entre o modelo, a camada e os módulos principais -

Vamos ver a visão geral dos modelos Keras, camadas Keras e módulos Keras.

Modelo

Os modelos Keras são de dois tipos, conforme mencionado abaixo -

Sequential Model- O modelo sequencial é basicamente uma composição linear de camadas Keras. O modelo sequencial é fácil, mínimo e tem a capacidade de representar quase todas as redes neurais disponíveis.

Um modelo sequencial simples é o seguinte -

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

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

Onde,

  • Line 1 importações Sequential modelo dos modelos Keras

  • Line 2 importações Dense camada e Activation módulo

  • Line 4 criar um novo modelo sequencial usando Sequential API

  • Line 5 adiciona uma camada densa (Dense API) com relu função de ativação (usando o módulo de ativação).

Sequential modelo expõe Modelclasse para criar modelos personalizados também. Podemos usar o conceito de subclasse para criar nosso próprio modelo complexo.

Functional API - A API funcional é basicamente usada para criar modelos complexos.

Camada

Cada camada Keras no modelo Keras representa a camada correspondente (camada de entrada, camada oculta e camada de saída) no modelo de rede neural proposto. Keras fornece muitas camadas pré-construídas para que qualquer rede neural complexa possa ser criada facilmente. Algumas das camadas Keras importantes são especificadas abaixo,

  • Camadas principais
  • Camadas de Convolução
  • Camadas de pooling
  • Camadas Recorrentes

Um código python simples para representar um modelo de rede neural usando sequential modelo é o seguinte -

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'))

Onde,

  • Line 1 importações Sequential modelo dos modelos Keras

  • Line 2 importações Dense camada e Activation módulo

  • Line 4 criar um novo modelo sequencial usando Sequential API

  • Line 5 adiciona uma camada densa (Dense API) com relu função de ativação (usando o módulo de ativação).

  • Line 6 adiciona uma camada de exclusão (API Dropout) para lidar com o sobreajuste.

  • Line 7 adiciona outra camada densa (Dense API) com relu função de ativação (usando o módulo de ativação).

  • Line 8 adiciona outra camada de eliminação (API Dropout) para lidar com o sobreajuste.

  • Line 9 adiciona camada densa final (Dense API) com softmax função de ativação (usando o módulo de ativação).

Keras também oferece opções para criar nossas próprias camadas personalizadas. Camada personalizada pode ser criada subclassificando oKeras.Layer classe e é semelhante à subclassificação dos modelos Keras.

Módulos principais

Keras também fornece várias funções integradas relacionadas à rede neural para criar adequadamente o modelo Keras e as camadas Keras. Algumas das funções são as seguintes -

  • Activations module - A função de ativação é um conceito importante em ANN e os módulos de ativação fornecem muitas funções de ativação, como softmax, relu, etc.,

  • Loss module - O módulo de perda fornece funções de perda como mean_squared_error, mean_absolute_error, poisson, etc.,

  • Optimizer module - O módulo Otimizador fornece funções de otimizador como adam, sgd, etc.,

  • Regularizers - O módulo Regularizer fornece funções como regularizador L1, regularizador L2, etc.,

Vamos aprender os módulos Keras em detalhes no próximo capítulo.