系列文章目录
- 机器学习笔记一
- 机器学习笔记二
- 机器学习笔记三
- 机器学习笔记四
前言
??本节介绍一些有关卷积神经网络(CNN)的相关知识,这篇博文没有对CNN的一些基础知识进行讲授,所以如果没有CNN基础的人可以先去看一下相关的基础知识
一、卷积神经网络
??人在认知图像时是分层抽象的,首先理解的是颜色和亮度,然后是边缘、角点、直线等局部细节特征,接下来是纹理、几何形状等更复杂的信息和结构,最后形成整个物体的概念。 ??卷积神经网络工作时模拟人认知图像的过程,它由多个卷积层构成,每个卷积层包含多个卷积核,用这些卷积核从左向右、从上往下依次扫描整个图像,得到称为特征图(feature map)的输出数据。网络前面的卷积层捕捉图像局部、细节信息,有小的感受野,即输出图像的每个像素只利用输入图像很小的一个范围。后面的卷积层感受野逐层加大,用于捕获图像更复杂,更抽象的信息。经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示。
二、卷积神经网络提取特征
1.卷积
??根据Filter 1 我们可以了解到,Filter 1的作用就是用来寻找3*3单位阵,从结果我们可以看见3出现在左上角和左下角,也就是说在原始数据中存在3*3的单位阵,同理我们还可以使用Filter 2寻找中间一排是1的3*3矩阵,并且他的位置位于原始输入数据的右下角
??所有的Filter扫描过后输出的结果共同构成了
特征图(Feature Map)
2.多通道卷积
??对于多通道输入,实际上卷积核的维度会相应改变,卷积核通道数和输入通道数相同,也就是说如果输入的是d*m*n的数据,在pytorch中如果卷积核我们定为2*2,那么实际上的卷积核是d*2*2,如果我们想要p通道输出,那么实际上是使用了p个卷结核
3.特征提取原理
??由于大多数的情况下我们通常使用最大池化,所以我们定义a^k^为第k个特征图的和 假定有一个训练好的模型,我们通过梯度上升的方法寻找x使得a^k^取最大值
??由结果图可知当图片存在一些有规律的条纹的时候a^k^的值是最大的,这也就是卷积核提取特征的原理,不同的卷积核可以提取不同的特征,网络最后通过这些特征来做出判断 ??采用同样的办法,我们也可以找到使得全连接某一个节点最大的x
??同样的方法,我们去计算输出层的某一个节点,寻找最大x使得y~i~最大,我们输入的是数字的图片,所以y~i~对应着数字i,按照常理推断,我们所得出的x应该是一个非常具有辨识性的数字i的图片,但是实际上并不是,也就是说实际上计算机学习到的东西和人脑不相同
??但是我们也有办法让神经网络反向生成的x和我们人脑看到的类似,例如可以调整计算x的方法,通过寻找x使得
y
i
?
∑
i
,
j
∣
x
i
j
∣
{y^i-}\sum_{i,j}|x_{ij}|
yi?i,j∑?∣xij?∣ 最小,减去xij的绝对值的和原因是要让找出来的图像尽量黑白分明 实际上还有很多方法去进一步计算更加符合人脑的x ??有兴趣还可以去了解一下Deep Dream和Deep Style
总结
??对于CNN的一些相关知识进行了一些介绍
|