Lahendatud: adam optimeerija keras õppimiskiirus halveneb

Viimane uuendus: 09/25/2023

Kindlasti alustame artikliga.

Süvaõppe mudelid on tänapäeva tehnoloogiaajastul muutunud oluliseks aspektiks ning erinevad optimeerimisalgoritmid, näiteks Adam Optimizer, mängivad nende teostamisel olulist rolli. Keras, võimas ja hõlpsasti kasutatav tasuta avatud lähtekoodiga Pythoni teek süvaõppe mudelite arendamiseks ja hindamiseks, hõlmab tõhusaid numbriliste arvutusteeke Theano ja TensorFlow. Õppimiskiiruse reguleerimine sellistes optimeerimisalgoritmides on ülioluline, kuna see võib otseselt mõjutada mudeli õppeprotsessi. Selles artiklis arutame, kuidas Kerases samm-sammult Adam Optimizeri õppimiskiirust vähendada. Samuti käsitleme selles protsessis osalevaid teeke ja funktsioone.

Õppimiskiiruse kohandamise vajadus

Õppimiskiirus on optimeerimisalgoritmides, sealhulgas Adam optimeerijas , oluline hüperparameeter . See määrab iga iteratsiooni sammu suuruse, liikudes kaotusfunktsiooni miinimumi poole. Täpsemalt öeldes nõuab madalam õppimiskiirus rohkem treeningperioode, arvestades kaaluuuenduste väiksemaid samme, samas kui suurem õppimiskiirus võib jõuda lähenemispunkti kiiremini, kuid riskib kaotusfunktsiooni miinimumi ületamisega.

Seetõttu on see levinud lähenemisviis õppimiskiiruse kohandamiseks ja alandamiseks epohhide lõikes, mida sageli nimetatakse õppimiskiiruse vähenemiseks. Õppimiskiiruse vähenemine tagab, et õppemudel jõuab kaotusfunktsiooni põhja, vältides hilisemas treeningfaasis suuri samme, mis võivad põhjustada olulisi kõikumisi.

Õppimiskiiruse vähenemise rakendamine Keras

Keras saab selle kohanduse saavutada tagasihelistamisfunktsioonide LearningRateScheduler ja ReduceLROnPlateau abil.

from keras.callbacks import LearningRateScheduler
import numpy as np

# Learning rate schedule
initial_learning_rate = 0.1
decay = initial_learning_rate / epochs

def lr_time_based_decay(epoch, lr):
    return lr * 1 / (1 + decay * epoch)

# Fit the model on the batches generated
model.fit(X_train, Y_train, epochs=epochs,callbacks=[LearningRateScheduler(lr_time_based_decay, verbose=1)])

LearningRateScheduler võib vastavalt ajastutele muuta õppimiskiirust. Seevastu ReduceLROnPlateau jälgib kogust ja kui kannatlikkusperioodide arvu paranemist ei nähta, väheneb õppimiskiirus.

Adam Optimizeriga töötamine

Adam optimeerijaga tegelemisel initsialiseerime selle eksemplari, määrates õppimiskiiruse. Mudeli koostamise protsessi käigus sisestame selle optimeerija eksemplari.

from keras.optimizers import Adam

# Applying learning rate decay 
adam_opt = Adam(lr=0.001, decay=1e-6)
model.compile(loss='binary_crossentropy', optimizer=adam_opt)

Ülaltoodud koodis määrame Adam optimeerija adam_opt õppimiskiirusega 0.001 ja sumbumiskiirusega 1e–6.

Kokkuvõtteks võib öelda , et õppimiskiirus reguleerib seda, kuidas me minimaalse kuluga funktsiooni poole liigume. Selle õppimiskiiruse tõhusa reguleerimise abil saame parandada oma mudeli jõudlust ja efektiivsust. Kerase ja Pythoni kombinatsioon muudab õppimiskiiruse reguleerimise lihtsaks, andes meile suurema kontrolli mudeli optimeerimisprotsesside üle.

Seonduvad postitused: