2019-12-31

2019-12-31  本文已影响0人  zero_gau

第 3 步:配置 LinearRegressor


接下来,我们将使用 LinearRegressor 配置线性回归模型,并使用 GradientDescentOptimizer(它会实现小批量随机梯度下降法 (SGD))训练该模型。learning_rate参数可控制梯度步长的大小。



上面的术语解释读起来比较抽象,并且为了防止文章篇幅过长,看了上面忘了下面,所以模型的实现过程放在遇到问题在下面解释

[图片上传失败...(image-1c3df5-1577779381815)]

输入特征=>模型预测=>根据结果计算一下损失(损失就是距离target的差距),然后将参数更新,再放回模型中预测,直至收敛,使得损失变得最小,这时候的参数就是我们想要的参数

[图片上传失败...(image-d33ae2-1577779381815)]

假设我们能够将所有种可能情况全都计算一遍,那么得到的一定是一个类似于这样的碗状图,在其中必定有一点是损失最低的点,但是现实种我们肯定不会有那么大的计算能力和时间去计算出每个结果,我们通常采用一种叫做梯度下降法的方式来"快速"的找到损失最低的点(梯度下降法属于一种优化算法,虽然并不是最好的优化算法,但是其方式简单,应用也很多)。


1.学习速率过慢 [图片上传失败...(image-237074-1577779381815)]

2.学习速率过快 [图片上传失败...(image-c78e31-1577779381815)]

3.学习速率比较好的 [图片上传失败...(image-818959-1577779381815)]

如果让其按照每个点本身的梯度大小来调节权值,那实在是太慢了,所以我们可以为其乘上一个学习速率,意如其名,这样可以人手动的调节学习速率(或许有的人会担心,当即将逼近损失最小的点时,这样会不会不太准确了,放心好了,我们并不需要那么的准确的权值,99%和98%的区别不是太大,但是所要付出的计算量却是超大的)

附上谷歌提供的:优化学习速率体验

下面是两种个效果更好的梯度下降算法方案,第二种更优 随机梯度下降法 (SGD) :它每次迭代只使用一个样本(批量大小为 1)。“随机”这一术语表示构成各个批量的一个样本都是随机选择的。(假设有10000个样本,每次从中随机选一个来执行梯度下降)

小批量随机梯度下降法小批量 SGD)是介于全批量迭代与 SGD 之间的折衷方案。小批量通常包含 10-1000 个随机选择的样本。小批量 SGD 可以减少 SGD 中的杂乱样本数量,但仍然比全批量更高效。(每次随机选一批)

注意:为了安全起见,我们还会通过 clip_gradients_by_norm梯度裁剪应用到我们的优化器。梯度裁剪可确保梯度大小在训练期间不会变得过大,梯度过大会导致梯度下降法失败。

解释完毕,以上

上一篇 下一篇

猜你喜欢

热点阅读