Justering 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.
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:
1234567891011121314151617181920212223from 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}')
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:
- Definer modellen med initiale hyperparametre;
- Træn modellen ved brug af træningsdatasættet;
- Evaluer ydeevne på et testdatasæt;
- Juster hyperparametre (f.eks. antal lag, læringsrate);
- 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:
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Justering 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.
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:
1234567891011121314151617181920212223from 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}')
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:
- Definer modellen med initiale hyperparametre;
- Træn modellen ved brug af træningsdatasættet;
- Evaluer ydeevne på et testdatasæt;
- Juster hyperparametre (f.eks. antal lag, læringsrate);
- 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:
Tak for dine kommentarer!