赞
踩
CNN在图像上的应用
数字识别
CV场景下的模型的输入:
每一层学到什么内容?
下图为可视化神经网络学习到的知识
卷积神经网络各层所学习到的知识并不是黑盒,每一层都有其特定的功能,并且分工明确,从浅到深,CNN会逐步的提取出边缘、颜色、纹理等图形的图案,然后一直到最后一层就会定位到或识别到具体的物品。即CNN在训练过程中,自动的提取任务中所需要的各种特征、各个层级的特征,这些特征越是浅层越是普遍或通用的,越高层越具体,越接近实际的应用场景。利用训练好的CNN做迁移学习,可以直接用。
CNN在文本中的应用
模型输入:
【思考】在文本匹配任务中,如何把两个文本表示成一个矩阵向量?因为CV的输入是一个矩阵向量
Motivation
哪些信息被学到才能被称为充分的学习?自然语言处理领域大概有这样几个level:char-level、word-level、phrase(短语)-level、sentence-level
CNN模型在CV领域处理或识别某一个东西,它也是通过不同的level去识别某一个物体,在NLP中也是通过不同的level去实现的。
文本匹配相同思路实现
低层识别比较通用的Level,高层识别比较具体的level。
CNN在NLP领域的应用
摘要核心:
从上往下去看,文本匹配任务的通常解法当做是一个回归任务,回归任务到最后得到的不是一个离散的值,而是一个具体 score
两个1-D序列—>一个2-D向量(矩阵)?此矩阵需要满足什么样的条件才可以称得上能够很好的表示这两个1-D序列?
需要满足的条件:
回顾深度神经网络DNN
问题:参数过大,导致模型难训练,容易过拟合(解决过拟合的通常的方法是使用dropout,即随机掩盖掉一些神经元,减少一些权重)
CNN有一个重要的特点是有一个局部感受野的特征、参数可以共享。
如何学习一张图片?
卷积层
Filter是如何进行运算的?
filter是如何去检测pattern的?filter是固定值,表示它是一种能够检测某一种特征的filter,如上图中的filter,主对角线上的值都为1。
为何stride(步长)常常设为1或2?因为只有感受野是有重复的,它的边界处才可以被检测到,一些关键属性不会被忽略,如果步长比filter还大,有一部分信息就会被漏掉了。
零填充的好处:
卷积层是一组参数表示的检测器,之所以用滤波器或检测器是有效果的依据的原理是cv里面的平移不变性,
上图是将96个滤波器表示出来,在某一个卷积核是检测一个角度或某一个边界,这个滤波器在图片上的各个位置都是有效的,就不需要重新去学习特定的检测器,这就是为什么可以用感受野或共享参数的滤波器在整个图片上做一个滑动。因此,可以使用多个过滤器来配合过滤或提取整个特征。
CV中与NLP中的不同
在NLP中,每句话构成一个矩阵,单独的看矩阵中的某几个数据其实是没有意义的,每个token都是一行,应该按照行进行滑动。
池化层
对输入做维度的缩小,整个图像或主要特征没有减少。
池化层的作用:1)作为逐渐降低数据或输出filter map的尺寸,进一步减少网络中的数据量,参数减少,防止过拟合,提高模型的泛化能力。但现在很多模型已经不要池化层了,虽然最大值可能代表了特征,但其他值被直接去掉,可能会丢失很多信息;2)增大感受野;3)最大池化的原因:只取最大值,忽略掉其它比较小的值,这种方法是有意义的,当内容中发生一些比较小的变化时,比如图像在一个很小的范围内作一个平移,它的最大值是不发生变化的,这样可以给模型带来一定的稳定性,池化层可以给模型带来一定的不变性。
池化层没有参数量。
1.Multi-Layer Perception
2.Loss
【举例】
下面网络有多少参数量?
关于CNN网络构建
如果想使用更大一点的滤波器,比如7*7,通常这种情况下只能在第一层直接对原始图像作一个卷积层。
感受野的尺寸很少有超过3的,池化层容易造成信息缺失的操作,pooling层的feature过大,会导致整个模型不那么准。
卷积层和全连接层怎么设计?
【结论】强特征数量多但是容易提取的话分类层更重要(可以多设置几层分类层),反之卷积层更重要。
强特征的判断:是否可以手写出规则或总结出一个规律。如果可以总结出一个规律,就可以认为是强特征。
例如在情感分析任务中,“我喜欢吃水饺”这句话中可以通过"喜欢"判断这句话是正类的,因此可以规定这样一种规则:含有“喜欢”的句子是正类。
数据集
【结论】
【结论】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。