问:假设我们找到了一个W,使得L = 0。这个W是唯一的吗?
答:不是!2W 也使得 L = 0!
问:我们如何选择w和2w
答:
正则化是怎么推导出来的?是使用拉格朗日乘子法推导的。
还有哪些正则化手段?
Dropout(随机失活): Dropout 是通过在训练过程中以一定的概率随机关闭神经网络中的某些神经元,从而减少过拟合的一种方法。
Batch Normalization(批标准化): 批标准化是通过对每个批次的输入进行标准化,使得其均值接近零和方差接近一,从而加速训练过程并减轻梯度消失问题。
Stochastic Depth(随机深度): 随机深度是通过以一定的概率在训练中随机跳过某些层,从而降低模型的复杂度,减轻过拟合。
Fractional Pooling(分数池化): 分数池化是一种池化操作,相较于传统的最大池化或平均池化,它允许以分数步幅对输入进行池化,从而提供更大的灵活性。
为什么进行正则化呢?
- 表达对权重的偏好
- 使模型简单,以便在测试数据上工作
- 通过添加曲率来改善优化效果
优化:
随机搜索
在实践中:始终使用解析梯度,但使用数值梯度检查实现的正确性。这被称为梯度检查。
解析梯度就是直接求导。
数值梯度就是代入一个极小的值取极限
优化的问题:SGD:1、如果损失函数在一个方向上变化迅速而在另一个方向上变化较慢,梯度下降会如何处理呢?2、如果损失函数具有局部最小值或鞍点呢?3、我们的梯度来自于小批量数据,因此它们可能会存在噪音!
"附注:损失函数具有较高的条件数:Hessian矩阵最大和最小奇异值的比值较大。"
adam参数设置:Adam with beta1 = 0.9, beta2 = 0.999, and learning_rate = 1e-3 or 5e-4 is a great starting point for many models!
学习率的优化:高初始学习率可能导致损失爆炸;在前约 5,000 次迭代中线性增加学习率可以防止这种情况发生。经验法则:如果将批量大小增加 N 倍,同时将初始学习率按比例增加 N 倍。
一阶优化和二阶优化:(1) 利用梯度和海森矩阵形成二次逼近 (2) 移动到逼近的最小值处
为什么这样对深度学习是不利的?参数爆炸
拟牛顿方法(BGFS最为流行):与求逆 Hessian(O(n^3))不同,通过随时间进行秩为1的更新来近似逆 Hessian(每次更新的复杂度为 O(n^2))。
- L-BFGS(有限内存 BFGS):不形成/存储完整的逆 Hessian。
- 通常在完整批处理、确定性模式下表现非常好,即如果你有一个单一、确定性的函数 f(x),那么 L-BFGS 可能会工作得很好。
- 不太适用于小批量设置。在这种情况下表现不佳。将二阶方法调整到大规模、随机的设置是一个活跃的研究领域。- 在许多情况下,Adam是一个不错的默认选择;即使使用恒定的学习率,它通常也能表现良好。
- SGD+动量可能优于Adam,但可能需要更多的学习率和调度调整。
- 如果你能够承担完整批量更新的成本,那么可以尝试使用L-BFGS(别忘了关闭所有的噪音源)。