Redes neurais de uma única camada
Para ganhar familiaridade com redes neurais, vale a pena começar com uma aproximação simples de uma função.
Você vai treinar uma rede neural para aproximar um mapeamento entre uma entrada, x, e uma saída, y. Elas estão relacionadas pela função de raiz quadrada, isto é, \(y = \sqrt{x}\).
O vetor de entrada x é fornecido. Primeiro, você vai calcular a raiz quadrada de x usando a função sqrt() do Numpy, gerando a série de saída y. Depois, você vai criar uma rede neural simples e treiná-la com a série x.
Após o treinamento, você vai traçar (plotar) a série y e a saída da rede neural para ver quão de perto a rede aproxima a função de raiz quadrada.
Os objetos Sequential e Dense da biblioteca Keras também estão disponíveis no seu workspace.
Este exercício faz parte do curso
Gerenciamento Quantitativo de Risco em Python
Instruções do exercício
- Crie os valores de treinamento de saída usando a função
sqrt()do Numpy. - Crie a rede neural com uma camada oculta de 16 neurônios, um valor de entrada e um valor de saída.
- Compile e ajuste (fit) a rede neural nos valores de treinamento por 100 épocas.
- Plote os valores de treinamento (em azul) em comparação com os valores previstos pela rede neural.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create the training values from the square root function
y = np.____(x)
# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))
# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)
## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()