概述
一、认识卷积神经网络
- 输入层:将每个像素点代表一个特征节点输入进来
- 卷积层:有多个滤波器组成
- 池化层:将卷积结果降维
- 全局平均池化层:对生成的特征数据(feature map)取全平均值
- 输出层:需要分几类就有几个输出节点。输出节点的值代表预测概率
卷积神经网络的主要组成部分是卷积层,它的作用是从图像的像素中分析出主要特征。在实际应用中,有多个卷积层通过深度和高度两个方向分析和提取图像的特征。
- 通过较深(多通道)的卷积网络结构,可以学习到图像边缘和颜色渐变的简单特征。
- 通过较高(多层)的卷积网络结构,可以学习到多个简单特征组合的复杂特征
在实际应用中存在很多特殊的变形。例如:在ResNet模型中引入了残差结构,在Inception系列模型中引入了多通道结构,在NASNet模型中引入了空洞卷积与深度可分离卷积等结构
二、什么是空洞卷积
1.TensorFlow中空洞卷积函数
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:该函数在张量图中的操作名字
2.其他接口中的空洞卷积函数
三、什么是深度卷积
深度卷积指,将不同的卷积核独立的应用在输入数据的每个通道上。相比正常的卷积操作,深度卷积缺少了最后的“加和”操作。最后返回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”
四、什么是深度可分离卷积
1.深度可分离卷积的原理
将深度卷积的结果进行输入,然后进行一次正常的卷积操作。
例如:对一个输入input进行深度可分离卷积,具体步骤:
- 在模型内部先对输入数据进行深度卷积,得到in_channels*channel_multiplier个通道的特征数据
- 将特征数据作为输入,再用普通卷积核进行一次卷积操作
2.TensorFlow的深度可分离卷积函数
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_multiplierin_channels, out_channels],代表在深度卷积后的融合操作是采用卷积核为11,输入为channel_mutiplier*in_channels、输出为out_channels卷积层来实现
- strides:卷积的滑动步长
- padding,rate,name,data_format:同上
3.其他接口中的深度可分离卷积函数
五、了解卷积网络的缺陷及补救方法
传统的卷积网络存在泛化性较差、过于依赖样本等缺陷。这是因为,在卷积神经网络中并不能发现组件之间的定向关系和相对空间关系。
一个训练好的卷积神经网络,只能处理比较接近训练数据集的图像。在处理异常的图像数据(例如处理颠倒、倾斜或其他朝向不同的图像)时,其表现会很差。
2.卷积神经网络存在缺陷的原因
在卷积过程中,每一层都用卷积核来理解推拿图像,并获得基于像素级别的、非常细微的局部特征。每层卷积操作完成之后,都会进行一次池化操作。池化本来是让特征更明显,但在提升局部特征的同时也丢失了其内在的其他信息(比如位置信息),这就造成了在最后一步总览全图时,对每个局部特征的位置组合不敏感,从而产生错误
3.补救卷积神经网络缺陷的方法
- 扩充数据集,来尽量提升模型的泛化性(模型对一类数据的识别能力)
- 在模型中,尽量少用或不用池化模型
- 使用更复杂的模型,让模型在学习局部特征的同时,也关注局部特征间的位置信息(例如胶囊网络)
六、了解胶囊神经网络与动态路由
胶囊神经网络(CapsNet)是一个优化过的卷积神经网络模型。它在常规的卷积神经网络模型的基础上做了特定的改进,能够发现组件之间的定向和空间关系。
它将原有的“卷积+池化”组合操作,换成了“主胶囊+数字胶囊”的结构
- 将图像(28281)输入一个带有256个99卷积核的卷积层ReLU Conv1。采用步长1、无填充(VALID)的方式进行卷积操作。输出256个通道的特征数据(feature map)。每个特征的形状为2020*1.
- 将第1步的特征输入胶囊网络的主胶囊层,输出带有向量信息的特征结果
- 将带有向量信息的特征结果输入胶囊网络的数字胶囊成,最终输出分类结果
实例39:用胶囊网络识别黑白图中的服装图片
1.主胶囊层的工作细节
主胶囊层的操作沿用了标准的卷积方法。只是在输出时,把多个通道的特征数据打包成一个个胶囊单元。将数据按胶囊单元进行后面的计算。
2.数字胶囊层的工作细节
3.在数字胶囊层中使用全新的激活函数
4.利用动态路由选择方法,通过迭代方式更新耦合系数
5.在胶囊网络中,用边距损失作为损失函数
七、了解矩阵胶囊网络与EM路由算法
八、什么是NLP任务
NLP(自然语言处理)是人工智能研究的一个方向。其目标是通过算法让机器能够理解和辨识人类的语言。常用于文本分类、翻译、文本生成、对话等领域。
当前基于NLP的解决方式主要有3种:
- 卷积神经网络:主要是将语言当作图片数据,进行卷积操作。
- 循环神经网络:按照语言文本的顺序,用循环神经网络来学习一段连续文本中的语义。
- 基于注意力机制的神经网络:是一种类似卷积思想的网络。它通过矩阵相乘计算输入向量与目标输出的相似度,进而完成语义的理解。
九、了解多头注意力机制与内部注意力机制
1.注意力机制的基本思想
2.多头注意力机制
3.内部注意力机制
十、什么是带有位置向量的词嵌入
十一、什么是目标检测任务
目标检测任务是视觉处理中的常见任务。该任务要求模型能耐检测出图片中待定的物体目标,并获得这一目标的列别信息和位置信息。
在目标检测任务中,模型的输出是一个列表,列表的每一项用一个数据组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。
实现目标检测任务的模型,大概可以分成两类:
- 单阶段检测模型:直接从图片获得预测结果,也被称为Region_free方法,相关的模型有YOLO、SSD、RetinaNet等。
- 两阶段检测模型:先检测包含实物的区域,再对该区域的实物进行分类识别。相关的模型有R-CNN、Faster R-CNN等。
12、什么是目标检测中的上采样与下采样
上采样与下采样是指对图像的缩放操作:
- 上采样是将图像放大
- 下采样是对图像缩小
上采样与下采样操作不能给图片带来更多的信息,而且会对图像质量产生影响。在深度卷积网络的运算中,通过上采样与下采样操作可实现本层数据与上下层的维度匹配。
十三、什么是图片分割任务
图片分割包括语义分割和实例分割,具体如下:
- 语义分割:能将图像中具有不同语义的部分分开
- 实例分割:能描述出目标的轮廓
最后
以上就是复杂期待为你收集整理的卷积神经网络(CNN)——快速导读的全部内容,希望文章能够帮你解决卷积神经网络(CNN)——快速导读所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复