Réseaux de neurones à une seule couche
Pour vous familiariser avec les réseaux de neurones, il est utile de commencer 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 de racine carrée, c.-à-d. \(y = \sqrt{x}\).
Le vecteur d'entrée x vous est fourni. Vous allez d'abord calculer la racine carrée de x avec la fonction sqrt() de Numpy pour générer la série de sortie y. Ensuite, vous créerez un petit réseau de neurones et l'entraînerez sur la série x.
Après l'entraînement, vous tracerez la série y et 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 aussi disponibles dans votre espace de travail.
Cette activité fait partie du cours
Gestion quantitative des risques en Python
Instructions de l’exercice
- Créez les valeurs d'entraînement de sortie à l'aide de 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) par rapport aux valeurs prédites par le réseau de neurones.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()