Programmare come le variazioni dei pesi influiscono sull'accuratezza
Ora potrai modificare i pesi in una rete reale e vedere come influiscono sull'accuratezza del modello!
Dai un'occhiata alla seguente rete neurale:

I suoi pesi sono stati precaricati come weights_0. Il tuo compito in questo esercizio è aggiornare un singolo peso in weights_0 per creare weights_1, che produca una previsione perfetta (in cui il valore previsto è uguale a target_actual: 3).
Se necessario, usa carta e penna per sperimentare con combinazioni diverse. Userai la funzione predict_with_network(), che accetta un array di dati come primo argomento e i pesi come secondo argomento.
Questo esercizio fa parte del corso
Introduzione al Deep Learning in Python
Istruzioni dell'esercizio
- Crea un dizionario di pesi chiamato
weights_1in cui hai modificato 1 peso rispetto aweights_0(Ti basta un'unica modifica aweights_0per ottenere la previsione perfetta). - Ottieni le previsioni con i nuovi pesi usando la funzione
predict_with_network()coninput_dataeweights_1. - Calcola l'errore per i nuovi pesi sottraendo
target_actualdamodel_output_1. - Premi "Submit Answer" per vedere come si confrontano gli errori!
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# The data point you will make a prediction for
input_data = np.array([0, 3])
# Sample weights
weights_0 = {'node_0': [2, 1],
'node_1': [1, 2],
'output': [1, 1]
}
# The actual target value, used to calculate the error
target_actual = 3
# Make prediction using original weights
model_output_0 = predict_with_network(input_data, weights_0)
# Calculate error: error_0
error_0 = model_output_0 - target_actual
# Create weights that cause the network to make perfect prediction (3): weights_1
weights_1 = {'node_0': [____, ____],
'node_1': [____, ____],
'output': [____, ____]
}
# Make prediction using new weights: model_output_1
model_output_1 = ____
# Calculate error: error_1
error_1 = ____ - ____
# Print error_0 and error_1
print(error_0)
print(error_1)