啟用函式

Keras 深度學習入門

Miguel Esteban

Data Scientist & Founder

Keras 深度學習入門

Keras 深度學習入門

Keras 深度學習入門

Keras 深度學習入門

Keras 深度學習入門

啟用函式的影響

Keras 深度學習入門

Keras 深度學習入門

Keras 深度學習入門

該用哪種啟用函式?

  • 沒有萬用公式
  • 各有不同特性
  • 取決於你的問題
  • 以及該層想達成的目標
  • ReLU 是不錯的起手式
  • 深層模型不建議用 sigmoid
  • 透過實驗調參

Keras 深度學習入門

比較啟用函式

# Set a random seed
np.random.seed(1)

# Return a new model with the given activation def get_model(act_function): model = Sequential() model.add(Dense(4, input_shape=(2,), activation=act_function)) model.add(Dense(1, activation='sigmoid')) return model
Keras 深度學習入門

比較啟用函式

# Activation functions to try out
activations = ['relu', 'sigmoid', 'tanh']

# Dictionary to store results
activation_results = {}

for funct in activations: model = get_model(act_function=funct) history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=100, verbose=0) activation_results[funct] = history
Keras 深度學習入門

比較啟用函式

import pandas as pd

# Extract val_loss history of each activation function
val_loss_per_funct = {k:v.history['val_loss'] for k,v in activation_results.items()}

# Turn the dictionary into a pandas dataframe val_loss_curves = pd.DataFrame(val_loss_per_funct)
# Plot the curves val_loss_curves.plot(title='Loss per Activation function')
Keras 深度學習入門

一起來練習吧!

Keras 深度學習入門

Preparing Video For Download...