TensorFlow中利用CNN处理图像总结

看了很多书,也实战了,但是总想用通俗的语言来讲述一下CNN处理的过程,今天我有幸和大家分享一下。

首先,卷积神经网络就是至少包含一层的神经网络,该层的功能是:计算输入f与可配置的卷积核g的卷积,生成输出。卷积的目的就是把卷积核应用到某个张量的所有点上,通过卷积核的滑动生成新的滤波后的张量。卷积的价值在于对输入降维能力,通过降维改变卷积核的跨度strides参数实现。设置跨度是调整输入张量维数的方法,strides参数格式与输入向量相同,面临挑战:如果应对输入在边界,可以采用对图像边界填充方式。数据格式NHWC(数目,高度,宽度,通道数)。卷积核的作用常常是增强卷积核中心位置像素的灰度。

然后,卷积神经网络CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。激活函数:为神经网络的输入引入非线性,通过曲线能够刻画输入中更为复杂的变化,设计模型常推荐tf.nn.relu,tf.sigmoid,tf.tanh,tf.nn.dropout,性能较为突出,评价一个激活函数是否有用的因素如下:单调,采用梯度下降法寻找局部极值点;可微分,保证任何一个点可以求导数,可以使梯度下降法用到激活函数的输出上。

最后,CNN卷积神经网络层级结构 CNN网络一共有5个层级结构:

1 输入层:与传统神经网络/机器学习一样,模型需要输入的进行预处理操作,常见的输入层中预处理方式有:去均值 归一化 PCA/SVD降维等

2 卷积层: 就是局部感知,人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。

3 激励层:实际上是对卷积层的输出结果做一次非线性映射。如果不用激励函数(其实就相当于激励函数是f(x)=x),这种情况下,每一层的输出都是上一层输入的线性函数。容易得出,无论有多少神经网络层,输出都是输入的线性组合,与没有隐层的效果是一样的,这就是最原始的感知机了。 常用的激励函数有:Sigmoid函数 Tanh函数 ReLU Leaky ReLU ELU Maxout   我自己对激励层处理建议:首先ReLU,因为迭代速度快,但是有可能效果不佳。如果ReLU失效的情况下,考虑使用Leaky ReLU或者Maxout,此时一般情况都可以解决。Tanh函数在文本和音频处理有比较好的效果。

4 池化层 (Pooling):也称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。主要有:Max Pooling:最大池化 Average Pooling:平均池化通过池化层,使得原本44的特征图压缩成了22,从而降低了特征维度。虽然人不太容易分辨出池化后的特征图,但是没关系,机器还是可以识别的。

5 输出层(全连接层) 经过前面若干次卷积+激励+池化后,来到了输出层,模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,来解决此问题。还可以进行局部归一化(LRN)、数据增强等操作,来增加鲁棒性。当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如:BP神经网络),通过softmax函数得到最终的输出。整个模型训练完毕。两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的。

今天就分享到这里。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow是一种开源的机器学习框架,具有广泛的应用领域,其之一就是计算机视觉。通过使用TensorFlowCNN(卷积神经网络)模型,我们可以进行AI图像处理,并进入计算机视觉领域。 首先,CNN是一种在图像处理非常常用的深度学习模型。它的核心思想是通过多层的卷积、池化和全连接层来提取图像的特征,并用于分类、目标检测、图像生成等任务。TensorFlow作为一种流行的深度学习框架,提供了丰富的API和工具,使得构建和训练CNN模型变得更加容易。 使用TensorFlow进行CNN实战图像处理,我们可以利用其强大的计算能力和高效的图像处理算法,实现许多有趣的应用。例如,我们可以使用CNN图像进行分类,将其归类为不同的物体或场景。我们可以使用已经训练好的模型,也可以通过自定义网络结构进行训练,以适应我们的具体任务。 另外,利用CNN进行目标检测也是计算机视觉非常重要的任务之一。目标检测可以帮助我们在图像定位和识别特定目标的位置。通过使用TensorFlowCNN模型,我们可以训练一个高效的检测器,并在实际应用实现各种目标检测需求。 此外,TensorFlow还提供了许多其他的图像处理工具和技术,如图像增强、图像生成和图像分割等。通过利用这些工具,我们可以更好地理解和处理图像数据,并探索更多有趣的图像处理应用领域。 总之,TensorFlowCNN模型为我们进入计算机视觉领域提供了丰富的工具和技术,使我们能够实战AI图像处理。无论是图像分类、目标检测还是其他图像处理任务,通过深入学习和实践,我们可以在这个领域取得更多的成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值