理解权重和偏置是什么
- 全连接层: 输出=f(输入*权重+偏置), 权重是这个线性函数的一次性系数, 偏置是常数项.
- 卷积层: 输出=权重卷积核和输入做卷积运算, 这里的权重是卷积核的各个元素, 卷积核也经常被叫做过滤器filter或kernel. 传统的图像处理, 图像滤波器算子需要人工指定, 比如高斯滤波器, 在深度学习中, 卷积核是通过训练学习求得的.
- 权重和偏置的调整: 每个batch迭代完成后, 都会通过反向传播来更新权重和偏置, 权重更新由输入和梯度推导得到, 而偏置仅仅由梯度推导,不需要输入项. 更新都是以最小化损失函数为目标的.
理解batch
- batch size: yolo 每次会从整个数据集中随机选出一个batch的数据进行前向传播训练.
- 计算此batch上所有样本的损失函数值.
- 通过损失对各层参数计梯度求导, 计算出权重参数新值
- 将计算出的更新值应用到模型上, 完成参数的批量更新
- 重复采样下一个batch, 反复完成前向和后向传播, 直至完成一个全量的epoch
- 即yolov8采用的训练策略是batch 更新方式.
理解epoch
- epoch 是训练一个完整数据集的过程, 训练一个epoch后, 会自动完成一次 val, 我们可以观察收敛情况.
特征图数据的变化
- 输入图像为 640×640×3, 3为RGB通道数.
- 接着进入卷积层+池化处理.
- [卷积层+池化]首先通过一个 3×3x3 的卷积核进行卷积操作, 卷积核的通道数也为 3 , 生成一个 6