卷积神经网络(CNN)——快速导读

人工智能66

一、认识卷积神经网络

  • 输入层:将每个像素点代表一个特征节点输入进来
  • 卷积层:有多个滤波器组成
  • 池化层:将卷积结果降维
  • 全局平均池化层:对生成的特征数据(feature map)取全平均值
  • 输出层:需要分几类就有几个输出节点。输出节点的值代表预测概率

卷积神经网络的主要组成部分是卷积层,它的作用是从图像的像素中分析出主要特征。在实际应用中,有多个卷积层通过 深度和高度两个方向分析和提取图像的特征。

  • 通过较深(多通道)的卷积网络结构,可以学习到图像边缘和颜色渐变的简单特征。
  • 通过较高(多层)的卷积网络结构,可以学习到多个简单特征组合的复杂特征

在实际应用中存在很多特殊的变形。例如:在ResNet模型中引入了残差结构,在Inception系列模型中引入了多通道结构,在NASNet模型中引入了空洞卷积与深度可分离卷积等结构

二、什么是空洞卷积

def atrous_con2d(value, filters, rate, padding, name=None)
  • value:输入图像,要求是一个四维张量,形状[batch, height, width, channels]
  • filters:卷积核,要求是一个四维张量,形状[filter_height, filter_width, channels, out_channels],channel是输入通道,与value中的一样
  • rate:卷积核膨胀的参数
  • padding:其值取"SAME"或"VALD",指不同的填充方式
  • name:该函数在张量图中的操作名字

三、什么是深度卷积

深度卷积指,将不同的卷积核独立的应用在输入数据的每个通道上。相比正常的卷积操作,深度卷积缺少了最后的"加和"操作。最后返回in_channels*channel_multiplier个通道的特征数据(feature map)

def depthwise_conv2d(input, filter, strides, padding, rate=None, name=None, data_format=None)
  • input:需要卷积的输入图像
  • filter:卷积核。要求四维张量,形状[filter_height, filter_width, in_channels, channel_multiplier]。channel_multiplier是卷积核的个数
  • strides:卷积的滑动步长
  • padding:同上
  • rate:卷积膨胀的参数
  • name:在张量图中的名字
  • data_format:参数input的格式,默认"NHWC",也可以写出"NCHW"

四、什么是深度可分离卷积

将深度卷积的结果进行输入,然后进行一次正常的卷积操作。
例如:对一个输入input进行深度可分离卷积,具体步骤:

  • 在模型内部先对输入数据进行深度卷积,得到in_channels*channel_multiplier个通道的特征数据
  • 将特征数据作为输入,再用普通卷积核进行一次卷积操作
def separable_conv2d(input, depthwise_filter, pointwise_filter, strides, padding, rate=None, name=None, data_format=None)
  • input:需要做卷积的输入图像
  • depthwise_filter:用于做深度卷积的参数,同上一样
  • pintwise_filter:用于融合操作的普通卷积核。例如:形状[1, 1, channel_multiplier _in_channels, out_channels],代表在深度卷积后的融合操作是采用卷积核为1_1,输入为channel_mutiplier*in_channels、输出为out_channels卷积层来实现
  • strides:卷积的滑动步长
  • padding,rate,name,data_format:同上

五、了解卷积网络的缺陷及补救方法

传统的卷积网络存在泛化性较差、过于依赖样本等缺陷。这是因为,在卷积神经网络中并不能发现组件之间的定向关系和相对空间关系。
一个训练好的卷积神经网络,只能处理比较接近训练数据集的图像。在处理异常的图像数据(例如处理颠倒、倾斜或其他朝向不同的图像)时,其表现会很差。

在卷积过程中,每一层都用卷积核来理解推拿图像,并获得基于像素级别的、非常细微的局部特征。每层卷积操作完成之后,都会进行一次池化操作。池化本来是让特征更明显,但在提升局部特征的同时也丢失了其内在的其他信息(比如位置信息),这就造成了在最后一步总览全图时,对每个局部特征的位置组合不敏感,从而产生错误

  • 扩充数据集,来尽量提升模型的泛化性(模型对一类数据的识别能力)
  • 在模型中,尽量少用或不用池化模型
  • 使用更复杂的模型,让模型在学习局部特征的同时,也关注局部特征间的位置信息(例如胶囊网络)

六、了解胶囊神经网络与动态路由

胶囊神经网络(CapsNet)是一个优化过的卷积神经网络模型。它在常规的卷积神经网络模型的基础上做了特定的改进,能够发现组件之间的定向和空间关系。
它将原有的"卷积+池化"组合操作,换成了"主胶囊+数字胶囊"的结构

主胶囊层的操作沿用了标准的卷积方法。只是在输出时,把多个通道的特征数据打包成一个个胶囊单元。将数据按胶囊单元进行后面的计算。

七、了解矩阵胶囊网络与EM路由算法

八、什么是NLP任务

NLP(自然语言处理)是人工智能研究的一个方向。其目标是通过算法让机器能够理解和辨识人类的语言。常用于文本分类、翻译、文本生成、对话等领域。
当前基于NLP的解决方式主要有3种:

  • 卷积神经网络:主要是将语言当作图片数据,进行卷积操作。
  • 循环神经网络:按照语言文本的顺序,用循环神经网络来学习一段连续文本中的语义。
  • 基于注意力机制的神经网络:是一种类似卷积思想的网络。它通过矩阵相乘计算输入向量与目标输出的相似度,进而完成语义的理解。

九、了解多头注意力机制与内部注意力机制

十、什么是带有位置向量的词嵌入

十一、什么是目标检测任务

目标检测任务是视觉处理中的常见任务。该任务要求模型能耐检测出图片中待定的物体目标,并获得这一目标的列别信息和位置信息。
在目标检测任务中,模型的输出是一个列表,列表的每一项用一个数据组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。
实现目标检测任务的模型,大概可以分成两类:

  • 单阶段检测模型:直接从图片获得预测结果,也被称为Region_free方法,相关的模型有YOLO、SSD、RetinaNet等。
  • 两阶段检测模型:先检测包含实物的区域,再对该区域的实物进行分类识别。相关的模型有R-CNN、Faster R-CNN等。

12、什么是目标检测中的上采样与下采样

上采样与下采样是指对图像的缩放操作:

  • 上采样是将图像放大
  • 下采样是对图像缩小

上采样与下采样操作不能给图片带来更多的信息,而且会对图像质量产生影响。在深度卷积网络的运算中,通过上采样与下采样操作可实现本层数据与上下层的维度匹配。

十三、什么是图片分割任务

图片分割包括语义分割和实例分割,具体如下:

  • 语义分割:能将图像中具有不同语义的部分分开
  • 实例分割:能描述出目标的轮廓

Original: https://blog.csdn.net/sothink3/article/details/124164771
Author: 无微の大白
Title: 卷积神经网络(CNN)——快速导读