重みの変化が精度に与える影響をコードで確認する
実際のネットワークで重みを変更し、モデル精度への影響を確認してみましょう!
次のニューラルネットワークを見てください。

その重みは weights_0 としてあらかじめ読み込まれています。この演習のタスクは、weights_0 の1つだけの重みを更新して weights_1 を作成し、完全な予測(予測値が target_actual と等しい:3)を出すことです。
必要であれば紙とペンを使って、さまざまな組み合わせを試してみてください。ここでは predict_with_network() 関数を使います。第1引数にデータの配列、第2引数に重みを渡します。
この演習はコースの一部です
Pythonで学ぶDeep Learning入門
演習の手順
weights_0から1つの重みだけを変更した、weights_1という名前の重みの辞書を作成します(完全な予測を得るにはweights_0への編集は1回だけで十分です)。predict_with_network()関数にinput_dataとweights_1を渡して、新しい重みで予測を取得します。model_output_1からtarget_actualを引いて、新しい重みでの誤差を計算します。- 'Submit Answer' を押して、誤差を比較してみましょう!
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)