Redes neuronales monocapa
Para utilizar redes neuronales con comodidad, será útil empezar con una aproximación sencilla de una función.
Entrenarás una red neuronal para aproximar una asignación entre una entrada, x
, y una salida, y
. Están relacionadas por la función raíz cuadrada, es decir, \(y = \sqrt{x}\).
Se te da el vector de entrada x
. Primero calcularás la raíz cuadrada de x
utilizando la función sqrt()
de Numpy, lo que genera la serie de salida y
. A continuación, crearás una red neuronal sencilla y entrenarás la red con la serie x
.
Después del entrenamiento, representarás tanto la serie y
como la salida de la red neuronal, para ver cuánto aproxima la red la función raíz cuadrada.
Los objetos Sequential
y Dense
de la biblioteca Keras también están disponibles en tu espacio de trabajo.
Este ejercicio forma parte del curso
Gestión cuantitativa de riesgos en Python
Instrucciones del ejercicio
- Crea los valores de entrenamiento de salida utilizando la función
sqrt()
de Numpy. - Crea la red neuronal con una capa oculta de 16 neuronas, un valor de entrada y un valor de salida.
- Compila y ajusta la red neuronal con los valores de entrenamiento, para 100 épocas.
- Representa los valores de entrenamiento (en azul) contra los valores previstos de la red neuronal.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# 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()