ai.vostman.fi
← Tekoälysanasto

Tekoälyn tietosanakirja

Hyperparametrit: valitse, miten oppiminen tapahtuu

Hyperparametri (hyperparameter) ohjaa mallia tai koulutusmenettelyä sen sijaan, että tavallinen parametripäivitys sovittaisi sen. Esimerkkejä ovat oppimisnopeus, kerroksen leveys ja painojen vaimennus. Osa asetuksista muuttuu koulutuksen aikana valitun aikataulun mukaan.

Ero liittyy menettelyyn: ulompi optimointi voi etsiä hyperparametreja samalla kun sisempi oppii painot.

Etsi mielekkäältä alueelta

Scikit-learn-esimerkki valitsee ridge-regression regularisointia generoidulla regressioaineistolla. Satunnaishaku poimii arvoja jatkuvalta logaritmiselta alueelta eikä käytä yhtä paljon yrityksiä jokaiseen desimaaliväliin.

from scipy.stats import loguniform
from sklearn.datasets import make_regression
from sklearn.linear_model import Ridge
from sklearn.model_selection import RandomizedSearchCV

features, targets = make_regression(n_samples=300, n_features=12, noise=10, random_state=7)
search = RandomizedSearchCV(
    Ridge(), {"alpha": loguniform(1e-4, 1e3)},
    n_iter=20, cv=5, scoring="neg_mean_squared_error", random_state=7,
)
search.fit(features, targets)
model = search.best_estimator_

search.best_estimator_ sovitetaan uudelleen kaikkiin annettuihin koulutusriveihin, kun ristiinvalidointi on valinnut asetuksen. Arvioi se erillisellä testiaineistolla: voittavaa ristiinvalidointitulosta käytettiin jo valintaan.

Satunnaishaku on hyödyllinen, jos vain osa asetuksista vaikuttaa tulokseen voimakkaasti. Lisäyritykset maksavat silti laskentaa, ja monen ehdokkaan vertailu helpottaa sattumalta hyvän validointituloksen löytämistä.

Lähteet