活性化関数

Kerasで学ぶIntroduction to Deep Learning

Miguel Esteban

Data Scientist & Founder

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

活性化関数の効果

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

Kerasで学ぶIntroduction to Deep Learning

どの活性化関数を使うべきか?

  • 魔法の公式はない
  • 性質はさまざま
  • 問題設定に依存
  • 各層での目的次第
  • ReLUはまず無難
  • 深層ではSigmoidは非推奨
  • 実験で調整

Kerasで学ぶIntroduction to Deep Learning

活性化関数の比較

# 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で学ぶIntroduction to Deep Learning

活性化関数の比較

# 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で学ぶIntroduction to Deep Learning

活性化関数の比較

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で学ぶIntroduction to Deep Learning

¡Vamos a practicar!

Kerasで学ぶIntroduction to Deep Learning

Preparing Video For Download...