图
今天给大家介绍一下什么是卷积神经网络,以及神经网络是与普通的神经网络有什么不同。卷积神经网络是为了简化普通神经网络而产生的。我们在普通的神经网络,每层的神经元都会接受上一层所有的神经元作为输入。
一些简单图形识别,我们完全可以使用普通神经网络来解决,但是使用普通神经网络,计算量是不可想象的。我们以一个 100 * 100 像素小图为例,如果第二个层是一个 1000 神经元,那么每个神经元都接受上一层的神经元作为输入,那么每个神经元就会 100 * 100 * 1000 个权重,我们要计算这么多权重值,计算量可想而值,我们通过对隐藏神经网层设计,开始层会判断是否又什么颜色,然后判断图中是否一些简单图形来用于判断,例如竖线、横线和圆圈一部分。
图
我们可以将这些图样,有一定特征图样作为一个整体来判断图是否用这样的特征。
图
许多游戏都是和通过 CNN 读取图形信息来作为输入,结合增强学习完成人机对抗。alphaGo 就是借助 CNN 来实现读图,完成人机对抗的。
图
我们今天通过一个简单实例来讲解一下通过 CNN 如何识别图形,让 CNN 识别出图中是有 X 还是有 O。我们两个二维的矩阵表示一个图形。读取图形的信息。
图
我们分别输入下面图到神经网络后,然后经过神经网络 CNN 会输出结果字母 X 或 O。
图
我们对图形进行平移、缩放、转换或加粗来创建不同形式的图形,卷积神经系统依旧可以识别出来 X 或 O。
图
我们人类一眼就识别出下面两张图都是 X,虽然第二张图是在第一张图上稍有变换。
图
对于计算机这的确是一道难题,计算机会精确了对比每个像素是否相同来判断这两张是否相同。
图
我们对图像进行处理,我们将黑色的像素标记为为 -1 ,将白色像素标记为 1。
图
计算机会容易识别出不同部分,我们可以用红色来表示两张图不同的部分。
图
所以计算机认为这两张图不是相同的。
图
我们可以告诉计算机这两张图相等的条件,只要他们具有相同的特征就让计算机认为这两张图是一样的。
图
我们可以把一些判断是否相同的特征,抽取一个一个小的图样,我们叫这些特征图样。
图
当图形中具有这些特征图样,如果图形中具有这些特征图样,我们就认为他是 X。
图
我们把判断这样小特征图样的过程叫过滤(filtering)
图
我们通过在图中采集一个区域像素值和特征图样对比来判断是否和图样相符,我们对相同位置的数值相乘取值。
图
让后我们得出结果取和来求平均值为 1。今天暂时到这里吧。困了
领取专属 10元无门槛券
私享最新 技术干货