始める無料で始める

モデルと損失関数の定義

この演習では、クレジットカード保有者が延滞(デフォルト)するかどうかを予測するニューラルネットワークを学習させます。学習に使う特徴量と目的変数は、Python シェル上でそれぞれ borrower_featuresdefault として利用できます。重みとバイアスは前の演習で定義済みです。

predictions レイヤーは \(\sigma(layer1*w2+b2)\) として定義されています。ここで、\(\sigma\) はシグモイド活性化関数、layer1 は最初の隠れ全結合レイヤーのノードのテンソル、w2 は重みのテンソル、b2 はバイアスのテンソルです。

学習可能な変数は w1b1w2b2 です。さらに、次の操作がインポート済みです: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(____, ____)
コードを編集して実行