赞
踩
n个有限
样本的损失函数,简单来说是将n个损失函数求平均,计算能够使得我们得到最小的平均损失函数值处的x值
min
x
1
n
∑
i
=
1
n
f
i
(
x
)
大规模的机器学习
– 定义训练标签数据Data如下:d:表示每一个训练样本的维度,n表示参与训练的样本数
d
a
t
a
:
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
n
,
y
n
)
}
∈
R
d
×
γ
现在在训练过程中n可能非常大,有可能有百万个训练样本。每个样本的维度d表示一个样本的特征,简单来说,把每个样本比作一个人,那么维度d表示的是这个人所有的特征数,比如这个人有5个特征,身高,肥胖,财富,社会地位,年龄;而样本n表示有n个这样的人,每个人对应特征类型一样,但是具体内容不一样。
Least-Squares
loss
,神经网络为DNN
,
y
i
y_i
yi表示真实标签,
D
N
N
(
x
;
a
i
)
\mathrm{DNN}(x;a_i)
DNN(x;ai)表示输入x经过神经网络计算后的
y
m
y_m
ym,损失函数为真实标签
y
i
y_i
yi与
y
m
y_m
ym之间的差值常规的梯度下降法如下,将求n个样本的梯度均值,并加入到方程中
x
k
+
1
=
x
k
−
η
k
∇
f
(
x
)
=
x
k
−
η
k
{
1
n
∑
i
=
1
n
∇
f
i
(
x
k
)
}
step1&step2
直到
i
(
k
)
i(k)
i(k)里面的所有元素都取到后停止。随机梯度
g
(
x
)
g(x)
g(x)进行无偏估计,保证计算的随机梯度的期望和整个数据的梯度一致,简单来说是进行样本估计的梯度期望来进行表示整体的均值,保证每次的小批量梯度的梯度不会有太大差异。step1
:以
x
0
x_0
x0为初始值step2:
循环
k
=
0
,
1
,
⋯
,
k=0,1,\cdots,
k=0,1,⋯,i
进行替换i
不进行替换step3:
用
g
k
=
∇
f
i
(
x
)
g_k=\nabla f_i(x)
gk=∇fi(x) 作为随机梯度step4:
用迭代公式进行更新参数
x
k
+
1
=
x
k
−
η
k
g
k
x_{k+1}=x_k-\eta_k g_k
xk+1=xk−ηkgk为了解决当样本数巨大时的无法一次性算出梯度问题,我们采用将整个样本打包成为小批量进行梯度计算,就像是一口吃不成一个胖子,但是胖子是一口一口吃成的。
小批量
随机梯度下降不适合当DNN神经网络步长
?Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。