减少(相对于延迟)神经网络中的过度拟合
Reducing (Versus Delaying) Overfitting in Neural Network
在神经网络中,正则化(例如 L2、dropout)通常用于减少过度拟合。例如,下图显示了典型的损失与 epoch,有和没有 dropout。实线 = 训练,虚线 = 验证,蓝色 = 基线(无辍学),橙色 = 有辍学。绘图由 Tensorflow 教程提供。
权重正则化的行为类似。
正则化延迟了验证损失开始增加的时期,但正则化显然不会降低验证损失的最小值(至少在我的模型和教程中是这样上面的情节是采取的)。
如果我们在验证损失最小时使用提前停止来停止训练(以避免过度拟合),并且如果正则化只是延迟最小验证损失点(相对于减少最小验证损失值)那么正则化似乎确实不会导致网络具有更大的概括性,而只会减慢训练速度。
如何使用正则化来减少最小验证损失(以改进模型泛化)而不是仅仅延迟它?如果正则化只是延迟最小验证损失而不是减少它,那么为什么要使用它?
从单个教程情节过度概括可以说不是一个好主意;这是来自 original dropout paper:
的相关图
很明显,如果dropout的作用是延迟收敛,那用处不大。但是当然它不起作用 always (正如你的情节清楚地表明的那样),因此它不应该被默认使用 (这可以说是教训这里)...
在神经网络中,正则化(例如 L2、dropout)通常用于减少过度拟合。例如,下图显示了典型的损失与 epoch,有和没有 dropout。实线 = 训练,虚线 = 验证,蓝色 = 基线(无辍学),橙色 = 有辍学。绘图由 Tensorflow 教程提供。
正则化延迟了验证损失开始增加的时期,但正则化显然不会降低验证损失的最小值(至少在我的模型和教程中是这样上面的情节是采取的)。
如果我们在验证损失最小时使用提前停止来停止训练(以避免过度拟合),并且如果正则化只是延迟最小验证损失点(相对于减少最小验证损失值)那么正则化似乎确实不会导致网络具有更大的概括性,而只会减慢训练速度。
如何使用正则化来减少最小验证损失(以改进模型泛化)而不是仅仅延迟它?如果正则化只是延迟最小验证损失而不是减少它,那么为什么要使用它?
从单个教程情节过度概括可以说不是一个好主意;这是来自 original dropout paper:
的相关图很明显,如果dropout的作用是延迟收敛,那用处不大。但是当然它不起作用 always (正如你的情节清楚地表明的那样),因此它不应该被默认使用 (这可以说是教训这里)...