Machine Learning - 李宏毅 学习笔记 (6)

第二层卷积每个filter扫描的输入区域实际上比image更大。我们定义一个东西叫做:"Degree of the activation of the k-th filter"第K个过滤器的激活程度。每个filter与输入做的点乘运算就是要求这个filter的激活程度

我们想知道第K个filter作用是什么就是我们要找一张image,使得第K个filter被激活程度最大。这件事课可以用gradient ascent梯度上升来做(最小化用梯度下降,最大化用梯度上升)

这样看很神奇,我们训练模型找合适的参数是做梯度下降,而现在是相反过来参数固定我们找合适的图片做梯度上升来让这个filter的激活程度最大。

投入数据集,可以发现让filter激活程度很大的图片,对应的就是一种模式pattern,比如竖直的直线,比如指向右上的直线。

所以可以发现,CNN网络实际上是通过不断的层数深入在提取图像更深层次的特征,是一种自动提取图像特征的网络。

每个filter只是在做自己单独的模式,如果直接输出到后续网络同样也是对某个单独模式进行处理,而flatten将其展平,那么后面的FCN处理的就是相当于去看整张图而非局部。

deep dream, deep style都是借鉴了这样了应用

deep dream训练如果输入图像有类型动物的特征,那么filter会放大这样的特征,到最后输出的时候图像上真的强化成了动物;

deep style训练将输入图像的context内容和filter训练好的风格结合,filter会将图像强化成他之前训练的风格,比如相近颜色,曲线程度等,(梵高风格),最后输出的也就是这样风格的原图像。

什么时候该使用CNN?

必须有image有的那些特性,就是最上面卷积和池化对应的三点:局部,不同地方重复,缩小。比如围棋,只需要观察局部棋位,eg. 一个白字被三个黑子围住,这就可以是一个pattern;这个pattern可以出现在围棋的不同地方,不过对于第三点而言围棋不能抽空行和列,表示对池化层实际上是不需要的。 - 所以在AlphaGO的CNN架构里并没有池化层出现。

除了图像image,CNN还可以用在影像处理上,比如声音的时频图Spectrogram,此时横轴时间竖轴频率,filter往频率方向移动而不往时间方向,因为一般后续会接的LSTM专门处理时间上的特征,filter处理频率上的pattern。

CNN还可以运用在文本处理上,此时横轴人类阅读方向sentence,竖轴称之为embedding dimension嵌入尺寸(相当于每个单词中间连接部分),在文本处理中filter朝嵌入尺寸上移动是没有意义的,所以是往阅读方向移动,每个filter得到各自的vector,对应的是每个word的sementic,如果两个word含义越接近,那么他们的vector在高维空间上也就越接近,这个叫做word embedding词嵌入(相当于这两个word组成词的概率越大)

第十五章:为什么要“深度”学习

将网络变高(单层size增加)可能performance没有效果,将网络变深(layer增加)可能有效果。

deep learning实际上是在做Modularization模块化的事情,每个层实际上就是对应将输入进行模块化处理。用一层网络能做的事多层网络更有效率,并且可以减少每层的layer降低参数防止overfitting,减少训练所需样本量。

很多层的设计还可以很好的处理类内差异性和类间相似性

深度学习另一个好处就是端到端End-to-end learning

处理的问题非常复杂,但是只需要给予model input和output,不需要告诉中间每个function具体分工。

第十六章 Semi-supervised learning 半监督学习

半监督学习:数据集分为label&unlabel两组,unlabel数量远多于label数量。

Semi_supervised分为Transductive learning和Inductive learning,前者unlabeled data是测试集,后者不是测试集。

产生半监督学习的原因有两点:人类的学习方式就是半监督学习;收集数据很简单,但是收集带标签的数据很花费代价。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsszd.html