全連接層

Python 的 TensorFlow 入門

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

線性迴歸模型

此圖示為一個有兩個特徵(婚姻狀態與年齡)的迴歸模型。模型的目標是信用卡持卡人的違約狀態。

Python 的 TensorFlow 入門

什麼是神經網路?

此圖示為一個神經網路,含兩個特徵輸入:婚姻狀態與年齡。網路的目標是信用卡持卡人的違約狀態。

Python 的 TensorFlow 入門

什麼是神經網路?

此圖為更複雜的神經網路,含 10 個輸入特徵、3 個全連接隱藏層與一個輸出層。

  • 全連接層會對前一層的所有節點套用權重。
Python 的 TensorFlow 入門

簡單的全連接層

import tensorflow as tf
# 定義輸入(特徵)
inputs = tf.constant([[1, 35]])
# 定義權重
weights = tf.Variable([[-0.05], [-0.01]])
# 定義偏差(bias)
bias = tf.Variable([0.5])
Python 的 TensorFlow 入門

簡單的全連接層

# 以權重乘上輸入(特徵)
product = tf.matmul(inputs, weights)
# 定義全連接層
dense = tf.keras.activations.sigmoid(product+bias)

此圖示為一個全連接層,接受兩個輸入節點並產生一個輸出。

Python 的 TensorFlow 入門

定義完整模型

import tensorflow as tf
# 定義輸入(特徵)層
inputs = tf.constant(data, tf.float32)
# 定義第一個全連接層
dense1 = tf.keras.layers.Dense(10, activation='sigmoid')(inputs)
Python 的 TensorFlow 入門

定義完整模型

# 定義第二個全連接層
dense2 = tf.keras.layers.Dense(5, activation='sigmoid')(dense1)
# 定義輸出(預測)層
outputs =  tf.keras.layers.Dense(1, activation='sigmoid')(dense2)

此圖示為一個全連接層,接受兩個輸入節點並產生一個輸出。

Python 的 TensorFlow 入門

高階 vs 低階作法

  • 高階作法
    • 高階 API 操作
dense = keras.layers.Dense(10,\
 activation='sigmoid')
  • 低階作法
    • 線性代數運算
prod = matmul(inputs, weights)
dense = keras.activations.sigmoid(prod)
Python 的 TensorFlow 入門

一起來練習吧!

Python 的 TensorFlow 入門

Preparing Video For Download...