TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)

接上一篇内容,当待分类的图片变得复杂,简单的识别方法可能效果不佳。而卷积神经网络则功能强大,它先对图像进行过滤,而后在进行训练学习,图像过滤后,其特征才能更加明显地凸显出来,我们才能在这基础上识别不同的物品。

TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第1张图片

卷积神经网络(CNN)

过滤器其实就是一些乘法器,当你看到像素是192,过滤器是红色的方框中的数值时,就将两个矩阵的对应位置进行相乘,再将乘积数值相加。
TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第2张图片
过滤器1:留下了竖直的线条。

TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第3张图片

过滤器2:留下了水平的线条。

TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第4张图片
可以将过滤与池化(pooling)结合起来使用,池化把图像中像素分组-集成再向下过滤到它的子集里,举个例子:
最大化的池化,就是把图片过滤到2*2的数集中,再取其中的最大值,这样的方法,图像将会缩小为原来的四分之一,但是
保留了原图像的所有特征

TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第5张图片
之前的图被过滤和最大池化后,会变成下图,右图是左图的四分之一,但直线特征被保留并且增强了。TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第6张图片
那这些过滤器是哪里来的呢?这就是卷积神经网络的神奇之处,它们是被习得的,它们本身只是参数,就像神经网络里面的神经元一样,当我们把图像输入卷积层后,它会把一堆随机生成的过滤器覆盖在图像上,随后这些覆盖结果就会被传到下一层,再用神经网络进行匹配,过了一段时间后,那些生成的最好的结果就会被过滤器记下,这个过程就叫作特征提取

卷积神经网络代码:

TensorFlow中文教程学习笔记(三) 卷积神经网络(CNN)_第7张图片
input_shape()定义输入层的尺寸,64代表生成64个过滤器,然后依次用这些过滤器和图像像素相乘,然后会找到把图像和标签最好匹配的过滤器,正如全连接层能自己找到最好的参数一样。
MaxPooling2D()最大池化压缩增强后的图片。
然后就能把卷积层依次堆叠起来,这样我们就能够给图片分类,并从中提取出不同的特征。采用这个方法之后,图片就会使用特征而不仅是像素来进行学习了。

以上内容为TensorFlow中文教程的学习笔记。

你可能感兴趣的:(TensorFlow学习教程,过滤器,神经网络,卷积,计算机视觉,tensorflow)