Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Ottimizzazione degli Iperparametri | Conclusione
Introduzione alle Reti Neurali

bookOttimizzazione degli Iperparametri

Iperparametri nelle Reti Neurali

Le reti neurali, inclusi i percettroni, presentano diversi iperparametri che influenzano le loro prestazioni. A differenza dei parametri del modello (ad esempio, pesi e bias), gli iperparametri vengono impostati prima dell'inizio dell'addestramento. Alcuni iperparametri chiave nei percettroni includono:

  • Numero di strati nascosti e neuroni per strato: determina la capacità del modello di apprendere schemi complessi. Troppi pochi neuroni possono portare a underfitting, mentre un numero eccessivo può causare overfitting;

  • Tasso di apprendimento: controlla quanto il modello modifica i pesi durante l'addestramento. Un tasso di apprendimento elevato può rendere l'addestramento instabile, mentre uno troppo basso può portare a una convergenza lenta:

  • Numero di epoche di addestramento: definisce quante volte il modello vede i dati di addestramento. Un numero maggiore di epoche consente un apprendimento migliore ma può portare a overfitting se eccessivo.
Note
Nota

In sintesi, l'overfitting si verifica quando un modello apprende troppo bene i dati di addestramento, catturando il rumore invece degli schemi generali. Questo comporta un'elevata accuratezza sul set di addestramento ma scarsa generalizzazione su dati non visti.

L'underfitting, invece, si verifica quando un modello è troppo semplice per cogliere gli schemi sottostanti nei dati. Questo porta sia a scarse prestazioni in addestramento che in test, indicando che il modello non ha sufficiente capacità di apprendimento.

Ottimizzazione degli Iperparametri

L'ottimizzazione degli iperparametri è fondamentale per migliorare le prestazioni delle reti neurali. Un modello con iperparametri non ottimizzati può portare a underfitting o overfitting.

È possibile modificare il numero di epoche, il numero di layer nascosti, la loro dimensione e il learning rate per osservare come cambia l'accuratezza sui set di addestramento e di test:

1234567891011121314151617181920212223
from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score import numpy as np import warnings # Ignore warnings warnings.filterwarnings("ignore") import os os.system('wget https://codefinity-content-media.s3.eu-west-1.amazonaws.com/f9fc718f-c98b-470d-ba78-d84ef16ba45f/section_2/data.py 2>/dev/null') from data import X_train, y_train, X_test, y_test np.random.seed(10) # Tweak hyperparameters here model = MLPClassifier(max_iter=100, hidden_layer_sizes=(6, 6), learning_rate_init=0.01, random_state=10) model.fit(X_train, y_train) y_pred_train = model.predict(X_train) y_pred_test = model.predict(X_test) # Comparing train set accuracy and test set accuracy train_accuracy = accuracy_score(y_train, y_pred_train) test_accuracy = accuracy_score(y_test, y_pred_test) print(f'Train accuracy: {train_accuracy:.3f}') print(f'Test accuracy: {test_accuracy:.3f}')
copy

Trovare la giusta combinazione di iperparametri richiede sperimentazione sistematica e aggiustamenti. Questo processo viene spesso eseguito tramite tecniche come la grid search (prova di tutte le possibili combinazioni di iperparametri) e la random search (test di un sottoinsieme casuale di valori degli iperparametri).

In sostanza, l'addestramento di una rete neurale segue un ciclo iterativo:

  1. Definizione del modello con iperparametri iniziali;
  2. Addestramento del modello utilizzando il dataset di training;
  3. Valutazione delle prestazioni sul set di test;
  4. Regolazione degli iperparametri (ad esempio, numero di layer, learning rate);
  5. Ripetizione del processo fino al raggiungimento delle prestazioni desiderate.

Questo perfezionamento iterativo garantisce che il modello generalizzi bene su dati non visti.

1. Quale delle seguenti opzioni è un iperparametro piuttosto che un parametro del modello?

2. Un tasso di apprendimento troppo alto molto probabilmente causerà:

question mark

Quale delle seguenti opzioni è un iperparametro piuttosto che un parametro del modello?

Select the correct answer

question mark

Un tasso di apprendimento troppo alto molto probabilmente causerà:

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4

bookOttimizzazione degli Iperparametri

Scorri per mostrare il menu

Iperparametri nelle Reti Neurali

Le reti neurali, inclusi i percettroni, presentano diversi iperparametri che influenzano le loro prestazioni. A differenza dei parametri del modello (ad esempio, pesi e bias), gli iperparametri vengono impostati prima dell'inizio dell'addestramento. Alcuni iperparametri chiave nei percettroni includono:

  • Numero di strati nascosti e neuroni per strato: determina la capacità del modello di apprendere schemi complessi. Troppi pochi neuroni possono portare a underfitting, mentre un numero eccessivo può causare overfitting;

  • Tasso di apprendimento: controlla quanto il modello modifica i pesi durante l'addestramento. Un tasso di apprendimento elevato può rendere l'addestramento instabile, mentre uno troppo basso può portare a una convergenza lenta:

  • Numero di epoche di addestramento: definisce quante volte il modello vede i dati di addestramento. Un numero maggiore di epoche consente un apprendimento migliore ma può portare a overfitting se eccessivo.
Note
Nota

In sintesi, l'overfitting si verifica quando un modello apprende troppo bene i dati di addestramento, catturando il rumore invece degli schemi generali. Questo comporta un'elevata accuratezza sul set di addestramento ma scarsa generalizzazione su dati non visti.

L'underfitting, invece, si verifica quando un modello è troppo semplice per cogliere gli schemi sottostanti nei dati. Questo porta sia a scarse prestazioni in addestramento che in test, indicando che il modello non ha sufficiente capacità di apprendimento.

Ottimizzazione degli Iperparametri

L'ottimizzazione degli iperparametri è fondamentale per migliorare le prestazioni delle reti neurali. Un modello con iperparametri non ottimizzati può portare a underfitting o overfitting.

È possibile modificare il numero di epoche, il numero di layer nascosti, la loro dimensione e il learning rate per osservare come cambia l'accuratezza sui set di addestramento e di test:

1234567891011121314151617181920212223
from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score import numpy as np import warnings # Ignore warnings warnings.filterwarnings("ignore") import os os.system('wget https://codefinity-content-media.s3.eu-west-1.amazonaws.com/f9fc718f-c98b-470d-ba78-d84ef16ba45f/section_2/data.py 2>/dev/null') from data import X_train, y_train, X_test, y_test np.random.seed(10) # Tweak hyperparameters here model = MLPClassifier(max_iter=100, hidden_layer_sizes=(6, 6), learning_rate_init=0.01, random_state=10) model.fit(X_train, y_train) y_pred_train = model.predict(X_train) y_pred_test = model.predict(X_test) # Comparing train set accuracy and test set accuracy train_accuracy = accuracy_score(y_train, y_pred_train) test_accuracy = accuracy_score(y_test, y_pred_test) print(f'Train accuracy: {train_accuracy:.3f}') print(f'Test accuracy: {test_accuracy:.3f}')
copy

Trovare la giusta combinazione di iperparametri richiede sperimentazione sistematica e aggiustamenti. Questo processo viene spesso eseguito tramite tecniche come la grid search (prova di tutte le possibili combinazioni di iperparametri) e la random search (test di un sottoinsieme casuale di valori degli iperparametri).

In sostanza, l'addestramento di una rete neurale segue un ciclo iterativo:

  1. Definizione del modello con iperparametri iniziali;
  2. Addestramento del modello utilizzando il dataset di training;
  3. Valutazione delle prestazioni sul set di test;
  4. Regolazione degli iperparametri (ad esempio, numero di layer, learning rate);
  5. Ripetizione del processo fino al raggiungimento delle prestazioni desiderate.

Questo perfezionamento iterativo garantisce che il modello generalizzi bene su dati non visti.

1. Quale delle seguenti opzioni è un iperparametro piuttosto che un parametro del modello?

2. Un tasso di apprendimento troppo alto molto probabilmente causerà:

question mark

Quale delle seguenti opzioni è un iperparametro piuttosto che un parametro del modello?

Select the correct answer

question mark

Un tasso di apprendimento troppo alto molto probabilmente causerà:

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 2
some-alt