Redes neurais de camada única
Para que você se sinta confortável com o uso de redes neurais, será útil começar com uma aproximação simples de uma função.
Você treinará uma rede neural para aproximar um mapeamento entre uma entrada, x
, e uma saída, y
. Eles estão relacionados pela função de raiz quadrada, ou seja, \(y = \sqrt{x}\).
O vetor de entrada x
é fornecido a você. Primeiro, você calculará a raiz quadrada de x
usando a função sqrt()
do Numpy, gerando a série de saída y
. Em seguida, você criará uma rede neural simples e treinará a rede na série x
.
Após o treinamento, você plotará a série y
e a saída da rede neural, para ver o quanto a rede se aproxima da função de raiz quadrada.
Os objetos Sequential
e Dense
da biblioteca Keras também estão disponíveis em seu espaço de trabalho.
Este exercício faz parte do curso
Gerenciamento quantitativo de riscos 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 a rede neural nos valores de treinamento, para 100 épocas
- Trace o gráfico dos valores de treinamento (em azul) em relação aos 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()