Функции активации

Введение в TensorFlow на Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Что такое функция активации?

  • Компоненты типичного скрытого слоя
    • Линейный: матричное умножение
    • Нелинейный: функция активации
Введение в TensorFlow на Python

Зачем нужны нелинейности

На рисунке показана простая сеть, в которой сумма счёта и возраст используются для предсказания дефолта.

Введение в TensorFlow на Python

Зачем нужны нелинейности

На рисунке показана зависимость между суммой счёта по кредитной карте и дефолтом для заёмщиков в возрасте до 30 лет включительно.

Введение в TensorFlow на Python

Простой пример

import numpy as np
import tensorflow as tf

# Define example borrower features
young, old = 0.3, 0.6
low_bill, high_bill = 0.1, 0.5
# Apply matrix multiplication step for all feature combinations
young_high = 1.0*young + 2.0*high_bill
young_low = 1.0*young + 2.0*low_bill
old_high = 1.0*old + 2.0*high_bill
old_low = 1.0*old + 2.0*low_bill
Введение в TensorFlow на Python

Простой пример

# Difference in default predictions for young
print(young_high - young_low)

# Difference in default predictions for old
print(old_high - old_low)
0.8 
0.8
Введение в TensorFlow на Python

Простой пример

# Difference in default predictions for young
print(tf.keras.activations.sigmoid(young_high).numpy() - 
tf.keras.activations.sigmoid(young_low).numpy())

# Difference in default predictions for old
print(tf.keras.activations.sigmoid(old_high).numpy() - 
tf.keras.activations.sigmoid(old_low).numpy())
0.16337568
0.14204389
Введение в TensorFlow на Python

Функция активации sigmoid

  • Функция активации sigmoid
    • Бинарная классификация
    • Низкоуровневый вызов: tf.keras.activations.sigmoid()
    • Высокоуровневый вызов: sigmoid

На рисунке показан график функции активации sigmoid на интервале от -10 до 10.

Введение в TensorFlow на Python

Функция активации ReLU

  • Функция активации ReLU
    • Скрытые слои
    • Низкоуровневый вызов: tf.keras.activations.relu()
    • Высокоуровневый вызов: relu

На рисунке показан график функции активации ReLU на интервале от -10 до 10.

Введение в TensorFlow на Python

Функция активации softmax

  • Функция активации softmax
    • Выходной слой (более 2 классов)
    • Низкоуровневый вызов: tf.keras.activations.softmax()
    • Высокоуровневый вызов: softmax
Введение в TensorFlow на Python

Функции активации в нейронных сетях

import tensorflow as tf
# Define input layer
inputs = tf.constant(borrower_features, tf.float32)
# Define dense layer 1
dense1 = tf.keras.layers.Dense(16, activation='relu')(inputs)
# Define dense layer 2
dense2 = tf.keras.layers.Dense(8, activation='sigmoid')(dense1)
# Define output layer 
outputs = tf.keras.layers.Dense(4, activation='softmax')(dense2)
Введение в TensorFlow на Python

Давайте потренируемся!

Введение в TensorFlow на Python

Preparing Video For Download...