Učinkovitost bilo kojeg modela strojnog učenja prvenstveno se može pripisati valjanosti podataka koji se koriste za obuku i sposobnosti modela da dobro generalizira te informacije. Stoga je obuka modela s najmanjim gubitkom valjanosti ključna. Učinkovitim treniranjem modela osiguravamo da model ne odgovara niti premalo niti previše.
Validacijski gubitak odgovara stopi pogreške na uzorku skupa za obuku koji nije korišten u fazi obuke i pomaže nam u mjerenju sposobnosti modela za generalizaciju. Primarni cilj u bilo kojem modelu strojnog učenja je postizanje najmanjeg gubitka valjanosti, što pokazuje da naš model dobro uči i generalizira.
Metoda za spremanje modela s najboljim gubitkom valjanosti
Uvježbavanje modela uključuje nekoliko ponavljanja, također poznatih kao epohe, a gubitak valjanosti razlikuje se za svaku epohu. Python nudi nekoliko biblioteka poput Kerasa koji pohranjuje te modele u svakoj epohi. Možemo upotrijebiti značajku pod nazivom ModelCheckpoint za spremanje modela kad god se gubitak valjanosti poboljša u odnosu na prethodni.
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)
Razumijevanje koda: korak po korak
Prođimo kroz isječak koda korak po korak da bismo razumjeli svaki dio:
1. Uvezite funkciju ModelCheckpoint iz Kerasa.
2. Definirajte stazu datoteke gdje želite spremiti model koristeći .hdf5 format. Ovaj je format dizajniran za pohranjivanje i organiziranje velikih količina podataka.
3. Pokrenite funkciju ModelCheckpoint. Ovdje pratimo 'val_loss' s 'min' načinom rada koji pokazuje da nam je cilj minimizirati ovu vrijednost. Uz 'save_best_only=True', posljednji najbolji model prema količini koja se prati neće biti prebrisan.
4. Kontrolna točka se tada dodaje na popis povratnih poziva. Drugi parametri treninga kao što je EarlyStopping također mogu biti uključeni u ovaj popis.
5. Model se zatim obučava na podacima pomoću model.fit(). Argument povratnih poziva uzima callbacks_list.
Kod sprema model kao 'weights.best.hdf5' u svakoj epohi u kojoj je gubitak valjanosti minimalan.
Ključne Python biblioteke za spremanje modela
Piton pruža bogat ekosustav knjižnica za spremanje modela strojnog učenja. Oni koji se prvenstveno koriste su:
- Keras: Ovaj API za neuronske mreže visoke razine koji može raditi povrh drugih API-ja niže razine kao što je TensorFlow omogućuje jednostavnu i brzu izradu prototipa modela dubokog učenja. Funkcija ModelCheckpoint u Kerasu pruža fleksibilnost praćenja različitih parametara tijekom procesa vježbanja i spremanje modela ili težine u različitim fazama.
- TensorFlow: Pythonov okvir za strojno učenje otvorenog koda omogućuje razvojnim programerima stvaranje složenih ML modela s lakoćom. Omogućuje modul SavedModel koji je univerzalni format serijalizacije za TensorFlow modele.
- Scikit-learn: Ova popularna Python biblioteka za strojno učenje pruža pomoćne programe za spremanje i učitavanje modela. Joblib modul obično se koristi za serijalizaciju Python objekata s velikim numpy nizovima – uobičajeni scenarij u tijekovima rada strojnog učenja.
Izbor biblioteke uvelike ovisi o zahtjevima vašeg projekta, vašem poznavanju biblioteke i složenosti vašeg modela. Bez obzira na to, Python pruža dovoljno resursa za treniranje, procjenu, spremanje i učitavanje modela s lakoćom.