Codificando como mudanças nos pesos afetam a acurácia
Agora você vai alterar pesos em uma rede real e ver como isso afeta a acurácia do modelo!
Dê uma olhada na seguinte rede neural:

Seus pesos já foram carregados como weights_0. Sua tarefa neste exercício é atualizar apenas um peso em weights_0 para criar weights_1, que gere uma previsão perfeita (em que o valor previsto é igual a target_actual: 3).
Use papel e caneta, se necessário, para testar diferentes combinações. Você usará a função predict_with_network(), que recebe um array de dados como primeiro argumento e os pesos como segundo argumento.
Este exercício faz parte do curso
Introdução a Deep Learning em Python
Instruções do exercício
- Crie um dicionário de pesos chamado
weights_1, no qual você tenha alterado 1 peso deweights_0(você só precisa fazer 1 mudança emweights_0para gerar a previsão perfeita). - Obtenha previsões com os novos pesos usando a função
predict_with_network()cominput_dataeweights_1. - Calcule o erro para os novos pesos subtraindo
target_actualdemodel_output_1. - Clique em 'Enviar Resposta' para ver como os erros se comparam!
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)