现在的显示屏,分辨率基本都可以达到1920×1080,加上RGB三通道,一张屏幕截图的数据量就可以达到六百多万,如果一秒三十张图片,那么一秒钟的数据量就有一亿八千多万。
神经网络的工作方式就是仍给网络一堆特征值,然后网络去学习,调整各种超参数,直到在过拟合与欠拟合之间找到平衡点。
严格而死板的方法,每个像素点都是特征值,那计算机视觉简直就是数据爆炸,比核武器还夸张,完全没有指导意义。
卷积网络就应运而生,听名字,卷积,想到大学数学的晦涩方程,真是让人望而生畏。其实,在我看来,卷积就是简化,因为每个像素点都作为特征值太浪费资源,并不需要特征值,因为在现实世界,人们看一个图片从来也不会因为一两个像素点影响判断。
我希望可以以EXCEL的形式展示卷积神经网络,因为EXCEL的一个个小方格很能表示卷积的简化思想。
自己写了点,上网发现有大神在towardsdatascience里描述过相似的想法,所以直接搬运别人的图片了。

我们从MNIST数据集中选取了一张图——数字7,0.0至1.0表示颜色变深,将像素点的数字填写在EXCEL表格里,通过EXCEL自带的颜色深浅将图像表现出来。

从第一层输入层input到第二层Conv1,使用了卷积运算,卷积运算的方法类似于把卷积和看成是透明卡片,放置在原始数据集的一小部分上,对应的相乘然后再相加。观察两个卷积核filter,一个是竖向的一个是横向的,卷积运算后的右边两张图片也是像横向的浮雕和竖向的浮雕。可以大胆猜想什么样的卷积核可以得到什么样的特征图像,这样就提取了特征,也分解了特征。

卷积运算后,图片更加特征鲜明了,但是有一些奇怪的地方,比如为什么会有负数,这是不合理的,因为初始的像素最低只有0。这里用到了ReLU激活函数,ReLU激活函数看起来非常的简单,但是其确实在深度学习中大放异彩的一个函数,其非线性也保证了各神经元相互较为独立。


这是第二层的卷积运算,主要关注这几点,一是卷积核的数值是有很多种的,二是两层卷积层之间所需的卷积核数目与前后两层的图层数相关。其实就是要从中抽象出矩阵的运算。

池化运算就像图片的压缩机,将像素减少,其中常用的是最大池化,即选择池化区域中最大的数值。这也是很好理解的,当 我们看一张图片,往往会被颜色较深的所吸引,颜色较深的往往包含重要的信息。当然,这也不是绝对的,这么做也不一定合理,比如往图片里撒些深色黑点,就可以混淆神经网络,当然,后续发展的CNN有技术手段克服这些迷惑。

从EXCEL表格的最大池化运算展示中,可以很清楚的看到,像素被压缩了,特征被提取出来。

最后,利用全连接层,全连接层的思想就像“一个也不能少”,把所有像素点的通过矩阵运算得到一个数值。如果是多分类问题,就使用softmax函数,权重最大的也就是可能性最高的。
EXCEL表示的卷积神经网络虽然简单,但是包含了卷积神经网络的主要思想,卷积运算、池化运算和全连接层。不信你再看看卷积神经网络的常用示意图,是否能看懂了呢。

我们介绍了卷积神经网络前向传播,训练网络还需计算后馈网络,计算起来比较困难,不过庆幸pytorch等学习包帮我们造好轮子了,我们只需要设定好前馈网络,就可以进行卷积神经网络的训练了。
本文以Excel形式展示了卷积神经网络的基本原理,包括卷积运算、池化和全连接层的作用,通过数字7的MNIST数据集实例,解释了如何提取和简化图像特征。
451

被折叠的 条评论
为什么被折叠?



