深度学习是一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。
一般的机器学习处理流程如下:
传感器获得数据——>预处理——>特征提取——>特征选择——>推理,预测或识别。
预处理——>特征提取——>特征选择,概况起来就是特征表达,良好的特征表达,对最终算法的准确性起了非常关键的作用。
特征表达一般都是人工完成的,靠人工提取特征。
好的特征应具有不变性(大小,尺度和旋转等)和可区分性。
手工选取特征是一件非常费力,启发式(需要专业知识)的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间。
DeepLearning(unsupervised feature learning不需要人参与的特征选取) 就是自动学习特征的。
总的来说,人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标,目标的行为等。
也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表示语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越有利于分类。
特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精度。
特征的粒度,复杂图形往往由一些基本结构组成。一个图可以通过64种正交的edges来线性表示。有20种基本的声音结构,其余的声音可以由这20种基本结构合成。
V1看像素是像素级,V2看V1是像素级,这个是层次递进的,高级层次表达由底层表达的组合而成。专业点说就是基basis.
V1提取的basis是边缘,然后V2是V1层这些basis的组合,这时候V2区得到的又是高一层的basis.即上一层basis组合的结果。上上层又是上一层的组合basis.
直观上说,就是找到make sense的小patch再将其进行combine,就得到了上一层的feature,递归向上learning feature.
DeepLearning需要多层来获得更抽象的特征表达。
深度学习算法之自动编码器
自动编码器,还不能用来分类数据,它只是学会了如何去重构或者复现它的输入而已,它还没有学习如何去连接一个输入和一个类。或者它只是学习获得了一个可以良好代表输入的特征,这个特征可以最大程度上代表原输入信号。
那么,为了实现分类,我们就可以在自动编码器的最顶的编码层添加一个分类器,然后通过标准的多层神经网络的监督训练方法去训练。
这时候,我们需要将最后层的特征code输入到最后的分类器,通过有标签样本,通过监督学习进行微调。这也分两种:
一种是只调整分类器;
另一种是通过有标签样本,微调整个系统:(如果有足够多的数据,这个是最好的,end-to-end learning端对端学习).
一旦监督训练完成,这个网络就可以用来分类了。
深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法。深度学习算法自动的提取分类需要的低层次或高层次特征。
高层次特征,一是指该特征可以分级(层次)地依赖其他特征,例如,对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,例如边缘检测器,小波滤波器等,然后再这些低层次表达的基础上再建立表达,例如这些低层次表达的线性或非线性组合,然后重复这个过程,最后得到一个高层次表达。
此外,从模式识别特征和分类器的角度,deep learning框架将feature和分类器结合到一个框架中,用数据去学习feature,在使用中减少了手工设计feature的巨大工作量(这是目前工业界工程师付出努力最多的方面)。因此,不仅效果可以更好,而且,使用起来也有很多方便之处。
以上内容来自https://www.leiphone.com/news/201608/7lwVZCXnScbQb6cJ.html
自己总结一下:
深度学习框架可大致分为两个部分:
一,获取原始数据的特征表达;
二,将原始数据的特征表达作为输入,传给分类器,做分类,预测或识别;
什么是原始数据的特征表达?
原始数据本质特征的分布式表示,与原始数据等价的另一种更高阶,更抽象的表示,这种表示更易于被分类器处理。
深度学习算法就是通过逐层提取原始数据的特征,组合底层特征得到高层特征,最终得到原始数据的特征表达。也就是特征学习的过程。
高层特征由底层特征组合而来,越高层的特征越抽象,语义越具体,越易于分类。深度模型(自动编码器,波兹曼机,卷积神经网络等)是得到数据特征表达的工具。
可以这样理解,原始数据集放入深度模型训练完成后,得到的是可以反映原始数据集本质特征的一个函数,与原始数据集类似的数据都可以通过这个函数来表示。
什么是分类器?