一些基础概念
参考:https://blog.csdn.net/weixin_56619527/article/details/122518911?spm=1001.2014.3001.5502
https://zhuanlan.zhihu.com/p/30994790
通道数:描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。
如果一个像素点,有RGB三种颜色来描述它,就是三通道。我们每张图片由红绿蓝三种颜色组成,导入的时候对应红绿蓝三种颜色的通道,也就是三个矩阵,这三个矩阵分别表示对应红绿蓝像素的强弱值。
而四通道图像,就是R、G、B加上一个A通道,表示透明度。一般叫做alpha通道,表示透明度的。
激活函数们:
增加模型的非线性表达能力
卷积
卷积公式
图像的卷积操作:
f函数=不稳定输入-图片
g函数=稳定输出-卷积核
最后求:系统的存量
定义:图片与卷积核先相乘,再相加,是为了计算周围像素点对该像素点的影响
卷积核:矩阵
平滑操作的卷积核:3*3的均为1/9的矩阵
kernel:一个规则,或者一个表达式,它的作用是理清楚数据间的关系,或者拟合数据的分布。目的:找到最好的kernel
dropout:对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。控制好dropout rate也是调参的关键,调好了就是加大模型鲁棒性,调不好就是overfitting。
卷积神经网络 CNN
模型结构:输入层,卷积层,池化层,输出层(全连接层+softmax layer)
- 总有至少1个的卷积层,用以提取特征。
- 卷积层级之间的神经元是局部连接和权值共享(卷积核),这样的设计大大减少了(w,b)的数量
- 对于CNN来说,重要的是区域的特征,以及特征之间的相对位置(而不是绝对位置)
卷积层
作用:去除信息的冗余部分
池化层
作用:特征选择
损失了部分信息,是和计算性能的妥协
特征提取的误差主要来源:
- 邻域大小受限
- 卷积层权值参数误差
average -pooling能减小第一种误差,更多的保留图像的背景信息
max-pooling能减小第二种误差,更多的保留纹理信息
max pooling
取4个中最大的那个
average pooling
把filter里的所有值取平均值
全连接层
将卷积最后地到的矩阵拉成一个一维矩阵,然后就是最简单的神经网络模式的一层到层,中间由权重相连接。
全连接层中的每一层是由许多神经元组成的(1x 4096)的平铺结构。
把特征representation整合到一起,输出为一个值。大大减少特征位置对分类带来的影响
从上图我们可以看出,猫在不同的位置,输出的feature值相同,但是位置不同,对于电脑来说,特征值相同,但是特征值位置不同,那分类结果也可能不一样,而这时全连接层filter的作用就相当于喵在哪我不管,我只要喵,于是我让filter去把这个喵找到,实际就是把feature map 整合成一个值。
两层全连接层的组成
如果全连接层宽度不变,增加长度:
优点:神经元个数增加,模型复杂度提升;全连接层数加深,模型非线性表达能力提高。理论上都可以提高模型的学习能力。
如果全连接层长度不变,增加宽度:
优点:神经元个数增加,模型复杂度提升。理论上可以提高模型的学习能力。
难度长度和宽度都是越多越好?
肯定不是
(1)缺点:学习能力太好容易造成过拟合。
(2)缺点:运算时间增加,效率变低。