Réseaux de neurones à une couche
Pour vous familiariser avec les réseaux de neurones, commencez par une simple approximation d’une fonction.
Vous allez entraîner un réseau de neurones à approximer une correspondance entre une entrée x et une sortie y. Elles sont liées par la fonction racine carrée, c’est‑à‑dire \(y = \sqrt{x}\).
Le vecteur d’entrée x vous est fourni. Vous calculerez d’abord la racine carrée de x avec la fonction sqrt() de Numpy, afin de générer la série de sortie y. Vous créerez ensuite un réseau de neurones simple et l’entraînerez sur la série x.
Après l’entraînement, vous tracerez la série y ainsi que la sortie du réseau de neurones, pour voir à quel point le réseau approxime la fonction racine carrée.
Les objets Sequential et Dense de la bibliothèque Keras sont également disponibles dans votre espace de travail.
Cet exercice fait partie du cours
Gestion quantitative des risques en Python
Instructions
- Créez les valeurs de sortie d’entraînement avec la fonction
sqrt()de Numpy. - Créez le réseau de neurones avec une couche cachée de 16 neurones, une valeur d’entrée et une valeur de sortie.
- Compilez et entraînez le réseau de neurones sur les valeurs d’entraînement, pendant 100 époques.
- Tracez les valeurs d’entraînement (en bleu) face aux valeurs prédites par le réseau de neurones.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()