神经网络与深度学习第二次课程总结

一.误差反传算法

BP(backpropagation反向传播)算法  

网络结构与符号定义

设网络层数共L层,输入层为0层,输出层为L层,层数用上标[l]表示

网络中第l层输出:a[l] =f(z[l]),其中z[l]为该层线性输出,若选取作用函数为Sigmoid函数,则可记为::a[l]= σ(z[l])

第l层的第i个节点线性输出为:zi[l]=∑wij[l]*aj[l-1]

网络中第l层线性输出: z[l]=W[l]*a[l-1]

其中W为权值矩阵,列数为上层神经元数目,行数为本层神经元数目。

BP算法基本思想

设算法的输入输出样本(导师信号)为:{x(1),y(1)}, {x(2), y(2)}......共N个样本。

网络训练的目的就是使对每一个输入样本,调整网络权值参数W,使输出均方误差最小化。这是一个最优化问题。指标函数:

J(x,w)=1/2*(e(i)(x,w))2

其中e(i)= y(i)-y^(i)

算法的实现流程为

  1. 前向传播:输入数据逐层计算,得到预测输出

  2. 误差计算:使用均方误差损失函数

  3. 反向传播:从输出层到输入层逐层计算梯度,利用链式法则更新权值。

  4. 梯度下降:权值更新公式为 ,其中α为学习率。

计算过程

1.初始化:从输出层(l=L)开始计算误差。

2.输出层梯度:

3.隐含层梯度:

4.权值更新:

5.迭代更新:从输出层逐层反向更新至输入层。

二.性能优化

常用技巧

模型初始化:

把所有权值在[-1,1]区间内按均值或高斯分布进行初始化。

Xavier初始化:为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。因此需要实现下面的均匀分布:

训练数据的分布:

训练数据,验证数据,测试数据通常按70%,15%,15%或60,20,20分布,数据很多时,训练和验证数据可适当减少。

另外,可以采用K折交叉验证法,把原始训练数据被分成K个不重叠的子集。 然后执行K次模型训练和验证,每次在K−1个子集上进行训练,并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。最后,通过对 𝐾次实验的结果取平均来估计训练和验证误差。

权重衰减:

为防止过拟合和权值震荡,加入新的指标函数项:

第二项约束了权值不能过大。在梯度下降时,导数容易计算:

动量法:

用于处理病态曲率问题,下面是病态曲率问题的形象解释:

动量方法相当于把纸团换成了铁球;不容易受到外力的干扰,轨迹更加稳定;同时因为在鞍点处因为惯性的作用,更有可能离开平地,到达极小值点,避免了陷入局部极小值解。

更新公式为:

自适应梯度方法:

即权值参数自适应变化,具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对应一个较小的学习率。通过自适应调节学习速率,可以加速收敛。

三.卷积神经网络基础

全连接网络的问题:

全连接网络存在着参数爆炸、容易过拟合和局部极小值的问题。

输入为图像时(如 1000×1000),隐含层节点数过多(如 1M),导致参数数量级达1012,计算效率低且难收敛。通过改用局部连接网络(如卷积层),可以减少参数数量。

另外,权值过多易过拟合,优化过程易陷入局部极小值,可以对信息分层处理,每一层在上层提取特征的基础上获取进行再处理,得到更高级别的特征。

深度学习平台简介:

主流框架有TensorFlow、PyTorch、Caffe、MXNet 等,课程中主要使用pytorch

张量(Tensor)与计算图是pytorch中的核心概念。在计算图中,用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点”用来表示施加的数学操作,但也可以表示数据输入的起点/输出的终点,或者是读取/写入持久变量的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。

Pytorch中使用 tensor 表示数据,用 Dataset、DataLoader 读取样本数据和标签,用变量(Variable) 存储神经网络权值等参数,用计算图 (computational graph) 来表示计算任务,在代码运行过程中同时执行计算图。

卷积神经网络基础

1.核心概念:

卷积操作:局部连接、权值共享、多通道卷积(如 RGB 三通道)。

填充(Padding)与步长(Stride):控制输出尺寸与信息保留。

池化(Pooling):降维并提取局部统计特征(均值或最大值)。

2.网络结构

由卷积层、池化层交替堆叠,后接全连接层。

前向传播公式为:

反向传播:推导了池化层与卷积层的误差回传机制。

3.典型任务:图像分类、目标检测、语义分割等,常用数据集包括 MNIST、CIFAR、ImageNet。

LeNet5网络

1.网络结构

层级设计:

输入层(32×32)→ 卷积层(C1: 6@28×28)→ 池化层(S2: 6@14×14)

→ 卷积层(C3: 16@10×10)→ 池化层(S4: 16@5×5)→ 全连接层(C5: 120 → F6: 84 → 输出层: 10)。

参数计算:

C1 层:6 个 5×5 卷积核,共 (5×5+1)×6×28×28=122,304 个连接。

输出层:使用径向基函数(RBF)计算类别距离。

2.代码实现

PyTorch 实现示例:通过 nn.Sequential 构建网络,包含卷积、池化、激活函数(Sigmoid)、全连接层。

LeNet5网络的特点为:无填充(Padding)、平均池化、浅层结构(约 6 万参数)。

与现网区别主要为:早期网络未使用 ReLU、最大池化或批量归一化,层数较浅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值