激活函数

Python 中的 TensorFlow 入门

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

什么是激活函数?

  • 典型隐藏层的组成
    • 线性:矩阵乘法
    • 非线性:激活函数
Python 中的 TensorFlow 入门

为何非线性很重要

该图展示了一个简单网络:使用账单金额和年龄来预测违约。

Python 中的 TensorFlow 入门

为何非线性很重要

该图显示了30岁及以下借款人中,信用卡账单金额与违约的关系。

Python 中的 TensorFlow 入门

一个简单示例

import numpy as np
import tensorflow as tf

# 定义示例借款人特征
young, old = 0.3, 0.6
low_bill, high_bill = 0.1, 0.5
# 对所有特征组合执行矩阵乘法步骤
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
Python 中的 TensorFlow 入门

一个简单示例

# 年轻人违约预测的差异
print(young_high - young_low)

# 年长者违约预测的差异
print(old_high - old_low)
0.8 
0.8
Python 中的 TensorFlow 入门

一个简单示例

# 年轻人违约预测的差异
print(tf.keras.activations.sigmoid(young_high).numpy() - 
tf.keras.activations.sigmoid(young_low).numpy())

# 年长者违约预测的差异
print(tf.keras.activations.sigmoid(old_high).numpy() - 
tf.keras.activations.sigmoid(old_low).numpy())
0.16337568
0.14204389
Python 中的 TensorFlow 入门

Sigmoid 激活函数

  • Sigmoid 激活函数
    • 二分类
    • 低层接口:tf.keras.activations.sigmoid()
    • 高层接口:sigmoid

该图显示了在 -10 到 10 区间上的 sigmoid 激活函数曲线。

Python 中的 TensorFlow 入门

ReLU 激活函数

  • ReLU 激活函数
    • 隐藏层
    • 低层接口:tf.keras.activations.relu()
    • 高层接口:relu

该图显示了在 -10 到 10 区间上的 ReLU 激活函数曲线。

Python 中的 TensorFlow 入门

Softmax 激活函数

  • Softmax 激活函数
    • 输出层(>2 类)
    • 低层接口:tf.keras.activations.softmax()
    • 高层接口:softmax
Python 中的 TensorFlow 入门

神经网络中的激活函数

import tensorflow as tf
# 定义输入层
inputs = tf.constant(borrower_features, tf.float32)
# 定义全连接层 1
dense1 = tf.keras.layers.Dense(16, activation='relu')(inputs)
# 定义全连接层 2
dense2 = tf.keras.layers.Dense(8, activation='sigmoid')(dense1)
# 定义输出层 
outputs = tf.keras.layers.Dense(4, activation='softmax')(dense2)
Python 中的 TensorFlow 入门

Passons à la pratique !

Python 中的 TensorFlow 入门

Preparing Video For Download...