我想知道机器学习算法中有多少是迭代性质的;也就是说,我可以在不同的数据集上依次运行它们,并且模型本身也会细化。是否有任何算法在数学上支持这一点,而且,在运行时或这些模型的准确性方面是否存在一些权衡。
这里不要混淆迭代:在机器学习中迭代意味着什么?
发布于 2018-05-21 09:18:56
多少百分比的机器学习算法是迭代性质的;也就是说,我可以按顺序运行它们
来自深造书籍ch5,SGD
机器学习中的一个反复出现的问题是,大型训练集对于良好的泛化是必要的,但是大型训练集在计算上也更昂贵。
在深入学习之前,学习非线性模型的主要方法是将核技巧与线性模型相结合。许多核学习算法都需要构造m×m矩阵。构造该矩阵的计算代价为O(m^2),这对于具有数十亿实例的数据集来说显然是不可取的。
一般来说,梯度下降通常被认为是缓慢或不可靠的。在过去,梯度下降在非凸优化问题中的应用被认为是愚蠢或无原则的,优化算法可能无法保证在合理的时间内达到一个局部极小值,但它往往会很快地发现成本函数的很低的值,使其足够有用。
基于梯度下降的方法,其基本前提是根据训练数据的随机小集(批)估计梯度,并相应地更新权重,算法将迭代地保持两个步骤之间的交替,直到满足目标(在参数空间中找到一个好的局部极小值),这个过程称为随机梯度下降( SGD的洞察力是期望的)。可以使用一组小样本来近似估计期望)。
在极端情况下,梯度是根据一个例子(在线学习)来估计的。
这些模型在运行时或准确性上是否存在某种权衡?
对于固定的模型大小,每个SGD更新的成本并不取决于训练集大小m。实际上,随着训练集大小的增加,我们经常使用更大的模型,但我们没有被迫这样做。达到收敛所需的更新数通常随着训练集的大小而增加,但是当m接近无穷大时,在SGD对训练集中的每个示例进行采样之前,该模型最终会收敛到其最大可能的测试误差。进一步增加m不会延长达到模型最大可能的测试误差所需的训练时间。从这一观点出发,可以认为用SGD训练模型的渐近代价是O(1)作为m的函数。
https://datascience.stackexchange.com/questions/31899
复制相似问题