Jebkura mašīnmācīšanās modeļa efektivitāti galvenokārt var saistīt ar apmācībā izmantoto datu derīgumu un modeļa spēju labi vispārināt no šīs informācijas. Tāpēc ir ļoti svarīgi apmācīt modeli ar zemākajiem validācijas zaudējumiem. Efektīvi apmācot modeli, mēs nodrošinām, ka modelis nav ne pārāk piemērots, ne pārāk piemērots.
Validācijas zudums atbilst kļūdu īpatsvaram apmācības kopas aizturētā paraugā, kas netiek izmantots apmācības fāzē, un palīdz mums izmērīt modeļa spēju vispārināt. Jebkura mašīnmācīšanās modeļa galvenais mērķis ir sasniegt viszemāko validācijas zudumu, tādējādi norādot, ka mūsu modelis labi mācās un vispārina.
Modeļu saglabāšanas metode ar vislabākajiem validācijas zaudējumiem
Modeļa apmācība ietver vairākas iterācijas, kas pazīstamas arī kā laikmeti, un validācijas zudums katrā laikmetā ir atšķirīgs. Python nodrošina vairākas bibliotēkas, piemēram, Keras, kas glabā šos modeļus katrā laikmetā. Mēs varam izmantot funkciju ModelCheckpoint, lai saglabātu modeli ikreiz, kad validācijas zudums uzlabojas salīdzinājumā ar iepriekšējo.
from keras.callbacks import ModelCheckpoint # specify the path to save the model filepath="weights.best.hdf5" # initiate the ModelCheckpoint function checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min') # define the list of callbacks callbacks_list = [checkpoint] # fit the model model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, callbacks=callbacks_list, verbose=0)
Koda izpratne: soli pa solim
Soli pa solim apskatīsim koda fragmentu, lai saprastu katru daļu:
1. Importējiet ModelCheckpoint funkciju no Keras.
2. Definējiet faila ceļu, kurā vēlaties saglabāt modeli, izmantojot .hdf5 formātu. Šis formāts ir paredzēts liela datu apjoma glabāšanai un kārtošanai.
3. Sāciet ModelCheckpoint funkciju. Šeit mēs uzraugām “val_loss” ar “min” režīmu, kas norāda, ka mūsu mērķis ir samazināt šo vērtību. Ar 'save_best_only=True' jaunākais labākais modelis atbilstoši uzraudzītajam daudzumam netiks pārrakstīts.
4. Pēc tam kontrolpunkts tiek pievienots atzvanīšanas sarakstam. Šajā sarakstā var iekļaut arī citus treniņu parametrus, piemēram, EarlyStopping.
5. Pēc tam modelis tiek apmācīts datiem, izmantojot model.fit(). Atzvanīšanas arguments tiek iekļauts sarakstā callbacks_list.
Kods saglabā modeli kā “weights.best.hdf5” katrā laikmetā, kurā validācijas zudums ir minimāls.
Galvenās Python bibliotēkas modeļu saglabāšanai
Python nodrošina bagātīgu bibliotēku ekosistēmu mašīnmācīšanās modeļu saglabāšanai. Galvenokārt tiek izmantotas šādas bibliotēkas:
- Keras: Šī augsta līmeņa neironu tīklu API, kas spēj darboties virs citām zemāka līmeņa API, piemēram, TensorFlow, ļauj viegli un ātri izveidot dziļās mācīšanās modeļu prototipus. ModelCheckpoint funkcija Keras nodrošina elastību, lai treniņa procesā uzraudzītu dažādus parametrus un saglabātu modeli vai svarus dažādos posmos.
- TensorFlow: Python atvērtā pirmkoda mašīnmācīšanās sistēma ļauj izstrādātājiem viegli izveidot sarežģītus ML modeļus. Tas nodrošina SavedModel moduli, kas ir universāls serializācijas formāts TensorFlow modeļiem.
- Scikit-mācīties: Šī populārā Python bibliotēka mašīnmācībai nodrošina utilītas modeļu saglabāšanai un ielādei. Joblib modulis parasti tiek izmantots Python objektu serializēšanai ar lieliem nelīdzeniem masīviem — tas ir izplatīts scenārijs mašīnmācīšanās darbplūsmās.
Bibliotēkas izvēle lielā mērā ir atkarīga no jūsu projekta prasībām, jūsu zināšanas par bibliotēku un modeļa sarežģītības. Tomēr Python nodrošina daudz resursu, lai ērti apmācītu, novērtētu, saglabātu un ielādētu modeļus.