モデルと損失関数の定義
この演習では、クレジットカード保有者が延滞(デフォルト)するかどうかを予測するニューラルネットワークを学習させます。学習に使う特徴量と目的変数は、Python シェル上でそれぞれ borrower_features と default として利用できます。重みとバイアスは前の演習で定義済みです。
predictions レイヤーは \(\sigma(layer1*w2+b2)\) として定義されています。ここで、\(\sigma\) はシグモイド活性化関数、layer1 は最初の隠れ全結合レイヤーのノードのテンソル、w2 は重みのテンソル、b2 はバイアスのテンソルです。
学習可能な変数は w1、b1、w2、b2 です。さらに、次の操作がインポート済みです:keras.activations.relu() と keras.layers.Dropout()。
この演習はコースの一部です
Introduction to TensorFlow in Python
演習の手順
- 最初のレイヤーに ReLU(整流線形)活性化関数を適用します。
layer1に 25% のドロップアウトを適用します。- 交差エントロピー損失関数に、目的変数
targetsと予測値predictionsをこの順で渡します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define the model
def model(w1, b1, w2, b2, features = borrower_features):
# Apply relu activation functions to layer 1
layer1 = keras.activations.____(matmul(features, w1) + b1)
# Apply dropout rate of 0.25
dropout = keras.layers.Dropout(____)(____)
return keras.activations.sigmoid(matmul(dropout, w2) + b2)
# Define the loss function
def loss_function(w1, b1, w2, b2, features = borrower_features, targets = default):
predictions = model(w1, b1, w2, b2)
# Pass targets and predictions to the cross entropy loss
return keras.losses.binary_crossentropy(____, ____)