赞
踩
大数据集学习有其特有的问题,具体来说是计算问题。
下面将讲述两个主要方法用来处理庞大的数据集,第一个称为随机梯度下降,第二个是减少映射。
对于很多机器学习的算法,例如线性回归,逻辑回归和神经网络。我们推导算法的方法是提出一个代价函数,或是提出一个优化目标,然后用梯度下降算法求代价函数的最小值,但当我们的训练集很大时,梯度下降算法的计算量会变得非常大。故对普通的梯度下降算法进行改进,称之为随机梯度下降算法,这将使我们的算法能应用于更大的训练集中。
假设你在使用梯度下降法来训练一个线性回归模型
批量梯度下降算法:
我们每次都要同时考虑所有的训练样本,我们称之为一批训练样本。
J
t
r
a
i
n
(
θ
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
R
e
p
e
a
t
{
θ
j
:
=
θ
j
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
f
o
r
e
v
e
r
y
j
=
0
,
.
.
.
,
n
}
J_{train}(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 \\ Repeat \{ \\ \theta_j:=\theta_j - \alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\\ for\;\;every \;j=0,...,n\\ \}
Jtrain(θ)=2m1i=1∑m(hθ(x(i))−y(i))2Repeat{θj:=θj−αm1i=1∑m(hθ(x(i))−y(i))xj(i)foreveryj=0,...,n}
随机梯度下降算法:
为了更好的描述随机梯度下降算法,我们用另一种形式把代价函数写出来,我们将代价函数定义为
c
o
s
t
(
θ
,
(
x
(
i
)
,
y
(
i
)
)
)
=
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
cost(\theta,(x^{(i)},y^{(i)}))=\frac{1}{2}(h_\theta(x^{(i)})-y^{(i)})^2
cost(θ,(x(i),y(i)))=21(hθ(x(i))−y(i))2
J
t
r
a
i
n
(
θ
)
=
1
m
∑
i
=
1
m
c
o
s
t
(
θ
,
(
x
(
i
)
,
y
(
i
b
)
)
)
J_{train}(\theta) = \frac{1}{m}\sum_{i=1}^{m}cost(\theta,(x^{(i)},y^{(i b)}))
Jtrain(θ)=m1i=1∑mcost(θ,(x(i),y(ib)))
梯度下降第一步是随机打乱所有数据,接下来对所有训练样本进行遍历。然后进行如下更新
在随机梯度下降算法中,我们有一个外层循环,它决定了内循环的执行次数,所以,外层循环应该执行多少次却决于训练集的大小,通常一次就够了,最多到10次,但那是特殊情况。
总结:批量梯度下降算法中,每次迭代,我们都要用到所有的m个样本,而在随机梯度下降算法中,每次迭代我们只需使用一个样本。-
Mini-batch梯度下降算法则是介于两者之间,具体来说,这个算法每次迭代会使用b个样本,这里b是一个称为mini-batch大小的参数,通常会选择b的值为10,同时b的取值范围为b=2到b=100。它的思想是,既不一次只用1个样本,也不一次使用m个样本,而是一次用b个样本。
下面讲述如何确保调试过程已经完成,并且已收敛到合适的位置。
以及怎样调整随机梯度下降中的学习速率 α \alpha α的值。
在线学习机制让我们可以模型化一些问题。
就是我们有一波连续的数据流想要用算法从中学习的这类问题。
如今有许多大型网站或者许多大型网络公司使用不同版本的在线学习机制算法,从大批涌入网站的用户身上进行学习,特别是,如果你有一个由不断进入的网站的用户流所产生的连续的数据流,你就可以使用在线学习机制从数据流中学习用户的偏好,然后使用这些信息来优化关于网站的决策。
很多机器学习过于庞大以至于不能单机运行,有时候可能数据太多了,你不想把所有数据都在一台电脑上跑一遍,无论你在这台电脑上使用了什么算法。
下面将介绍MapReduce,这个方法可以应用在大规模机器学习上。
展示一个复杂的机器学习系统是如何被组合起来的。
介绍机器学习流水线有关的概念以及如何分配资源,来对下一步计划做出决定。这既适用于自己开发一个复杂的机器学习应用,也可以适用于一个开发团队,共同开发机器学习应用。
最后我想通过介绍照片OCR问题来告诉你机器学习中许多有用的想法和概念,其中之一就是如何将机器学习应用到计算机视觉问题中,而另外一个就是人工数据合成的概念。
虽然现在照片OCR对于扫描文档来说已经是一个比较简单的问题了,但对于数码文档来说,现在还是一个很难的机器学习问题。
滑动窗口分类器
这里省略细节。
人工数据合成只适用于特定问题,经常需要思考改进并且深入了解它。
即ceiling analysis,当你自己或你跟你的团队,在设计某个机器学习系统工作流时,这种方式通常能提供一个很有价值的信号,很好地指导你,你的工作流中哪一部分最值得你花时间去研究。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。