5、计算机视觉与神经网络:从基础到实践

计算机视觉与神经网络:从基础到实践

1. 神经网络训练基础

1.1 训练迭代与梯度下降

在神经网络训练中,对整个训练集进行一次完整迭代(从步骤 1 到 4)被称为一个轮次(epoch)。当每次仅随机选择一个训练样本(即 n = 1)进行训练时,这种过程被称为随机梯度下降(SGD)。SGD 易于实现和可视化,但速度较慢(更新次数更多)且噪声较大。因此,人们更倾向于使用小批量随机梯度下降,即使用较大的 n 值(受计算机性能限制),对每个包含 n 个随机训练样本的小批量数据计算梯度并求平均值,这样可以减少噪声。如今,无论 n 值如何,SGD 这个术语都被广泛使用。

1.2 网络训练代码实现

为了让网络具备分类能力,我们需要更新相关类的代码,实现反向传播和优化功能。

1.2.1 更新全连接层类
class FullyConnectedLayer(object):
    # [...] (代码未改变部分)
    def __init__(self, num_inputs, layer_size, activation_fn, d_activation_fn):
        # [...] (代码未改变部分)
        self.d_activation_fn = d_activation_fn  # 激活函数的导数
        self.x, self.y, self.dL_dW, self.dL_db = 0, 0, 0, 0  # 存储属性

    def forward(self, x):
        z = np.dot(x, self.W) +
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值