13、神经网络入门:从理论到Python实现

神经网络入门:从理论到Python实现

1. 损失函数的随机梯度下降

在神经网络中,要计算梯度并应用梯度下降法,通常需要在训练集的每个点上评估损失函数及其对网络参数的导数,这在大多数情况下计算成本过高。因此,我们采用随机梯度下降(SGD)技术。

1.1 小批量样本的选择

运行SGD时,首先从训练集中选择一些样本,这些样本组成一个小批量(mini - batch)。每个小批量的长度固定,称为小批量大小。对于像手写数字识别这样的分类问题,选择与标签数量相同数量级的批量大小是个不错的做法,这样可以确保每个标签在小批量中都有代表。

1.2 前向传播与损失计算

对于一个具有 $l$ 层的前馈神经网络和大小为 $k$ 的小批量输入数据 $x_1, \ldots, x_k$,可以计算神经网络的前向传播,并计算该小批量的损失。对于该批次中的每个样本 $x_j$,可以评估损失函数相对于网络中任何参数的梯度。第 $i$ 层的权重梯度和偏置梯度分别称为 $\Delta_jW_i$ 和 $\Delta_jb_i$。

1.3 参数更新规则

通过减去该批次的累积误差来更新参数,其中 $a > 0$ 表示学习率,这是在训练网络之前指定的一个值。使用小批量是在梯度准确性和计算效率之间的一种折衷。由于小批量样本是随机选择的,所以这种方法被称为随机梯度下降。虽然在梯度下降中理论上可以保证接近局部最小值,但在SGD中并非如此。不过,经过足够的迭代,通常可以接近一个(局部)最小值。

1.4 优化器

计算(随机)梯度是由微积分的基本原理定义的,但使用梯度更新参数的方式并非如此。像S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值