Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Justering av Hyperparametere | Konklusjon
Introduksjon til nevrale nettverk

bookJustering av Hyperparametere

Hyperparametere i nevrale nettverk

Nevrale nettverk, inkludert perseptroner, har flere hyperparametere som påvirker ytelsen. I motsetning til modellparametere (f.eks. vekter og bias), settes hyperparametere før treningen starter. Noen sentrale hyperparametere i perseptroner inkluderer:

  • Antall skjulte lag og nevroner per lag: avgjør modellens kapasitet til å lære komplekse mønstre. For få nevroner kan føre til undertilpasning, mens for mange kan føre til overtilpasning;

  • Læringsrate: styrer hvor mye modellen justerer vektene under trening. En høy læringsrate kan gjøre treningen ustabil, mens en lav kan føre til treg konvergens:

  • Antall trenings-epoker: definerer hvor mange ganger modellen ser treningsdataene. Flere epoker gir bedre læring, men kan føre til overtilpasning hvis det blir for mange.
Note
Merk

For å oppsummere: overtilpasning oppstår når en modell lærer treningsdataene for godt, og fanger opp støy i stedet for generelle mønstre. Dette gir høy nøyaktighet på treningssettet, men dårlig generalisering til nye data.

Undertilpasning skjer derimot når en modell er for enkel til å fange opp de underliggende mønstrene i dataene. Dette fører til både dårlig ytelse på trening og test, noe som indikerer at modellen mangler tilstrekkelig kapasitet til å lære effektivt.

Justering av hyperparametere

Justering av hyperparametere er avgjørende for å optimalisere nevrale nettverk. En modell med dårlig justerte parametere kan føre til under- eller overtilpasning.

Du kan endre antall epoker, antall skjulte lag, størrelsen på disse og læringsraten for å observere hvordan nøyaktigheten på trenings- og testsettet endres:

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

Å finne riktig kombinasjon av hyperparametere innebærer systematisk eksperimentering og justeringer. Dette gjøres ofte ved hjelp av teknikker som grid search (prøving av alle mulige kombinasjoner av hyperparametere) og random search (testing av et tilfeldig utvalg av hyperparameterverdier).

I hovedsak følger trening av et nevralt nettverk en iterativ syklus:

  1. Definer modellen med innledende hyperparametere;
  2. Tren modellen ved bruk av treningsdatasettet;
  3. Evaluer ytelsen på et testsett;
  4. Juster hyperparametere (f.eks. antall lag, læringsrate);
  5. Gjenta prosessen til ønsket ytelse er oppnådd.

Denne iterative forbedringen sikrer at modellen generaliserer godt til ukjente data.

1. Hvilken av følgende er en hyperparameter og ikke en modellparameter?

2. En læringsrate som er for høy vil mest sannsynlig føre til:

question mark

Hvilken av følgende er en hyperparameter og ikke en modellparameter?

Select the correct answer

question mark

En læringsrate som er for høy vil mest sannsynlig føre til:

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

What are some best practices for hyperparameter tuning in neural networks?

Can you explain the difference between grid search and random search?

How do I know if my model is overfitting or underfitting?

Awesome!

Completion rate improved to 4

bookJustering av Hyperparametere

Sveip for å vise menyen

Hyperparametere i nevrale nettverk

Nevrale nettverk, inkludert perseptroner, har flere hyperparametere som påvirker ytelsen. I motsetning til modellparametere (f.eks. vekter og bias), settes hyperparametere før treningen starter. Noen sentrale hyperparametere i perseptroner inkluderer:

  • Antall skjulte lag og nevroner per lag: avgjør modellens kapasitet til å lære komplekse mønstre. For få nevroner kan føre til undertilpasning, mens for mange kan føre til overtilpasning;

  • Læringsrate: styrer hvor mye modellen justerer vektene under trening. En høy læringsrate kan gjøre treningen ustabil, mens en lav kan føre til treg konvergens:

  • Antall trenings-epoker: definerer hvor mange ganger modellen ser treningsdataene. Flere epoker gir bedre læring, men kan føre til overtilpasning hvis det blir for mange.
Note
Merk

For å oppsummere: overtilpasning oppstår når en modell lærer treningsdataene for godt, og fanger opp støy i stedet for generelle mønstre. Dette gir høy nøyaktighet på treningssettet, men dårlig generalisering til nye data.

Undertilpasning skjer derimot når en modell er for enkel til å fange opp de underliggende mønstrene i dataene. Dette fører til både dårlig ytelse på trening og test, noe som indikerer at modellen mangler tilstrekkelig kapasitet til å lære effektivt.

Justering av hyperparametere

Justering av hyperparametere er avgjørende for å optimalisere nevrale nettverk. En modell med dårlig justerte parametere kan føre til under- eller overtilpasning.

Du kan endre antall epoker, antall skjulte lag, størrelsen på disse og læringsraten for å observere hvordan nøyaktigheten på trenings- og testsettet endres:

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

Å finne riktig kombinasjon av hyperparametere innebærer systematisk eksperimentering og justeringer. Dette gjøres ofte ved hjelp av teknikker som grid search (prøving av alle mulige kombinasjoner av hyperparametere) og random search (testing av et tilfeldig utvalg av hyperparameterverdier).

I hovedsak følger trening av et nevralt nettverk en iterativ syklus:

  1. Definer modellen med innledende hyperparametere;
  2. Tren modellen ved bruk av treningsdatasettet;
  3. Evaluer ytelsen på et testsett;
  4. Juster hyperparametere (f.eks. antall lag, læringsrate);
  5. Gjenta prosessen til ønsket ytelse er oppnådd.

Denne iterative forbedringen sikrer at modellen generaliserer godt til ukjente data.

1. Hvilken av følgende er en hyperparameter og ikke en modellparameter?

2. En læringsrate som er for høy vil mest sannsynlig føre til:

question mark

Hvilken av følgende er en hyperparameter og ikke en modellparameter?

Select the correct answer

question mark

En læringsrate som er for høy vil mest sannsynlig føre til:

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt