吴恩达机器学习Coursera-week10

2018-06-13  本文已影响53人  geekpy

Gradient Decent With Large Datasets

Learning with large datasets

在前面的章节(week6)中我们已经知道了当我们已经有了一个low bias的算法时,最重要的就是数据的量的大小,数据量越大最终模型的效果越好。但是,我们不能盲目的增加数据量,必须针对模型的问题来分析是high bias问题还是high variance问题。如果是high bias问题,则盲目增加数据量并没有什么用,必须改进算法才行。回忆下之前的high bias和high variance问题的Jerror对比图:

1.1-high bias vs. high variance

Stochastic Gradient Decent

此小节主要讲了什么是随机梯度下降(stochastic gradient decent),以及为什么要使用随机梯度下降。
首先,回忆了利用梯度下降算法计算的过程,如下图:


1.2-gradient decent

那么,如何解决这个问题呢?这就引入了随机梯度下降。如下图:


1.3-introduce stochastic gradient decent

这个过程中,由于单个样本可能导致的偏离,实际下降过程是非常曲折的,如下图所示:


1.4-gradient decent

Mini-Batch Gradient Decent

在前一节我们已经了解了随机梯度下降的过程,将每次计算所有样本的cost平均值,然后再梯度下降,拆解为每次只针对一个样本进行梯度下降。利用同样的思想,我们可以每次针对一小批样本进行梯度下降,既不是全部样本,也不是单个样本。如下图所示:


1.5-mini-batch gradient decent

mini-batch gradient decent完整的计算过程如下:


1.6-mini-batch gradient decent procedure

Stochastic Gradient Decent Convergence

此小节的主要问题是解决如何判断我们的随机梯度下降随着迭代次数的增加而收敛,以及如何调节𝛼,之前的章节其实我们已经学习过可以通过画J与iteration次数的关系图来判断是否收敛,同理,我们也可以画类似的图形来判断,但是问题是我们不可能每次都计算这个总的J(θ),所以我们必须找一个别的方法来替代,由此我们引出了新的J的计算方法,如下图:


1.7-new method for checking convergence

然后,我们可以通过这个cost平均值与迭代次数的关系图可以做判断,如下图:


1.8-convergence plot

Advanced Topics

Online Learning

本节主要讲如何运用在线学习算法实时地进行模型训练。首先Andrew举了一个在线的包裹运输服务的报价系统的例子,如下图所示:


2.1-shipping service

之后,Andrew又举了一个手机展示的例子,如下图:


2.2-handset query result

此种算法会导致最初展示的结果有非常大的先发优势,最终导致其被点击的概率越来越高。从另一个侧面可以看出很多时候先发优势是非常重要的。先发优势获取头部效应,然后资源进一步向头部靠拢,最后形成鸿沟。这就是马太效应的生动写照啊。

Map Reduce and Data Parallelism

此小节主要讲了如何通过map reduce的方式来并行计算,从而加快训练的速度。尤其是当数据量非常大的时候,有时我们不得不通过map reduce的方式将数据先拆分计算再聚合计算。示例如下:


2.3-map reduce
上一篇下一篇

猜你喜欢

热点阅读