Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Hyperparametrien Säätäminen | Yhteenveto
Johdatus Neuroverkkoihin Pythonilla

bookHyperparametrien Säätäminen

Neuroverkkojen hyperparametrit

Neuroverkoilla, mukaan lukien perceptronit, on useita hyperparametreja, jotka vaikuttavat niiden suorituskykyyn. Toisin kuin mallin parametrit (esim. painot ja biasit), hyperparametrit asetetaan ennen koulutuksen aloittamista. Joitakin keskeisiä hyperparametreja perceptroneissa ovat:

  • Piilokerrosten ja neuronien määrä per kerros: määrittää mallin kyvyn oppia monimutkaisia rakenteita. Liian vähän neuroneja voi johtaa alioppimiseen, kun taas liian suuri määrä voi aiheuttaa ylioppimista;

  • Oppimisnopeus: säätelee, kuinka paljon malli säätää painoja koulutuksen aikana. Korkea oppimisnopeus voi tehdä koulutuksesta epävakaata, kun taas matala arvo voi johtaa hitaaseen konvergenssiin:

  • Koulutusepookkien määrä: määrittää, kuinka monta kertaa malli käy läpi koulutusaineiston. Useammat epookit mahdollistavat paremman oppimisen, mutta liiallinen määrä voi johtaa ylioppimiseen.
Note
Huomio

Yhteenvetona, ylioppiminen tapahtuu, kun malli oppii koulutusaineiston liian tarkasti, mukaan lukien satunnaisen kohinan, eikä yleistä opittuja malleja. Tämä johtaa korkeaan tarkkuuteen koulutusdatassa, mutta heikkoon yleistettävyyteen uuteen dataan.

Alioppiminen puolestaan ilmenee, kun malli on liian yksinkertainen havaitakseen aineiston taustalla olevat rakenteet. Tämä johtaa sekä heikkoon koulutus- että testisuoritukseen, mikä osoittaa, että mallilla ei ole riittävää kapasiteettia oppia tehokkaasti.

Hyperparametrien viritys

Hyperparametrien viritys on ratkaisevaa neuroverkkojen optimoinnissa. Huonosti viritetty malli voi johtaa alioppimiseen tai ylioppimiseen.

Voit säätää epookkien määrää, piilokerrosten määrää, niiden kokoa ja oppimisnopeutta tarkkaillaksesi, miten tarkkuus koulutus- ja testijoukoissa muuttuu:

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

Oikean hyperparametriyhdistelmän löytäminen vaatii systemaattista kokeilua ja säätöä. Tämä tehdään usein menetelmillä kuten ruudukkohaku (kaikkien mahdollisten hyperparametriyhdistelmien kokeilu) ja satunnaishaku (satunnaisen hyperparametrijoukon testaaminen).

Käytännössä neuroverkon koulutus etenee iteratiivisessa syklissä:

  1. Määrittele malli alkuperäisillä hyperparametreilla;
  2. Kouluta malli käyttämällä koulutusdataa;
  3. Arvioi suorituskyky testidatalla;
  4. Säädä hyperparametreja (esim. kerrosten määrä, oppimisnopeus);
  5. Toista prosessi, kunnes haluttu suorituskyky saavutetaan.

Tämä iteratiivinen hienosäätö varmistaa, että malli yleistyy hyvin myös näkemättömään dataan.

1. Mikä seuraavista on hyperparametri, ei mallin parametri?

2. Liian suuri oppimisnopeus aiheuttaa todennäköisimmin:

question mark

Mikä seuraavista on hyperparametri, ei mallin parametri?

Select the correct answer

question mark

Liian suuri oppimisnopeus aiheuttaa todennäköisimmin:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 4

bookHyperparametrien Säätäminen

Pyyhkäise näyttääksesi valikon

Neuroverkkojen hyperparametrit

Neuroverkoilla, mukaan lukien perceptronit, on useita hyperparametreja, jotka vaikuttavat niiden suorituskykyyn. Toisin kuin mallin parametrit (esim. painot ja biasit), hyperparametrit asetetaan ennen koulutuksen aloittamista. Joitakin keskeisiä hyperparametreja perceptroneissa ovat:

  • Piilokerrosten ja neuronien määrä per kerros: määrittää mallin kyvyn oppia monimutkaisia rakenteita. Liian vähän neuroneja voi johtaa alioppimiseen, kun taas liian suuri määrä voi aiheuttaa ylioppimista;

  • Oppimisnopeus: säätelee, kuinka paljon malli säätää painoja koulutuksen aikana. Korkea oppimisnopeus voi tehdä koulutuksesta epävakaata, kun taas matala arvo voi johtaa hitaaseen konvergenssiin:

  • Koulutusepookkien määrä: määrittää, kuinka monta kertaa malli käy läpi koulutusaineiston. Useammat epookit mahdollistavat paremman oppimisen, mutta liiallinen määrä voi johtaa ylioppimiseen.
Note
Huomio

Yhteenvetona, ylioppiminen tapahtuu, kun malli oppii koulutusaineiston liian tarkasti, mukaan lukien satunnaisen kohinan, eikä yleistä opittuja malleja. Tämä johtaa korkeaan tarkkuuteen koulutusdatassa, mutta heikkoon yleistettävyyteen uuteen dataan.

Alioppiminen puolestaan ilmenee, kun malli on liian yksinkertainen havaitakseen aineiston taustalla olevat rakenteet. Tämä johtaa sekä heikkoon koulutus- että testisuoritukseen, mikä osoittaa, että mallilla ei ole riittävää kapasiteettia oppia tehokkaasti.

Hyperparametrien viritys

Hyperparametrien viritys on ratkaisevaa neuroverkkojen optimoinnissa. Huonosti viritetty malli voi johtaa alioppimiseen tai ylioppimiseen.

Voit säätää epookkien määrää, piilokerrosten määrää, niiden kokoa ja oppimisnopeutta tarkkaillaksesi, miten tarkkuus koulutus- ja testijoukoissa muuttuu:

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

Oikean hyperparametriyhdistelmän löytäminen vaatii systemaattista kokeilua ja säätöä. Tämä tehdään usein menetelmillä kuten ruudukkohaku (kaikkien mahdollisten hyperparametriyhdistelmien kokeilu) ja satunnaishaku (satunnaisen hyperparametrijoukon testaaminen).

Käytännössä neuroverkon koulutus etenee iteratiivisessa syklissä:

  1. Määrittele malli alkuperäisillä hyperparametreilla;
  2. Kouluta malli käyttämällä koulutusdataa;
  3. Arvioi suorituskyky testidatalla;
  4. Säädä hyperparametreja (esim. kerrosten määrä, oppimisnopeus);
  5. Toista prosessi, kunnes haluttu suorituskyky saavutetaan.

Tämä iteratiivinen hienosäätö varmistaa, että malli yleistyy hyvin myös näkemättömään dataan.

1. Mikä seuraavista on hyperparametri, ei mallin parametri?

2. Liian suuri oppimisnopeus aiheuttaa todennäköisimmin:

question mark

Mikä seuraavista on hyperparametri, ei mallin parametri?

Select the correct answer

question mark

Liian suuri oppimisnopeus aiheuttaa todennäköisimmin:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
some-alt