TensorFlow and deep learning,without a PHD 第4章

理论:梯度下降

现在我们的神经网络能根据输入的图像输出预测结果,我们需要想办法衡量输出的结果的好坏,也就是网络输出的预测结果和我们所知道的真实结果之间的差距。请记住,我们这个数据集中的所有图像都有真正的标签。

任何距离函数都可以,普通的欧几里德距离表现都很好,但对于分类问题,要一个叫做“交叉熵”的距离更有效。

One-hot”编码意味着使用10个值的向量来表示标签“6”,所有值都是零,但第6个值是1。

这很方便,因为这种格式非常类似于我们的神经网络输出预测的方式,也是10个值的向量。

“训练”神经网络实际上意味着使用训练图像和标签来调整权重和偏差,从而最小化交叉熵损失函数。这就是它的运作方式。

交叉熵是一个与 训练图像的权重、偏差、像素及其已知标签相关 的函数。

如果我们计算交叉熵相对于所有权重和所有偏置的偏导数,我们就得到一个“梯度”,它针对给定的图像、标签以及权重和偏置的当前值来计算。记住,我们有7850个权重和偏置,所以计算梯度听起来需要很多工作。幸运的是,TensorFlow将为我们做到这一点。

梯度的数学性质是它指向“向上”的方向。而我们想要去交叉熵低的地方,所以我们走与梯度相反的方向。我们用梯度乘以学习率(一个很小的值),然后更新权重和偏差,并使用下一批训练图像再次执行相同的操作。希望这能让我们深入到交叉熵最小的深渊。

在该图中,交叉熵表示为2个权重的函数。事实上,还有更多。梯度下降算法遵循最陡下降到局部最小的路径。在每次迭代中训练图像也会改变,以便我们收敛到对所有图像都适用的局部最小值。

Learning rate"学习率”:您不能在每次迭代中直接用整个梯度长度更新权重和偏差。这就像穿着非常有弹力的靴子试图到达谷底。你会从山谷的一边跳到另一边。为了达到底部,您需要走更小的步伐,即仅使用梯度的一小部分,通常在1/1000区域。我们把这个数字称为“学习率”。

总而言之,这里的训练循环是什么样子的:

训练数字和标签=>损失函数=>梯度(偏导数)=>最速下降=>更新权重和偏差=>重复下一小批训练图像和标签

为什么要使用100个图像和标签的“小批量”?

毫无疑问,你可以只用一幅示例图像计算你的梯度,并立即更新权重和偏差(在科学文献中称为“随机梯度下降”)。

对100个示例进行此操作给出了更好地表示不同示例图像所施加的约束的梯度,因此可能更快地收敛到解决方案。

小批量的大小是一个可调节的参数。

还有另一个更技术性的原因:处理 批处理 还意味着处理更大的矩阵,而这些矩阵通常更容易在GPU上优化。

常见问题:

为什么交叉熵是用于分类问题的正确距离?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值