Aktiveringsfunktioner

Introduktion till djupinlärning med Keras

Miguel Esteban

Data Scientist & Founder

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Aktiveringsfunktionernas effekter

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Introduktion till djupinlärning med Keras

Vilken aktiveringsfunktion ska man välja?

  • Ingen universalformel
  • Olika egenskaper
  • Beror på problemet
  • Målet för respektive lager
  • ReLU är ett bra förstaval
  • Sigmoidfunktioner rekommenderas inte för djupa modeller
  • Justera med experiment

Introduktion till djupinlärning med Keras

Jämföra aktiveringsfunktioner

# 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
Introduktion till djupinlärning med Keras

Jämföra aktiveringsfunktioner

# 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
Introduktion till djupinlärning med Keras

Jämföra aktiveringsfunktioner

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')
Introduktion till djupinlärning med Keras

Nu kör vi en övning!

Introduktion till djupinlärning med Keras

Preparing Video For Download...