Träna ett nätverk i TensorFlow

Introduktion till TensorFlow i Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Bilden visar ett 3D-diagram över en komplicerad målfunktion kallad eggholder-funktionen.

Introduktion till TensorFlow i Python

Slumpmässiga initialiseringar

  • Ofta behöver tusentals variabler initialiseras
    • tf.ones() kan ge dåliga resultat
    • Tidskrävande och svårt att initialisera variabler individuellt
  • Alternativt: hämta startvärden från en fördelning
    • Normal
    • Likformig
    • Glorot-initialisering
Introduktion till TensorFlow i Python

Initialisera variabler i TensorFlow

import tensorflow as tf

# Define 500x500 random normal variable
weights = tf.Variable(tf.random.normal([500, 500]))

# Define 500x500 truncated random normal variable
weights = tf.Variable(tf.random.truncated_normal([500, 500]))
Introduktion till TensorFlow i Python

Initialisera variabler i TensorFlow

# Define a dense layer with the default initializer
dense = tf.keras.layers.Dense(32, activation='relu')

# Define a dense layer with the zeros initializer
dense = tf.keras.layers.Dense(32, activation='relu',\
    kernel_initializer='zeros')
Introduktion till TensorFlow i Python

Neurala nätverk och överanpassning

Bilden visar prediktioner från enkla och komplexa modeller på träningsdata.

Bilden visar prediktioner från enkla och komplexa modeller på valideringsdata.

Introduktion till TensorFlow i Python

Använda dropout

Bilden visar ett neuralt nätverk utan dropout.

Bilden visar ett neuralt nätverk med dropout tillämpat på slumpmässiga noder.

Introduktion till TensorFlow i Python

Implementera dropout i ett nätverk

import numpy as np
import tensorflow as tf

# Define input data
inputs = np.array(borrower_features, np.float32)
# Define dense layer 1
dense1 = tf.keras.layers.Dense(32, activation='relu')(inputs)
Introduktion till TensorFlow i Python

Implementera dropout i ett nätverk

# Define dense layer 2
dense2 = tf.keras.layers.Dense(16, activation='relu')(dense1)
# Apply dropout operation
dropout1 = tf.keras.layers.Dropout(0.25)(dense2)
# Define output layer
outputs = tf.keras.layers.Dense(1, activation='sigmoid')(dropout1)
Introduktion till TensorFlow i Python

Nu kör vi en övning!

Introduktion till TensorFlow i Python

Preparing Video For Download...