用”人话”解释CNN —— 对单个特征图进行视觉化

转载自:http://nooverfit.com/wp/pycon-2016-tensorflow-研讨会总结-tensorflow-手把手入门-用人话解释cnn

 

首先什么是CNN? 其实, 用”人话”简洁地说, 卷积神经网络关键就在于”卷积”二字, 卷积是指神经网络对输入的特征提取的方法不同. 学过卷积的同学一定知道, 在通信中, 卷积是对输入信号经过持续的转换, 持续输出另一组信号的过程.

上图来自维基百科, 经过红色方框的持续转换, 我们关注红色方框和蓝色方框的重叠面积, 于是我们得到新的输出: 黑色线的函数. 这正是通过卷积生成新函数的过程.

 

CNN对输入的处理也是一样, 它把输入用块的单位提取特征, 这样高维的图片马上就降维了:


 

用黄色块提取特征, 上面的大方框, 最多可以提取9个黄色块的特征.

 

或者从神经网络连接结构的角度, CNN的底层与隐藏不再是全连接, 而是局部区域的成块连接:


 

成块连接后, 那些小块, 还能在上层聚集成更大的块:

 

但是, 如果用上面的方法堆砌CNN网络, 隐藏层的参数还是太多了, 不是吗? 每个相邻块都要在上层生成一个大的块.

 

所以有时我们为了减少参数复杂度, 不严格把相邻的块都至少聚合成一个上层块, 我们可以把下层块分一些区域, 在这些区域中聚合:

 

瞧! 这里的红色块的层与绿色块的连接, 是不是就没有原来的密集了? 这就是(Pooling Layer)分池层, 把小的块分割成一个个池子, 也就是大块:

 

再来看看2D图片输入的CNN效果:

 

以及用了Pooling Layer的效果:

 

当然,池化不只有减少参数的作用,还可以:

  1. 不变性,更关注是否存在某些特征而不是特征具体的位置。可以看作加了一个很强的先验,让学到的特征要能容忍一些的变化。
  2. 防止过拟合,提高模型泛化能力
  3. 获得定长输出。(文本分类的时候输入是不定长的,可以通过池化获得定长输出)
  4. 提高感受野大小

参考知乎回答:https://www.zhihu.com/question/36686900

 

而且, CNN不仅可以使用在图片分析上, 也可以使用在文本分析上, 因为句子中邻近的单词总是有相关性的, 不是吗?

转载于:https://www.cnblogs.com/lfri/p/10486972.html

使用CNN(卷积神经网络)模型对进行特征提取是计算机视觉中的一个重要应用。下面是一个基本的流程: 1. 数据集准备 首先,我们需要准备一个包含标注好的像数据集。通常情况下,这些像会被分为训练集、验证集和测试集。 2. 搭建CNN模型 我们需要根据问题的需求,选择一个合适的CNN模型,比如AlexNet、VGG、ResNet等等,并根据数据集的大小和像的复杂程度,对模型进行微调。 3. 卷积层 卷积层是CNN模型的核心组成部分。它通过滑动窗口的方式,对输入进行卷积操作,提取像的特征。卷积运算之后,通常会进行非线性激活(比如ReLU)和池操作,以加强特征的表达能力和降低计算复杂度。 4. 全连接层 在卷积层之后,我们需要将提取出来的特征进行分类或者回归等任务。这时候,我们可以添加一个或多个全连接层,将特征映射到目标类别或者数值空间中。 5. 模型训练 训练CNN模型通常需要使用反向传播算法和优器,以最小预测误差。在训练过程中,我们可以调整模型的超参数(比如学习率、批次大小、迭代次数等),以提高训练效果。 6. 特征提取 经过训练后,我们可以使用训练好的CNN模型来对新的进行特征提取。具体方法是,将新的像输入到CNN模型中,获取卷积层的输出,即可得到该像的特征向量。 7. 特征表示 最后,我们需要将特征向量转换成我们需要的表示方式,比如PCA、LDA、t-SNE等等。这样,我们就可以将像转换成数值向量,方便进行后续的分类、聚类等任务。 总之,使用CNN模型对进行特征提取需要经过数据集准备、模型搭建、训练、特征提取和特征表示等多个步骤,需要仔细设计和调整,以得到高质量的特征向量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值