Tensorflow 实战Google深度学习框架之图像识别与卷积神经网络(迁移学习)知识点学习总结

CNN(concolutional Neural NetWork)
图像识别问题简介及经典数据集
mnist、cifar 数据集相比于正式环境有2个问题,(1系那是生活中的图片分辨路远高于3232且头像分辨率不固定
2.物体类型远超过了10种)
ImageNet 是基于wordnet的大型图像数据库
www.image-net.org/challenges/LSVRC 有竞赛题目和数据库
ILSVRC图像分类数据集中的图片是从互联网上爬的图片大小不一致
卷积神经网络简介
神经网络每两层之间的所有节点都市有边相连的,称此结构为全连接层网络结构
卷积神经网络,相邻两层之间只有部分节点相连
为了展示每一层神经元的纬度,一般会将每一层卷积层的节点组织成一个三位矩阵。
关于输入输出,以图像分类为例,卷积神经网络中输入层就是图像的原始像素,输出层中的每一个节点代表了不同类别的可信度。
为什么全连接神经网络无法很好地处理图像数据?
全连接层的参数太多
下面的两条输入的矩阵是图像像素矩阵大小很明显不同 其中+500表示的是偏置项
(@)28
281 1表示黑白图像 一个色彩通道 设第一层隐藏层的节点数为500个 一个全连接层28281500+500
(@) 32
323 3表示彩色图像 红绿蓝三个色彩通道,32323输入层的节点数3072个节点 设第一层全连接层仍然是500个节点那么就有3072500+500=150万个参数
参数过多导致计算速度减慢还容易导致过拟合问题
在卷积神经网络中的前几层中每一层的节点都被组织成一个3维矩阵。卷积神经网络主要由:
1.输入层(才处理图像的卷积神经网络中它代表了一张图片的像素矩阵)
2.卷基层(卷基层中每一个节点的输入只是上一层神经网络矩阵的一小块,这个小块常用大小为3
3,5*5处理后矩阵深度会加深)
3.池化层 池化层神经网络不会改变三维矩阵的深度蛋挞可以缩小矩阵的大小,将高分辨率图转为低分辨率图。目的减少神经网络中参数
4.全连接层 前面的卷积层可看成自动图像特征提取过程用于分类
5.softmax层 其主要用于分类问题,通过该层可以得到当前样例属于不同种类的概率分布情况
卷积层过滤器
过滤器可以将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上单位节点矩阵(长宽为1,深度不限的节点矩阵)
过滤器的尺寸 只需要指定两个维度
卷积层前向传播过程 得到的矩阵的尺寸要小于当前层矩阵的尺寸,为避免尺寸变化,在当前边界上加入全0填充,从而使得得到的矩阵尺寸和输入的矩阵尺寸相同。(下图的上方表达就是这个)
图片的下方说明的是还可以通过设置过滤器移动的步长来调整结果矩阵的大小,之前移动一格现在移动两个格子且使用quan0填充,如此图片的下方说明的是还可以通过设置过滤器移动的步长来调整结果矩阵的大小,之前移动一格现在移动两个格子且使用quan0填充,如此得到的结果矩阵的长和宽也就都只有原来的一半
上取整全0填充步长移动公式如下:
在这里插入图片描述好吧图确实画的太丑了,linux系统画图的软件没安装
池化层:可以非常有效地缩小矩阵的尺寸,从而减小最后全连接层中的参数
使用池化层可以加快计算速度也有防止过拟合问题的作用
池化层计算的不是节点的加权而是采用更加简单的最大值或者平均值运算,若用最大值操作的池化层被称为最大池化层,同理平均值运算叫平均池化层。区别于卷积层是卷积层使用的过滤器是横跨整个深度的,而池化层只影响一个深度上的节点,即池化层的过滤器除了在长和宽两个维度移动,它还需要在深度这个维度移动
下来就是经典的卷积网络模型
LeNET-5 是串联
Inception-V3 是将不同卷积层通过并联的方式

因为代码还没跑出来,现在还存在几个问题,下次直接总结代码运行的注意事项及相关错误的处理。(啊啊啊不要在报内存错误了)

猜你喜欢

转载自blog.csdn.net/peopleware1/article/details/97136927