Funzioni di attivazione

Introduzione al Deep Learning con Keras

Miguel Esteban

Data Scientist & Founder

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Effetti delle funzioni di attivazione

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Introduzione al Deep Learning con Keras

Quale funzione di attivazione usare?

  • Nessuna formula magica
  • Proprietà diverse
  • Dipende dal problema
  • Obiettivo del layer
  • ReLU è una buona prima scelta
  • Sigmoid non consigliata per modelli profondi
  • Affina sperimentando

Introduzione al Deep Learning con Keras

Confrontare le funzioni di attivazione

# Imposta un seed casuale
np.random.seed(1)

# Restituisce un nuovo modello con l'attivazione data 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
Introduzione al Deep Learning con Keras

Confrontare le funzioni di attivazione

# Funzioni di attivazione da provare
activations = ['relu', 'sigmoid', 'tanh']

# Dizionario per salvare i risultati
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
Introduzione al Deep Learning con Keras

Confrontare le funzioni di attivazione

import pandas as pd

# Estrai la storia di val_loss per ogni funzione di attivazione
val_loss_per_funct = {k:v.history['val_loss'] for k,v in activation_results.items()}

# Trasforma il dizionario in un dataframe pandas val_loss_curves = pd.DataFrame(val_loss_per_funct)
# Traccia le curve val_loss_curves.plot(title='Loss per Activation function')
Introduzione al Deep Learning con Keras

Esercitiamoci!

Introduzione al Deep Learning con Keras

Preparing Video For Download...