Definiowanie modelu i funkcji straty
W tym ćwiczeniu nauczysz sieć neuronową przewidywać, czy posiadacz karty kredytowej nie spłaci swojego zobowiązania. Cechy i etykiety, których użyjesz do trenowania sieci, są dostępne w powłoce Pythona jako borrower_features i default. Wagi i obciążenia zostały zdefiniowane w poprzednim ćwiczeniu.
Zwróć uwagę, że warstwa predictions jest zdefiniowana jako \(\sigma(layer1*w2+b2)\), gdzie \(\sigma\) to funkcja aktywacji sigmoid, layer1 to tensor węzłów pierwszej ukrytej warstwy gęstej, w2 to tensor wag, a b2 to tensor obciążeń.
Trenowalne zmienne to w1, b1, w2 i b2. Ponadto zostały już zaimportowane następujące operacje: keras.activations.relu() oraz keras.layers.Dropout().
To ćwiczenie jest częścią kursu
Wprowadzenie do TensorFlow w Pythonie
Instrukcje do ćwiczenia
- Zastosuj funkcję aktywacji ReLU (jednostka liniowa z obcięciem) do pierwszej warstwy.
- Zastosuj dropout na poziomie 25% do warstwy
layer1. - Przekaż wartości docelowe
targetsoraz przewidywane wartościpredictionsdo funkcji straty entropii krzyżowej.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____, ____)