Definire il modello e la funzione di perdita
In questo esercizio allenerai una rete neurale per prevedere se un titolare di carta di credito andrà in default. Le caratteristiche e i target che userai per addestrare la rete sono disponibili nella shell Python come borrower_features e default. Hai definito pesi e bias nell'esercizio precedente.
Nota che il livello predictions è definito come \(\sigma(layer1*w2+b2)\), dove \(\sigma\) è l'attivazione sigmoidale, layer1 è un tensore di nodi per il primo livello denso nascosto, w2 è un tensore di pesi e b2 è il tensore di bias.
Le variabili addestrabili sono w1, b1, w2 e b2. Inoltre, le seguenti operazioni sono già state importate per te: keras.activations.relu() e keras.layers.Dropout().
Questo esercizio fa parte del corso
Introduzione a TensorFlow in Python
Istruzioni dell'esercizio
- Applica una funzione di attivazione ReLU al primo livello.
- Applica un dropout del 25% a
layer1. - Passa il target,
targets, e i valori previsti,predictions, alla funzione di perdita a entropia incrociata.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____, ____)