关于深度学习的阶段性总结

。总算有点正常的东西能发上来了。

给研究生搬砖标数据的时候看的一点论文的总结吧,其实运气挺神奇的……毕竟我对计算机和图像的交叉部分一直挺感兴趣。

。充满了各种参考资料的剪刀浆糊,这份文章等会儿要交给老师看,希望不要被嘲笑到死【

。显而易见的,我对第三篇深度残差网络在图像识别上的应用真的是一窍不通

————————————————————————————

 

在这三周时间内,阅读了FCN、Deep Residual  Learning for Image Recognition两篇论文和一天搞懂深度学习一份PPT。附带观看了这些学习资料相关的视频、阅读笔记等。对深度学习的一些名词有了一些基础了解,对什么是深度学习的见解也略有长进。

       1.深度学习

我以为,深度学习是机器通过模仿人生物学上的神经构造而建立的神经网络。再经过大量的数据训练而达成特定目标(比如识别手写数字这样的经典案例)。

之所以“深度”,是因为神经网络在输入层和输出层之间往往有很多“隐藏”层,每一层都有许多“神经元”中储存着不同的数值代表这个神经元的激发程度,每一个“神经元”都与上一层、下一层的许多“神经元”通过权重和偏置(bias),在sigmoid或者ReLU处理后相连,就像人的神经细胞一样,电位通过化学分子在神经元间由突触释放接受。

以识别手写数字为例,输入层往往是手写数字每一个像素点的灰度,最后输出层则是一个数字,中间的隐层则是对输入的灰度做分析,根据每一个像素点的灰度大小对最后输出的影响大小调整权重。

深度学习在每一次输入-输出训练中,都用获得的输出层结果和理想结果(人工给的正确答案)做方差和得到total loss,再利用反向传播和梯度下降回到神经网络里调整每个神经元之间权重和偏置的数值(所以“学习”,就是找到正确的权重和偏置参数),以一个较快的速度提高图像识别的准确度。

       2.目标检测

简单理解是,在干扰噪音的信号中,排除干扰,找到指定内容的位置和大小。

把物体从一整张图片中“剪裁”出来,再对其内容进行分类。

其中涉及到的一些名词有滑动窗口(解决目标的数目和位置),RCNN(结合卷积神经网络和滑动窗口)等。

       3.语义分割

简单理解:将一幅图中所有的像素点予以分类。机器从像素级别上认出并分辨物体。以一张图像输入,输出则是一块块区域和结构。

以前最多使用的方法是CNN,但是FCN通过把CNN最后几层全连接层改成卷积层使得原本输出的一维变成二维,并且放宽了在输入图片尺寸上的要求,能输出对应尺寸的分割图。

 

以上是对于一些名词的理解,以下将简单概述对这几篇学习资料的粗略了解。

 

       FCN

全卷积网络FCN是卷积网络CNN在语义分割领域的应用,它强调端到端点到点的训练,主要技术是卷积化、跳跃结构(采用了网上常见的翻译)、上采样。

卷积化本身是将CNN的全连接层替换成卷积层的过程,改变输出维度。

上采样是鉴于CNN通用的方法是池化以缩小图片,但是FCN最终的输出是一个与原来输入图形大小相等的图片,所以需要通过上采样来把图片的尺寸扩大(经常是对最后一层才进行上采样),上采样通过数学上矩阵、卷积、转置等运算实现。

跳跃结构是基于上采样的结果不够精确(往往过于粗糙)做出的优化手段,如果不做跳跃结构,我们得到的结果就是最后一层池化层(直接回到原本图像尺寸)的上采样结果。如果有了跳跃结构,那就是对最后一层上采样时不直接扩大到原尺寸,而是放大一定后结合之前得出的较早的几个池化层(图像相对更准确)再进行上采样。FCN论文中给出的例子是FCN-32s,FCN-16s,FCN-8s,调整上采样的步长来增加输出图像的精度。但是并不意味着越高的精度越好,在FCN的最后就有所指出,8s一类的精度可能会引入很多不相关的干扰项,反而在某些情况下不符合需求。

 

       一天搞懂深度学习

这个PPT结合老师演讲的视频能理解的更好,相对深入浅出的讲解了神经网络的基本构造和一些简单例子(比如数字识别)。里面也提到一些知识点如下:

梯度下降:一种优化方式,使得模型能够更好更快的调整权重和偏置参数,提高准确率。为了提高准确率,我们希望模型计算出的结果和理想结果之间的代价函数能够最小。以二元函数举例的话,那就是在函数的曲线上找到那些斜率小的点(当然,是低点),但是由于代价函数往往非常复杂,不能指望直接求出低点,那就随机选择一个点,观察它往某一个方向走时它是怎样变化的,找到并选择下降最多的那个方向。函数的梯度指出了函数最陡增长方向,那么它的反方向就是所求。

深度与宽度:神经网络究竟是宽层x低深度好还是窄层x高深度好?各有利弊,一般来说增加隐层能够增加准确率,但是也会使网络复杂化,也有可能出现过拟合。

ReLU:以前的网络更多是用Sigmod函数来把加权和投影到0~1,但是结合了生物学家的研究,人们发现采用更贴近人神经元激发情况的ReLU函数,能够得到一个更精准的结果。

Adagrad/Adam:另外一些优化算法,有着比梯度下降更好的效果。

Dropout:在深度学习中,有时会暂时抛弃掉一些“神经元”,对于防止深层网络的过拟合有着很好的效果。

过拟合:理解为某种机器的“死记硬背”行为,能够看似很好的适应当前训练数据,但是一旦给予多样化的新样本就得出相差十万八千里的答案,即学习不够。有时也有将噪音也当做有效数据情况导致输出错误的情况出现。

CNN/RNN/LSTM:几种不同的神经网络结构,不同的算法,在不同的领域都有其独特的属性和优缺点,是传统神经网络的变种。

 

       Deep Residual Learning for Image Recognition

这篇论文主要讲述的是,解决在深度学习中出现的“网络越深越难学习”的问题。这种问题一开始是关于梯度爆炸/收敛的,但是在这个问题有效处理后出现了衰退的情况,即随着网络深度增加,训练准确度达到饱和后反而急剧下降。

文章中利用引入深度残差学习框架来解决这个问题,其中有不得不提的一个名词“shortcut”,在网络中通过跳过若干层的方式优化结果。残差网络的特点有:网络比较窄、不dropout、传播效率高,池化少等。

利用神经网络结构层次的一些改变,让网络就算很深也不会消失梯度。

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注