Treinando uma rede no TensorFlow

Introdução ao TensorFlow em Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

A imagem mostra um gráfico 3D de uma função objetivo complexa chamada eggholder.

Introdução ao TensorFlow em Python

Inicializadores aleatórios

  • Frequentemente é preciso inicializar milhares de variáveis
    • tf.ones() pode ter baixo desempenho
    • É trabalhoso e difícil inicializar variáveis uma a uma
  • Alternativa: sortear valores iniciais de uma distribuição
    • Normal
    • Uniforme
    • Inicializador de Glorot
Introdução ao TensorFlow em Python

Inicializando variáveis no 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]))
Introdução ao TensorFlow em Python

Inicializando variáveis no 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')
Introdução ao TensorFlow em Python

Redes neurais e overfitting

A imagem mostra as previsões de modelos simples e complexos no conjunto de treino.

A imagem mostra as previsões de modelos simples e complexos no conjunto de validação.

Introdução ao TensorFlow em Python

Aplicando dropout

Esta imagem mostra uma rede neural sem dropout.

Esta imagem mostra uma rede neural com dropout aplicado a nós aleatórios.

Introdução ao TensorFlow em Python

Implementando dropout em uma rede

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)
Introdução ao TensorFlow em Python

Implementando dropout em uma rede

# 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)
Introdução ao TensorFlow em Python

Vamos praticar!

Introdução ao TensorFlow em Python

Preparing Video For Download...