CNN工作原理笔记
- 卷积神经网络定义
- 卷积运算
- 池化
- 激活函数
- 全连接
- 反向传播算法
- 其他应用
- 延伸知识
首先放个学习视频链接: 大白话讲解卷积神经网络工作原理.
卷积神经网络定义
CNN其实就相当于黑箱,有输入有输出
输入:二维像素阵列
输出:判决结果(图片语义)
鲁棒性和抗干扰性强
为了与原图进行对比,因此我们需要提取出原图的特征,叫做卷积核或特征提取器
卷积操作:把原图中包含此特征的部分提取出来。
卷积运算
绿色表示原图数据,黄色表示卷积核与其相乘,得到的值放在一个新的矩阵上,叫做Feature Map,就相当于卷积核把原图的特征提取出来反映在Map上。
当然,不同的卷积核与原图进行卷积就能得到不同的结果:
注意:原图中一定要卷积核,如果原图中不包含,则出来都是乱码。
3.27补充:实际进行图像处理时提取卷积核:
图片来源
池化
上面我们已经介绍了卷积神经网络中最重要的一步,也就是卷积,但是在实际应用中,实时性要求非常高,我们需要在短时间内得到结果,所以我们要将Feature Map进行缩小。
这里缩小的操作叫做池化,也叫下采样。
当然,减少数据量就意味着会牺牲一部分信息,当然,这需要在我们的可接受范围内。
池化的方式又分为两种:
max pooling:选取最大值作为代表
average pooling:选取平均值作为代表
一般选用第一种
注:卷积时设置了步长,如果矩阵维数不是步长的整数倍,则最后要进行补零操作(zero padding)。
激活函数
修正线性单元:Rectified Linear Units(ReLUs)简单来说就是把所有小于0的抹成0,大于0的不变。
好处:矩阵运算,梯度下降
全连接
将矩阵从左往右排排坐
每个像素点都有权重
全连接的概念:判决时与每一个神经元相连接,是所有的神经元乘以权重后进行相加。
IMAGENET
卷积3D可视化
反向传播算法
损失函数:将神经网络的结果与原图进行比较计算
我们的目标就是把误差函数降到最低
通过修改卷积核的参数、修改全连接每一个神经元的权重进行微调,最后使得损失函数最小。
之所以叫反向传播,是因为误差是一层一层反馈回去的。
通过喂大量的数据,这也就是机器学习能力。
梯度下降算法:怎么将损失函数降到最低呢,对其求导,找到其最小值。
当找到损失函数最小值时,我们就认为成功了。
Hyperparameters:初始参数,首先人为定好
搭框架主要靠经验,多少层合适?怎么排合适?其实都是随意的,但是一般都有规律可循。
其他应用
视频:随时间(时间与频谱)
音频:声音也可以转成图片类似的数据,声音转为文本
纵轴是词在词典中的位置
但是也有一些不能用神经网络处理的:
这些行之间改变,影响不大
但是你看比如图像,行之间改变,就不是原来的图像了,影响很大。
延伸知识
之前大家一直使用的是支持向量机,错误率很高
但是2012年神经网络横空出世,大幅降低错误率
GoogLeNet:
VGG:牛津 在迁移学习中较强
ResNet:深度残差网络 大幅减少参数数量