始める無料で始める

重みの変化が精度に与える影響をコードで確認する

実際のネットワークで重みを変更し、モデル精度への影響を確認してみましょう!

次のニューラルネットワークを見てください。 Ch2Ex4

その重みは weights_0 としてあらかじめ読み込まれています。この演習のタスクは、weights_01つだけの重みを更新して 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_dataweights_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)
コードを編集して実行