Epoch
- Epoch 是指完成一次完整的数据集训练的过程。
- 比如,有一个数据集有1000个样本,当网络用这些样本训练一次后,这就是一个epoch。
Iteration
- Iteration 是指在一个epoch中,使用一个batch进行训练的次数。
- 如果你的数据集有1000个样本,batch size是100,那么一个epoch就会有10次iteration(1000/100=10)。
Batch Size
- Batch Size 是指每次iteration中用于训练的样本数量。
- 如果你的batch size是100,每次训练就使用100个样本。
反向传播(BP)推导
假设我们有一个简单的三层神经网络(输入层、隐藏层和输出层):
- 输入层: xxx
- 隐藏层: hhh
- 输出层: yyy
前向传播
-
输入到隐藏层: h=f(Wxhx+bh)h = f(W_{xh} x + b_h)h=f(Wxhx+bh) 其中 WxhW_{xh}Wxh 是输入到隐藏层的权重矩阵,bhb_hbh 是隐藏层的偏置向量,fff 是激活函数。
-
隐藏层到输出层: y^=g(Whyh+by)\hat{y} = g(W_{hy} h + b_y)y^=g(Whyh+by) 其中 WhyW_{hy}Why 是隐藏层到输出层的权重矩阵,byb_yby 是输出层的偏置向量,ggg 是输出层的激活函数,通常在分类问题中是softmax函数。
损失函数
假设我们使用均方误差损失函数:
其中 yyy 是实际输出,y^\hat{y}y^ 是预测输出。
反向传播
我们需要计算损失 LLL 对每个权重和偏置的梯度,然后更新这些参数。我们从输出层开始,逐层向后推导。
-
输出层梯度:
-
隐藏层到输出层权重梯度:
-
隐藏层到输出层偏置梯度:
-
隐藏层误差:
-
输入层到隐藏层权重梯度:
-
输入层到隐藏层偏置梯度:
参数更新
使用梯度下降法更新权重和偏置:
其中 η 是学习率。
深度神经网络(DNN)反向传播算法(BP) - 刘建平Pinard - 博客园 (cnblogs.com)
池化
1. 池化的作用
池化的主要作用有两个:
- 降低计算复杂度:通过减少特征图的尺寸,减少后续卷积层和全连接层的计算量。
- 减小过拟合:通过降低特征图的分辨率,可以使模型更具鲁棒性,对输入数据的小变化不那么敏感。
2. 池化类型
池化操作通常有两种类型:
- 最大池化(Max Pooling):从池化窗口中选择最大值。
- 平均池化(Average Pooling):从池化窗口中选择平均值。
池化(Pooling)的种类与具体用法——基于Pytorch-CSDN博客
一图读懂-神经网络14种池化Pooling原理和可视化(MAX,AVE,SUM,MIX,SOFT,ROI,CROW,RMAC )_图池化-CSDN博客
卷积神经网络(CNN)反向传播算法 - 刘建平Pinard - 博客园 (cnblogs.com)