Навчання мережі в TensorFlow

Вступ до TensorFlow на Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Зображення показує 3D-графік складної цільової функції під назвою eggholder.

Вступ до TensorFlow на Python

Випадкові ініціалізатори

  • Часто треба ініціалізувати тисячі змінних
    • tf.ones() може працювати гірше
    • Важко й довго ініціалізувати кожну окремо
  • Альтернатива: брати початкові значення з розподілу
    • Нормальний
    • Рівномірний
    • Ініціалізатор Glorot
Вступ до TensorFlow на Python

Ініціалізація змінних у 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]))
Вступ до TensorFlow на Python

Ініціалізація змінних у 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')
Вступ до TensorFlow на Python

Нейронні мережі та перенавчання

Зображення показує прогнози простих і складних моделей на тренувальній вибірці.

Зображення показує прогнози простих і складних моделей на валідаційній вибірці.

Вступ до TensorFlow на Python

Застосування dropout

Це зображення показує нейронну мережу без dropout.

Це зображення показує нейронну мережу з застосованим dropout до випадкових вузлів.

Вступ до TensorFlow на Python

Реалізація dropout у мережі

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)
Вступ до TensorFlow на Python

Реалізація dropout у мережі

# 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)
Вступ до TensorFlow на Python

Давайте потренуємось!

Вступ до TensorFlow на Python

Preparing Video For Download...