Herhangi bir makine öğrenimi modelinin etkinliği öncelikle eğitim için kullanılan verilerin geçerliliğine ve modelin bu bilgilerden iyi bir şekilde genelleme yapma yeteneğine bağlanabilir. Bu nedenle, en düşük doğrulama kaybına sahip bir modelin eğitilmesi kritik öneme sahiptir. Bir modeli etkili bir şekilde eğiterek, modelin ne eksik ne de fazla uyumlu olmasını sağlıyoruz.
Doğrulama kaybı, eğitim aşamasında kullanılmayan eğitim setinin dışarıda kalan bir örneğindeki hata oranına karşılık gelir ve modelin genelleme yeteneğini ölçmemize yardımcı olur. Herhangi bir makine öğrenimi modelindeki temel amaç, en düşük doğrulama kaybına ulaşmaktır, bu da modelimizin iyi öğrendiğini ve genelleştirdiğini gösterir.
Modelleri En İyi Doğrulama Kaybına Sahip Kaydetme Yöntemi
Bir modelin eğitimi, dönem olarak da bilinen birkaç yinelemeyi içerir ve doğrulama kaybı her çağ için farklılık gösterir. Python, Keras gibi bu modelleri her çağda saklayan çeşitli kütüphaneler sağlar. Doğrulama kaybı öncekine göre iyileştiğinde modeli kaydetmek için ModelCheckpoint adlı bir özelliği kullanabiliriz.
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)
Kodu Anlamak: Adım Adım
Her bir parçayı anlamak için kod pasajını adım adım inceleyelim:
1. ModelCheckpoint işlevini Keras'tan içe aktarın.
2. .hdf5 formatını kullanarak modeli kaydetmek istediğiniz dosya yolunu tanımlayın. Bu format, büyük miktarda veriyi depolamak ve düzenlemek için tasarlanmıştır.
3. ModelCheckpoint işlevini başlatın. Burada 'val_loss'u 'min' moduyla izliyoruz, bu da bu değeri minimuma indirmeyi hedeflediğimizi gösteriyor. 'save_best_only=True' ile izlenen miktara göre en son en iyi modelin üzerine yazılmaz.
4. Kontrol noktası daha sonra geri arama listesine eklenir. Erken Durdurma gibi diğer eğitim parametreleri de bu listeye dahil edilebilir.
5. Daha sonra model, model.fit() kullanılarak veriler üzerinde eğitilir. Geri aramalar argümanı geri aramalar_listesini alır.
Kod, doğrulama kaybının minimumda olduğu her dönemde modeli 'weights.best.hdf5' olarak kaydeder.
Modelleri Kaydetmek için Anahtar Python Kitaplıkları
Python, makine öğrenimi modellerini kaydetmek için zengin bir kütüphane ekosistemi sunar. Başlıca kullanılanlar şunlardır:
- Keras: TensorFlow gibi diğer alt düzey API'lerin üzerinde çalışabilen bu üst düzey sinir ağları API'si, derin öğrenme modellerinin kolay ve hızlı prototiplenmesine olanak tanır. Keras'taki ModelCheckpoint işlevi, eğitim süreci sırasında çeşitli parametreleri izleme ve modeli veya ağırlıkları çeşitli aşamalarda kaydetme esnekliği sağlar.
- Tensor Akışı: Python'un açık kaynaklı makine öğrenimi çerçevesi, geliştiricilerin karmaşık makine öğrenimi modellerini kolaylıkla oluşturmasına olanak tanır. TensorFlow modelleri için evrensel bir serileştirme formatı olan SavedModel modülünü sağlar.
- Scikit-öğrenme: Makine öğrenimine yönelik bu popüler Python kitaplığı, modellerin kaydedilmesi ve yüklenmesi için yardımcı programlar sağlar. Joblib modülü genellikle Python nesnelerini büyük numpy dizileriyle serileştirmek için kullanılır; bu, makine öğrenimi iş akışlarında yaygın bir senaryodur.
Kütüphane seçimi büyük ölçüde projenizin gereksinimlerine, kütüphaneye olan aşinalığınıza ve modelinizin karmaşıklığına bağlıdır. Bununla birlikte Python, modelleri kolaylıkla eğitmek, değerlendirmek, kaydetmek ve yüklemek için bol miktarda kaynak sağlar.