Trenowanie sieci w TensorFlow

Wprowadzenie do TensorFlow w Pythonie

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Obraz przedstawia wykres 3D skomplikowanej funkcji celu zwanej funkcją eggholder.

Wprowadzenie do TensorFlow w Pythonie

Losowe inicjalizatory

  • Często trzeba inicjalizować tysiące zmiennych
    • tf.ones() może działać słabo
    • Inicjalizacja każdej zmiennej osobno jest żmudna
  • Alternatywnie: losowanie wartości z rozkładu
    • Normalny
    • Jednostajny
    • Inicjalizator Glorota
Wprowadzenie do TensorFlow w Pythonie

Inicjalizacja zmiennych w 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]))
Wprowadzenie do TensorFlow w Pythonie

Inicjalizacja zmiennych w 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')
Wprowadzenie do TensorFlow w Pythonie

Sieci neuronowe a przeuczenie

Obraz przedstawia prognozy prostych i złożonych modeli na zbiorze treningowym.

Obraz przedstawia prognozy prostych i złożonych modeli na zbiorze walidacyjnym.

Wprowadzenie do TensorFlow w Pythonie

Stosowanie dropoutu

Obraz przedstawia sieć neuronową bez dropoutu.

Obraz przedstawia sieć neuronową z dropoutem zastosowanym do losowych węzłów.

Wprowadzenie do TensorFlow w Pythonie

Implementacja dropoutu w sieci

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)
Wprowadzenie do TensorFlow w Pythonie

Implementacja dropoutu w sieci

# 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)
Wprowadzenie do TensorFlow w Pythonie

Ćwiczmy!

Wprowadzenie do TensorFlow w Pythonie

Preparing Video For Download...