机器学习笔记-day07

十七、大规模机器学习

17.1 大型数据集的学习

一个获取高性能的机器学习系统的途径:采用低偏秩学习算法。

可以先取出一小部分的数据,绘制学习曲线,这样就能很快判断出,是要调整算法,还是要使用更多的数据。

如上图:左侧曲线,如果有跟多的数据,两者就会拟合。

右侧曲线,更多的数据,并不能带来更大的改善。

17.2 随机梯度下降法

随机梯度下降算法在每一次计算之后便更新参数\(\theta\),而不需要首先将所有的训练集求和,在梯度下降算法还没有完成一次迭代时,随机梯度下降算法便已经走出了很远。但是这样的算法存在的问题是,不是每一步都是朝着”正确”的方向迈出的。因此算法虽然会逐渐走向全局最小值的位置,但是可能无法站到那个最小值的那一点,而是在最小值点附近徘徊。

17.3 小批量梯度下降

批量梯度下降,一次处理\(m\)个样本

随机题图下降,一次处理1个样本

小批量梯度下降,一次处理\(b\)个样本,通常在\(2 \sim 200\) 之间

17.4 随机梯度下降收敛

曲线3,需要更大的学习率,或者算法就是错的。

曲线4,需要更小的学习率。

随机梯度下降,最终的结果只是接近最小值,而并没有达到最小值。想要在接近终点时更平滑,可以是学习率逐渐减小而不是固定不变。

\(\alpha = \frac{const 1}{iteration\,Number + const2}\)

随着我们不断地靠近全局最小值,通过减小学习率,我们迫使算法收敛而非在最小值附近徘徊。 但是通常我们不需要这样做便能有非常好的效果了,对进行调整\(\alpha\)所耗费的计算通常不值得

17.5 在线学习

适用于用户新增、或者用户习惯变化的场景。

在线学习的算法与随机梯度下降算法有些类似,我们对单一的实例进行学习,而非对一个提前定义的训练集进行循环。

17.6 Map-reduce和数据并行

将计算量分派的多个机器,然后整合

十八、应用实例:图片文字识别

18.1 问题描述和流程图

18.2 滑动窗口

1,使用不同尺寸的窗口对图像进行剪裁,判断,然后重新剪裁

2,按照比例放大剪裁区域,重复步骤1

18.3 获取大量数据和人工数据

1,利用字库

2,对现有的数据进行修改

获取更多数据的方法:

1,人工数据合成

2,手动手机、标记数据

3,众包

18.4 上限分析

对问题进行模块拆分,然后对流程进行分析,确定那部分是最能提升最终结果的,优先处理。

判断的办法:可以先手动处理一些数据,分析这次的处理能够带来多大的提升。

十九、总结

posted on 2020-10-26 23:29  moket  阅读(30)  评论(0)    收藏  举报