Aktivační funkce

Úvod do hlubokého učení s Keras

Miguel Esteban

Data Scientist & Founder

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Vliv aktivačních funkcí

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Úvod do hlubokého učení s Keras

Jak vybrat aktivační funkci?

  • Žádný univerzální vzorec
  • Různé vlastnosti
  • Závisí na problému
  • Cíl dané vrstvy
  • ReLU je dobrá první volba
  • Sigmoidy se nedoporučují pro hluboké modely
  • Ladit experimentováním

Úvod do hlubokého učení s Keras

Porovnání aktivačních funkcí

# 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
Úvod do hlubokého učení s Keras

Porovnání aktivačních funkcí

# 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
Úvod do hlubokého učení s Keras

Porovnání aktivačních funkcí

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')
Úvod do hlubokého učení s Keras

Pojďme procvičovat!

Úvod do hlubokého učení s Keras

Preparing Video For Download...