ประสิทธิภาพของโมเดลแมชชีนเลิร์นนิงสามารถนำมาประกอบกับความถูกต้องของข้อมูลที่ใช้สำหรับการฝึกอบรมเป็นหลัก และความสามารถของโมเดลในการสรุปข้อมูลนี้ได้ดี ดังนั้น การฝึกโมเดลที่มีการสูญเสียการตรวจสอบความถูกต้องต่ำที่สุดจึงเป็นสิ่งสำคัญ ด้วยการฝึกแบบจำลองอย่างมีประสิทธิผล เรากำลังรับรองว่าแบบจำลองนั้นไม่ได้เหมาะสมเกินไปหรือไม่เหมาะสมเกินไป
การสูญเสียการตรวจสอบสอดคล้องกับอัตราข้อผิดพลาดในตัวอย่างที่ค้างของชุดการฝึกซึ่งไม่ได้ใช้ในขั้นตอนการฝึก และช่วยให้เราวัดความสามารถของแบบจำลองในการสรุป เป้าหมายหลักในโมเดลการเรียนรู้ของเครื่องคือการบรรลุการสูญเสียการตรวจสอบที่ต่ำที่สุด ซึ่งบ่งชี้ว่าโมเดลของเรากำลังเรียนรู้และสรุปได้ดี
วิธีการบันทึกแบบจำลองที่มีการสูญเสียการตรวจสอบที่ดีที่สุด
การฝึกโมเดลเกี่ยวข้องกับการวนซ้ำหลายครั้ง หรือที่เรียกว่ายุค และการสูญเสียการตรวจสอบจะแตกต่างกันไปในแต่ละยุค Python มีไลบรารี่มากมายเช่น Keras ที่เก็บโมเดลเหล่านี้ไว้ในแต่ละยุค เราสามารถใช้คุณสมบัติที่เรียกว่า ModelCheckpoint เพื่อบันทึกโมเดลทุกครั้งที่การสูญเสียการตรวจสอบความถูกต้องดีขึ้นจากรุ่นก่อนหน้า
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)
ทำความเข้าใจกับรหัส: ทีละขั้นตอน
มาดูข้อมูลโค้ดทีละขั้นตอนเพื่อทำความเข้าใจแต่ละส่วน:
1. นำเข้าฟังก์ชัน ModelCheckpoint จาก Keras
2. กำหนดเส้นทางไฟล์ที่คุณต้องการบันทึกโมเดลโดยใช้รูปแบบ .hdf5 รูปแบบนี้ออกแบบมาเพื่อจัดเก็บและจัดระเบียบข้อมูลจำนวนมาก
3. เริ่มต้นฟังก์ชัน ModelCheckpoint ที่นี่ เรากำลังตรวจสอบ 'val_loss' ด้วยโหมด 'min' ซึ่งบ่งชี้ว่าเรามุ่งหมายที่จะลดค่านี้ให้เหลือน้อยที่สุด ด้วย 'save_best_only=True' โมเดลที่ดีที่สุดล่าสุดตามปริมาณที่ได้รับการตรวจสอบจะไม่ถูกเขียนทับ
4. จุดตรวจสอบจะถูกเพิ่มเข้าไปในรายการโทรกลับ พารามิเตอร์การฝึกอื่นๆ เช่น EarlyStopping สามารถรวมอยู่ในรายการนี้ได้เช่นกัน
5. จากนั้นโมเดลจะได้รับการฝึกเกี่ยวกับข้อมูลโดยใช้ model.fit() อาร์กิวเมนต์การโทรกลับใช้เวลาใน callbacks_list
โค้ดจะบันทึกโมเดลเป็น 'weights.best.hdf5' ในแต่ละยุคซึ่งการสูญเสียการตรวจสอบความถูกต้องอยู่ที่ระดับต่ำสุด
Key Python Libraries สำหรับการบันทึกโมเดล
Pythonมีระบบนิเวศของไลบรารีที่หลากหลายสำหรับการบันทึกโมเดลการเรียนรู้ของเครื่อง ไลบรารีที่ใช้กันเป็นหลัก ได้แก่:
- เครา: API โครงข่ายประสาทเทียมระดับสูงนี้สามารถทำงานบน API ระดับล่างอื่นๆ เช่น TensorFlow ช่วยให้สร้างต้นแบบโมเดลการเรียนรู้เชิงลึกได้ง่ายและรวดเร็ว ฟังก์ชัน ModelCheckpoint ใน Keras ให้ความยืดหยุ่นในการตรวจสอบพารามิเตอร์ต่างๆ ในระหว่างกระบวนการฝึกอบรม และบันทึกแบบจำลองหรือน้ำหนักในขั้นตอนต่างๆ
- เทนเซอร์โฟลว์: เฟรมเวิร์กแมชชีนเลิร์นนิงแบบโอเพ่นซอร์สของ Python ช่วยให้นักพัฒนาสามารถสร้างโมเดล ML ที่ซับซ้อนได้อย่างง่ายดาย โดยมีโมดูล SavedModel ซึ่งเป็นรูปแบบการทำให้เป็นอนุกรมสากลสำหรับโมเดล TensorFlow
- Scikit-เรียนรู้: ไลบรารี Python ยอดนิยมสำหรับการเรียนรู้ของเครื่องนี้มียูทิลิตี้สำหรับการบันทึกและการโหลดโมเดล โดยทั่วไปโมดูล Joblib จะใช้สำหรับการซีเรียลไลซ์อ็อบเจ็กต์ Python ด้วยอาร์เรย์จำนวนมาก ซึ่งเป็นสถานการณ์ทั่วไปในเวิร์กโฟลว์แมชชีนเลิร์นนิง
การเลือกไลบรารีส่วนใหญ่ขึ้นอยู่กับข้อกำหนดของโปรเจ็กต์ของคุณ ความคุ้นเคยกับไลบรารี และความซับซ้อนของโมเดลของคุณ อย่างไรก็ตาม Python มีทรัพยากรที่เพียงพอในการฝึกอบรม ประเมิน บันทึก และโหลดโมเดลได้อย่างง่ายดาย