学习大数据集
一种获取高性能的机器学习系统的途径是采用低偏差的学习算法,并用大数据进行训练。
对易混淆单词进行分类的例子:
大数据学习的计算问题:
在用大数据学习之前,先检验随机选用少量的数据学习是否也能得到好的效果。
然后再绘制学习曲线,根据学习曲线选则怎样改进。
随机梯度下降
用梯度下降来训练一个线性回归模型:
用原来的梯度下降算法(批量梯度下降):当样本数量 m 很大时,计算微分项就很慢了(计算机内存也是一个问题)。
随机梯度下降(下图右边):实际上就是遍历每一个样本,使算法每次仅对一个样本的拟合效果变好,然后循环使算法最终收敛。
随机梯度下降算法步骤:
①随机打乱训练集。
②关于某个单一的训练样本(x(i),y(i))来对参数进行更新。
批量梯度下降的收敛过程会取一条合理的直线来达到全局(局部)最小值。
在随机梯度下降中,每一次迭代都会更快,每一次迭代可能会让参数朝着不同的方向前进,最终曲折迂回到达(接近)全局(局部)最小值。
随机梯度下降还有一个外循环(1-10次),来决定遍历训练集多少次,这取决于训练集的大小。
Mini-Batch.梯度下降
Mini-Batch.梯度下降与批量梯度下降相似,只不过只用一个小得多的批量大小(b 的合理范围:2~100)。
完整的算法:
每 b 个样本更新一次参数,所以该算法比批量梯度下降算法快;与随机梯度下降算法相比,在向量化过程中,该算法可能比随机梯度下降算法更好,仅当你有一个好的向量化方式。
随机梯度下降收敛
检测算法收敛:
批量梯度下降算法:绘制优化代价函数曲线。
随机梯度下降算法:在更新参数 θ 之前,先求代价函数,观察假设的表现;每 1000 次迭代后,求出前 1000 个样本代价函数的均值,绘制优化代价函数曲线。
从左到右,从上到下:图1,图2,图3,图4。
图3:更少的样本求均值(蓝色),噪音太多,导致观察不出,用更多的样本求均值(红色),更好的观察收敛情况。
图3粉色线情况:算法没有进行学习,需要调整学习速率或特征或者算法其他的东西。
图4:用更小的学习速率 α 。
随机梯度下降算法求得的参数是在全局(局部)最小值附近的接近值。
多数情况下,学习率 α 不变,也可让 α 随迭代次数的增加而增加。
在线学习
在线学习适用于用于连续的数据流,优点是让算法适应最新的状态。(可以转换为标准的拥有一个固定的样本的机器学习问题,先让网站运行,保存数据。)
以提供运输服务为例:
x:用户特点的特征。
p:用户使用该运输服务的概率。
那么我们就能以此选择一个价格,使得用户很大可能使用该运输服务,也能获得较高回报。
其他的例子:
减少映射与数据并行
将算法求和部分的数据发送给不同计算机或者同一计算机不同核上计算,再进行整合可以加快算法速度。