pytorch图像分类篇:1.卷积神经网络基础与补充

前言

最近在b站发现了一个非常好的 计算机视觉 + pytorch 的教程,相见恨晚,能让初学者少走很多弯路。
因此决定按着up给的教程路线:图像分类→目标检测→…一步步学习用pytorch实现深度学习在cv上的应用,并做笔记整理和总结。

up主教程给出了pytorch和tensorflow两个版本的实现,我暂时只记录pytorch版本的笔记。

参考内容来自:

  • up主的b站链接:https://space.bilibili.com/18161609/channel/index
  • up主将代码和ppt都放在了github:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
  • up主的CSDN博客:https://blog.csdn.net/qq_37541097/article/details/103482003

卷积神经网络

pytorch图像分类篇:1.卷积神经网络基础与补充_第1张图片


CNN正向传播——以LeNet举例

第一节课主要是通过LeNet网络讲解了CNN中的卷积层、池化层和全连接层的正向传播过程。(包含卷积层的神经网络都可以称为卷积神经网络),由于是基础,就不再赘述。

关于CNN基础可以参考CNN基础
关于LeNet网络可以参考LeNet详解
pytorch图像分类篇:1.卷积神经网络基础与补充_第2张图片

这里推荐一个LeNet的可视化网页,有助于理解(需)https://www.cs.ryerson.ca/~aharley/vis/conv/


补充1——反向传播中误差的计算:softmax/sigmoid

之前我自己总结过神经网络的反向传播过程,即根据误差的反向传播来更新神经网络的权值。

一般是用 交叉熵损失Cross Entropy Loss)来计算误差

pytorch图像分类篇:1.卷积神经网络基础与补充_第3张图片
需要注意的是,softmax的所有输出概率和为1,例如进行图像分类时,输入一张图像,是猫的概率为0.3,是狗的概率为0.6,是马的概率为0.1。

pytorch图像分类篇:1.卷积神经网络基础与补充_第4张图片

而sigmoid的输出则没有概率和为1的要求。


补充2——权重的更新

pytorch图像分类篇:1.卷积神经网络基础与补充_第5张图片
实际应用中,用优化器optimazer)来优化梯度的求解过程,即让网络得到更快的收敛:

  • SGD优化器(Stochastic Gradient Descent 随机梯度下降)
    • 缺点:1. 易受样本噪声影响;2. 可能陷入局部最优解
    • 改进:SGD+Momentum优化器
  • Agagrad优化器(自适应学习率)
    • 缺点:学习率下降的太快,可能还没收敛就停止训练
    • 改进:RMSProp优化器:控制下降速度
  • Adam优化器(自适应学习率)

详情可参考机器学习:各种优化器Optimizer的总结与比较
附图:几种优化器下降的可视化比较
pytorch图像分类篇:1.卷积神经网络基础与补充_第6张图片

你可能感兴趣的:(#,pytorch图像分类,神经网络,卷积,深度学习,机器学习,人工智能)