L1 / L2 正则化

核心思想:在原有的损失函数基础上,增加一个与模型权重大小相关的惩罚项。L2 正则化(又称权重衰减)惩罚的是权重的平方和,倾向于让权重变得更小更平滑。L1 正则化惩罚的是权重的绝对值之和,倾向于让一些不重要的权重直接变为零,从而实现特征选择。

动手试试:

下图展示了一条过拟合的曲线。拖动滑块增加 L2 正则化强度 (alpha),观察曲线如何被“拉”向更平滑、更合理的形态。

from tensorflow import keras from keras import layers, regularizers # 在 Keras 层中添加 L2 正则化 layers.Dense( 64, activation='relu', kernel_regularizer=regularizers.l2(0.001) )

Dropout (随机失活)

核心思想:在训练过程的每一步中,随机地“关闭”(即将其输出置为零)一部分神经元。这就像在训练一个团队时,每次都随机让一些队员“临时下班”。这迫使剩下的队员必须更努力地学习,不能过度依赖某几个“明星队员”,从而让整个团队(网络)变得更加鲁棒和强大。

动手试试:

点击“执行一次 Dropout”,观察隐藏层中的神经元是如何被随机“关闭”(变灰)的。

from tensorflow import keras from keras import layers model = keras.Sequential([ layers.Dense(128, activation='relu'), # 添加 Dropout 层 # rate=0.5 表示每次随机关闭 50% 的神经元 layers.Dropout(0.5), layers.Dense(10, activation='softmax') ])