学习率调度 (Learning Rate Scheduling)

核心思想:在训练过程中动态地调整学习率。比喻:就像赛车手,在直道上(训练初期)用高速度(大学习率)快速前进,在进入弯道时(训练后期接近最优解)则会减速(小学习率)进行精细微调,以求获得最佳圈速。

动手试试:

点击“开始训练”,观察学习率是如何随着训练轮次 (Epoch) 的增加而自动下降的。

from tensorflow import keras # 定义一个学习率调度函数 def scheduler(epoch, lr): if epoch < 10: return lr else: return lr * tf.math.exp(-0.1) # 创建回调函数 lr_scheduler = keras.callbacks.LearningRateScheduler(scheduler) # 在训练时使用 model.fit(X, y, epochs=50, callbacks=[lr_scheduler])

早停 (Early Stopping)

核心思想:在训练过程中监控一个关键指标(通常是验证集损失),当这个指标在一定轮次内不再提升时,就自动停止训练。比喻:就像烤面包,你会盯着面包的颜色,当它变得金黄酥脆时就立刻拿出来,而不是等到烤焦了才后悔。这能有效防止过拟合,并节省大量的训练时间。

动手试试:

点击“开始训练”,观察训练损失(蓝线)和验证损失(红线)的变化。当验证损失达到最低点后开始回升时,就是“早停”的最佳时机。

from tensorflow import keras # 创建早停回调函数 # monitor: 监控的指标 # patience: 容忍多少个epoch没有提升 early_stopping = keras.callbacks.EarlyStopping( monitor='val_loss', patience=5 ) # 在训练时使用 model.fit( X, y, epochs=100, validation_data=(X_val, y_val), callbacks=[early_stopping] )