Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Justering av Hyperparametrar | Slutsats
Introduktion till neurala nätverk

bookJustering av Hyperparametrar

Hyperparametrar i neurala nätverk

Neurala nätverk, inklusive perceptroner, har flera hyperparametrar som påverkar deras prestanda. Till skillnad från modellparametrar (t.ex. vikter och bias) ställs hyperparametrar in innan träningen påbörjas. Några viktiga hyperparametrar i perceptroner inkluderar:

  • Antal dolda lager och neuroner per lager: avgör modellens kapacitet att lära sig komplexa mönster. För få neuroner kan leda till underanpassning, medan för många kan orsaka överanpassning;

  • Inlärningshastighet: styr hur mycket modellen justerar vikterna under träningen. En hög inlärningshastighet kan göra träningen instabil, medan en låg kan leda till långsam konvergens:

  • Antal tränings-epoker: definierar hur många gånger modellen ser träningsdatan. Fler epoker möjliggör bättre inlärning men kan leda till överanpassning om de är för många.
Note
Notering

Sammanfattningsvis uppstår överanpassning när en modell lär sig träningsdatan för väl och fångar upp brus istället för generella mönster. Detta resulterar i hög noggrannhet på träningsmängden men dålig generalisering till osedd data.

Underanpassning å andra sidan inträffar när en modell är för enkel för att fånga de underliggande mönstren i datan. Detta leder till både dålig prestanda på träning och test, vilket indikerar att modellen saknar tillräcklig kapacitet för effektiv inlärning.

Justering av hyperparametrar

Justering av hyperparametrar är avgörande för att optimera neurala nätverk. En dåligt justerad modell kan leda till underanpassning eller överanpassning.

Du kan ändra antalet epoker, antalet dolda lager, deras storlek och inlärningshastigheten för att observera hur noggrannheten på tränings- och testuppsättningarna förändras:

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

Att hitta rätt kombination av hyperparametrar innebär systematiska experiment och justeringar. Detta görs ofta med tekniker som grid search (testa alla möjliga kombinationer av hyperparametrar) och random search (testa ett slumpmässigt urval av hyperparametervärden).

I grunden följer träning av ett neuralt nätverk en iterativ cykel:

  1. Definiera modellen med initiala hyperparametrar;
  2. Träna modellen med träningsdata;
  3. Utvärdera prestanda på en testuppsättning;
  4. Justera hyperparametrar (t.ex. antal lager, inlärningshastighet);
  5. Upprepa processen tills önskad prestanda uppnås.

Denna iterativa förfining säkerställer att modellen generaliserar väl till osedda data.

1. Vilket av följande är en hyperparameter snarare än en modellparameter?

2. En inlärningshastighet som är för hög kommer troligtvis att orsaka:

question mark

Vilket av följande är en hyperparameter snarare än en modellparameter?

Select the correct answer

question mark

En inlärningshastighet som är för hög kommer troligtvis att orsaka:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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 Hyperparametrar

Svep för att visa menyn

Hyperparametrar i neurala nätverk

Neurala nätverk, inklusive perceptroner, har flera hyperparametrar som påverkar deras prestanda. Till skillnad från modellparametrar (t.ex. vikter och bias) ställs hyperparametrar in innan träningen påbörjas. Några viktiga hyperparametrar i perceptroner inkluderar:

  • Antal dolda lager och neuroner per lager: avgör modellens kapacitet att lära sig komplexa mönster. För få neuroner kan leda till underanpassning, medan för många kan orsaka överanpassning;

  • Inlärningshastighet: styr hur mycket modellen justerar vikterna under träningen. En hög inlärningshastighet kan göra träningen instabil, medan en låg kan leda till långsam konvergens:

  • Antal tränings-epoker: definierar hur många gånger modellen ser träningsdatan. Fler epoker möjliggör bättre inlärning men kan leda till överanpassning om de är för många.
Note
Notering

Sammanfattningsvis uppstår överanpassning när en modell lär sig träningsdatan för väl och fångar upp brus istället för generella mönster. Detta resulterar i hög noggrannhet på träningsmängden men dålig generalisering till osedd data.

Underanpassning å andra sidan inträffar när en modell är för enkel för att fånga de underliggande mönstren i datan. Detta leder till både dålig prestanda på träning och test, vilket indikerar att modellen saknar tillräcklig kapacitet för effektiv inlärning.

Justering av hyperparametrar

Justering av hyperparametrar är avgörande för att optimera neurala nätverk. En dåligt justerad modell kan leda till underanpassning eller överanpassning.

Du kan ändra antalet epoker, antalet dolda lager, deras storlek och inlärningshastigheten för att observera hur noggrannheten på tränings- och testuppsättningarna förändras:

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

Att hitta rätt kombination av hyperparametrar innebär systematiska experiment och justeringar. Detta görs ofta med tekniker som grid search (testa alla möjliga kombinationer av hyperparametrar) och random search (testa ett slumpmässigt urval av hyperparametervärden).

I grunden följer träning av ett neuralt nätverk en iterativ cykel:

  1. Definiera modellen med initiala hyperparametrar;
  2. Träna modellen med träningsdata;
  3. Utvärdera prestanda på en testuppsättning;
  4. Justera hyperparametrar (t.ex. antal lager, inlärningshastighet);
  5. Upprepa processen tills önskad prestanda uppnås.

Denna iterativa förfining säkerställer att modellen generaliserar väl till osedda data.

1. Vilket av följande är en hyperparameter snarare än en modellparameter?

2. En inlärningshastighet som är för hög kommer troligtvis att orsaka:

question mark

Vilket av följande är en hyperparameter snarare än en modellparameter?

Select the correct answer

question mark

En inlärningshastighet som är för hög kommer troligtvis att orsaka:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2
some-alt