课程链接:https://aistudio.baidu.com/aistudio/course/introduce/6771
2.4
#####################################################
班主任先讲:
QQ群的三个作用
平台的作用
在github的paddle上可以用右上角star可以收藏paddlepaddle 代码
今晚内容:
1.12生肖分类
2.图像分类的脉络及整理
3.用 网络实现对于十二生肖的分类
鼓励学习的时候完成作业,第一个完成的和效果好的都有奖
鼓励发布学习笔记,标题、内容都有相关的要求,并且上传到讨论区中
#####################################################
正课部分:
玩转12生肖分类
1.了解十二生肖分类
2.图像分类原理
3.搭建ResNet50网络实现12生肖分类
任务本质:找到一个最优的算法,让机器讷讷够个分清每个属相动物的照片,是一个 图像分类 任务
即 输入为图片,输出为不同的生肖。
特征:
1.有明确的固定标签集合
2.通过数据对于模型的训练,找到一个最优(想对的概念)的算法。
3. 通过算法对于输入的十二生肖图像进行分类。
CV领域的常见任务: 图像分类、图像分割、物体检测 等
图像分类
本次属于图像分类(和昨天的手写数字识别是一个任务)
图像分类的较为经典案例:手写数字识别、Cifar10数据集(常见物体和动物)、垃圾分类
图像分类的主要任务类型:
计算机图像的主流处理方法: 卷积神经网络(CNN)
LeNet最先提出(上世纪90年代就被提出了) --》AlexNet于2012年改进并且奠定了神经网络日后的繁荣
–》 此后沿着多个方向发展,如:
沿着网络层次加深的方法有: VGG16、VGG19、MSRANet等
沿着增强卷积模块功能发展有:NIN、GoogleNet 等
两者结合 如ResNet (今天所用的网络)
原理是仿照人类视觉和大脑对于图像信息的处理。
图像分类问题一直引导着卷积神经网络的发展。
快速上手卷积神经网络——以 LeNet-5为例
该网络是1989年被突出的,定义了CNN的基本结构,为CNN的“开山之作”
卷积层
池化层
全连接层
问题定义:对于12生肖的图像进行分类
数据准备:paddle.vision.dataset
模型准备和开发:
…
…
…
(参考:第2课案例1初识卷积神经网络)
https://aistudio.baidu.com/aistudio/projectdetail/1506996
(参考:『深度学习7日打卡营』第2课案例1基础知识)
https://aistudio.baidu.com/aistudio/projectdetail/1507732
以下图片均来自飞桨课程课件:
输入:3x3(宽高) 过滤器(卷积网格 kernel):2x2(宽高) 步长(stride):1
公式:
输出宽w=( xw+2p-fw)/sw +1
输入高h=(xh+2p-fh)/sh +1
在本案例中,宽高均为
(3+0x1-2)/1 +1 =2
pedding:
一般为了考虑图像边缘的特征点给予利用,需要在外面加一层padding (用0补充)为了让边缘的数据通道得以充分使用,增加边缘信息的提取(同时也可以让图像被提取后不至于缩小很多倍)
LeNet中用了6个通道进行卷积
池化是使用某一位置的相邻输出的总体统计特征代替网络在该位置的输出,其好处是当输入数据做出少量平移时,经过池化函数后的大多数输出还能保持不变。
池化可以在保留特征的同时减少计算量,从而减少计算性能的消耗
池化的步长一般和卷积核的大小有关,默认一般为2
池化一般方法为平均池化和最大池化,因为最大池化能够较好的对图像特征进行提取,所以一般都是使用最大池化。
Avg Pooling 平均池化
优缺点:能很好的保留背景,但容易使得图片变模糊
正向传播:邻域内取平均
反向传播:特征值根据领域大小被平均,然后传给每个索引位置
Max Pooling 最大池化
优缺点:能很好的保留一些关键的纹理特征,现在更多的再使用Max Pooling而很少用Avg Pooling
正向传播:取邻域内最大,并记住最大值的索引位置,以方便反向传播
反向传播:将特征值填充到正向传播中,值最大的索引位置,其他位置补0
全连接:就是按照顺序排列下来(个人理解)
AlexNet:历史突破
主要贡献:
引入ReLu为激活函数;dropout层;最大池化;GPU加速;数据增强(截取、水平翻转)
VGG:探索了CNN性能和网络深度的关系
主要贡献:
证明使用小卷积核增加网络深度对于提升模型效果的有效性有较强的泛化程度
GoogleNet:也为inception V1
主要贡献:
引入inception模块;辅助LOSS单元;去除了模型最后的全连接层,使用全局平均池化代替
ResNet:2015年提出,在ISLVRC和COCO上称霸一时
主要贡献:
网络层数超过百层;引入残差结构解决退化问题
参考:
https://aistudio.baidu.com/aistudio/projectdetail/1511606
迁移学习:
backbone:
这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思。在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inception),这一部分是整个CV任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做文章(比如分类,生成等等)。所以将这一部分网络结构称为backbone十分形象,仿佛是一个人站起来的支柱。
作者:Jacky.C
链接:https://www.zhihu.com/question/399611596/answer/1273044749
来源:知乎
图像分类的原理和技术;快速上手时间和神经网络科普;ResNet50实现图像分类
客观题 B
代码实践作业
基于LENET 和RESNET
人脸关键点检测