当前位置:网站首页>【Reprint】Deep Learning (deep learning) study notes arrangement

【Reprint】Deep Learning (deep learning) study notes arrangement

2022-08-09 07:03:00 Anakin6174

See the very early series of articles introducing deep learning:深度学习介绍

Below is an excerpt:

机器学习(Machine Learning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科.
从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)
总的来说,人的视觉系统的信息处理是分级的.从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等.也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图.而抽象层面越高,存在的可能猜测就越少,就越利于分类.例如,单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系.

特征表示的粒度,结构性特征表示
小块的图形可以由基本edge构成,更结构化,更复杂的,具有概念性的图形如何表示呢?这就需要更高层次的特征表示,比如V2,V4.因此V1看像素级是像素级.V2看V1是像素级,这个是层次递进的,高层表达由底层表达的组合而成.专业点说就是基basis.V1取提出的basis是边缘,然后V2层是V1层这些basis的组合,这时候V2区得到的又是高一层的basis.即上一层的basis组合的结果,上上层又是上一层的组合basis……(所以有大牛说Deep learning就是“搞基”,因为难听,所以美其名曰Deep learning或者Unsupervised Feature Learning)

浅层学习和深度学习
20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮.这个热潮一直持续到今天.人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测.这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性.这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perceptron),但实际是种只含有一层隐层节点的浅层模型.

2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮.这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,在这篇文章中,逐层初始化是通过无监督学习实现的.
深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力.
深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性.因此,“深度模型”是手段,“特征学习”是目的.区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易.与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息.
缺点:
1)比较容易过拟合,参数比较难tune,而且需要不少trick;

2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;

To overcome problems in neural network training,DL采用了与神经网络很不同的训练机制.传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法).而deep learning整体上是一个layer-wise的训练机制.这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散).
传统神经网络的训练方法为什么不能用在深度神经网络

BP算法As a typical algorithm for traditional training of multi-layer networks,实际上对仅含几层网络,该训练方法就已经很不理想.深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源.

BP算法存在的问题:

(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;

(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);

(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;
deep learning训练过程
如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递.这会面临跟上面监督学习中相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了).
2006年,hinton提出了在非监督数据上建立多层神经网络的一个有效方法,简单的说,分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x’尽可能一致.方法是:

1)首先逐层构建单层神经元,这样每次都是训练一个单层网络.

2)当所有层训练完后,Hinton使用wake-sleep算法进行调优.

将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型.向上的权重用于“认知”,向下的权重用于“生成”.然后使用Wake-Sleep算法调整所有的权重.让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点.比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像.Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分.

1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重).也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”.

2)sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重.也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”.

Restricted Boltzmann Machine (RBM)限制波尔兹曼机
假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),如果假设所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足Boltzmann 分布,我们称这个模型是Restricted BoltzmannMachine (RBM)

Deep Belief Networks深信度网络
DBNs是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation).对于在深度神经网络应用传统的BP算法的时候,DBNs遇到了以下问题:
(1)需要为训练提供一个有标签的样本集;
(2)学习过程较慢;
(3)不适当的参数选择会导致学习收敛于局部最优解.

Convolutional Neural Networks卷积神经网络

卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点.它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量.该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程.卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性.
CNNs是受早期的延时神经网络(TDNN)的影响.延时神经网络通过在时间维度上共享权值降低学习复杂度,适用于语音和时间序列信号的处理.
CNNs是第一个真正成功训练多层网络结构的学习算法.它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能.CNNs作为一个深度学习架构提出是为了最小化数据的预处理要求.在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征.这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点.
小结
Deep learning能够得到更好地表示数据的feature,同时由于模型的层次、参数很多,capacity足够,因此,模型有能力表示大规模数据,所以对于图像、语音这种特征不明显(需要手工设计且很多没有直观物理含义)的问题,能够在大规模训练数据上取得更好的效果.此外,从模式识别特征和分类器的角度,deep learning框架将feature和分类器结合到一个框架中,用数据去学习feature,在使用中减少了手工设计feature的巨大工作量(这是目前工业界工程师付出努力最多的方面),因此,不仅仅效果可以更好,而且,使用起来也有很多方便之处,因此,是十分值得关注的一套框架,每个做ML的人都应该关注了解一下.

原网站

版权声明
本文为[Anakin6174]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/221/202208090655473887.html