Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Justering af Hyperparametre | Konklusion
Introduktion til neurale netværk

bookJustering af Hyperparametre

Hyperparametre i neurale netværk

Neurale netværk, herunder perceptroner, har flere hyperparametre, der påvirker deres ydeevne. I modsætning til modelparametre (f.eks. vægte og bias) indstilles hyperparametre før træningen begynder. Nogle vigtige hyperparametre i perceptroner omfatter:

  • Antal skjulte lag og neuroner pr. lag: bestemmer modellens kapacitet til at lære komplekse mønstre. For få neuroner kan føre til underfitting, mens for mange kan forårsage overfitting;

  • Læringsrate: styrer, hvor meget modellen justerer vægtene under træning. En høj læringsrate kan gøre træningen ustabil, mens en lav kan føre til langsom konvergens:

  • Antal træningsepochs: definerer, hvor mange gange modellen ser træningsdataene. Flere epochs muliggør bedre læring, men kan føre til overfitting, hvis der er for mange.
Note
Bemærk

For at opsummere opstår overfitting, når en model lærer træningsdataene for godt og opfanger støj i stedet for generelle mønstre. Dette resulterer i høj nøjagtighed på træningssættet, men dårlig generalisering til usete data.

Underfitting opstår derimod, når en model er for simpel til at opfange de underliggende mønstre i dataene. Dette fører til både dårlig trænings- og testpræstation, hvilket indikerer, at modellen mangler tilstrækkelig kapacitet til at lære effektivt.

Justering af hyperparametre

Justering af hyperparametre er afgørende for at optimere neurale netværk. En dårligt justeret model kan føre til underfitting eller overfitting.

Du kan ændre antallet af epoker, antallet af skjulte lag, deres størrelse og læringsraten for at observere, hvordan nøjagtigheden på trænings- og testdatasæt ændrer sig:

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

At finde den rette kombination af hyperparametre kræver systematisk eksperimentering og justeringer. Dette udføres ofte ved hjælp af teknikker som grid search (afprøvning af alle mulige kombinationer af hyperparametre) og random search (test af et tilfældigt udvalg af hyperparameterværdier).

Træning af et neuralt netværk følger grundlæggende en iterativ cyklus:

  1. Definer modellen med initiale hyperparametre;
  2. Træn modellen ved brug af træningsdatasættet;
  3. Evaluer ydeevne på et testdatasæt;
  4. Juster hyperparametre (f.eks. antal lag, læringsrate);
  5. Gentag processen, indtil den ønskede ydeevne er opnået.

Denne iterative forfining sikrer, at modellen generaliserer godt til nye data.

1. Hvilken af følgende er en hyperparameter og ikke en modelparameter?

2. En læringsrate, der er for høj, vil sandsynligvis medføre:

question mark

Hvilken af følgende er en hyperparameter og ikke en modelparameter?

Select the correct answer

question mark

En læringsrate, der er for høj, vil sandsynligvis medføre:

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 4

bookJustering af Hyperparametre

Stryg for at vise menuen

Hyperparametre i neurale netværk

Neurale netværk, herunder perceptroner, har flere hyperparametre, der påvirker deres ydeevne. I modsætning til modelparametre (f.eks. vægte og bias) indstilles hyperparametre før træningen begynder. Nogle vigtige hyperparametre i perceptroner omfatter:

  • Antal skjulte lag og neuroner pr. lag: bestemmer modellens kapacitet til at lære komplekse mønstre. For få neuroner kan føre til underfitting, mens for mange kan forårsage overfitting;

  • Læringsrate: styrer, hvor meget modellen justerer vægtene under træning. En høj læringsrate kan gøre træningen ustabil, mens en lav kan føre til langsom konvergens:

  • Antal træningsepochs: definerer, hvor mange gange modellen ser træningsdataene. Flere epochs muliggør bedre læring, men kan føre til overfitting, hvis der er for mange.
Note
Bemærk

For at opsummere opstår overfitting, når en model lærer træningsdataene for godt og opfanger støj i stedet for generelle mønstre. Dette resulterer i høj nøjagtighed på træningssættet, men dårlig generalisering til usete data.

Underfitting opstår derimod, når en model er for simpel til at opfange de underliggende mønstre i dataene. Dette fører til både dårlig trænings- og testpræstation, hvilket indikerer, at modellen mangler tilstrækkelig kapacitet til at lære effektivt.

Justering af hyperparametre

Justering af hyperparametre er afgørende for at optimere neurale netværk. En dårligt justeret model kan føre til underfitting eller overfitting.

Du kan ændre antallet af epoker, antallet af skjulte lag, deres størrelse og læringsraten for at observere, hvordan nøjagtigheden på trænings- og testdatasæt ændrer sig:

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

At finde den rette kombination af hyperparametre kræver systematisk eksperimentering og justeringer. Dette udføres ofte ved hjælp af teknikker som grid search (afprøvning af alle mulige kombinationer af hyperparametre) og random search (test af et tilfældigt udvalg af hyperparameterværdier).

Træning af et neuralt netværk følger grundlæggende en iterativ cyklus:

  1. Definer modellen med initiale hyperparametre;
  2. Træn modellen ved brug af træningsdatasættet;
  3. Evaluer ydeevne på et testdatasæt;
  4. Juster hyperparametre (f.eks. antal lag, læringsrate);
  5. Gentag processen, indtil den ønskede ydeevne er opnået.

Denne iterative forfining sikrer, at modellen generaliserer godt til nye data.

1. Hvilken af følgende er en hyperparameter og ikke en modelparameter?

2. En læringsrate, der er for høj, vil sandsynligvis medføre:

question mark

Hvilken af følgende er en hyperparameter og ikke en modelparameter?

Select the correct answer

question mark

En læringsrate, der er for høj, vil sandsynligvis medføre:

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2
some-alt