终于来到了倒数第二周,这章的主要内容是怎样应对超大样本量的机器学习项目,例如训练集有500万个样本。
之前我们曾提到,有时候样本量的多少决定了一个模型的好坏,当样本量达到一定数量级时,应用不同算法获得的结果差不多。有句名言“最后获胜的人往往是那些拥有最多数据量的人,而不是那些拥有最好算法的人”
当然不断增多训练样本量不总是有效,我们需要有评价标准告诉我们在何种情况下,增大样本量会带来益处。对于下面的左图情况,增加样本量还会带来好处;但是右图的情况告诉我们再增加样本量也不会有帮助了,你或者可以考虑增加特征变量了。
1. Stochastic gradient descent
Stochastic gradient descent是梯度下降的一种特殊形式。
以我们之前学习过的应用在线性回归中梯度下降算法为例,在每一轮更新参数时,计算每个参数的梯度过程中,都需要有一个求和步骤,如下图红框所示。对于超大级别的训练集,单这一次求和就要花费巨量的时间和资源;考虑到需要迭代很多步,这样会导致计算过程消耗巨大。