NN的优化:寻找NN上的一组参数,可显著降低代价函数,该代价函数通常包括整个训练集上的性能评估和额外的正则化项。
1. 批量算法和小批量算法
和一般优化算法不同,ML算法的目标函数通常可分解为训练样本上的总和。ML中的优化算法在计算参数的每一次更新时,通常仅使用整个代价函数中的一部分项来估计代价函数的期望值。
为什么仅仅使用一部分来估计?
n个样本均值的标准差是 δ/n√ ,其中 δ 是样本值真实的标准差。分母表示使用更多样本来估计梯度的方法的回报是低于线性的。例如,一个基于100个样本,一个基于10000个样本。后者需要的计算量是前者的100倍,但仅降低了10倍的均值标准差。因此如果快速计算梯度估计值,而非缓慢的计算准确值,则算法会收敛得更快。
另一个动机:训练集的冗余。最坏极端情况下,训练集所有样本相同,则使用单个样本就可以计算出正确的梯度。实践中不太可能遇到最坏,但大量样本存在冗余是真的,其对梯度做出了相似的贡献。
使用整个训练集的优化算法被称为:批量(batch)梯度算法,或者确定性梯度算法。批量梯度下降 指的是使用全部训练集。批量 单独出现则指一组样本。
每次仅使用单个样本的优化算法