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.