03深度学习
深度学习的基本概念
1.浅层学习verus深度学习
1.浅层学习
给定一副图像,采用浅层学习对图像进行分析和理解。
1,首先,要从这幅途中检测出它关键的信息点,然后对这个信息点进行表达,如著名的sift算法,就形成了每个信息点128维的向量,我们可以对信息点的表达向量进行聚类,就组成了信息点的视觉词典。
2,在视觉词典的基础之上,我们用一个一个的视觉单词,来表达整个图像。
3.由于图像拥有空间近邻关系,我们可以通过金字塔模型,来捕获图像的视觉单词之间所形成的这种空间结构,在金字塔模型的基础之上,可以形成图像的视觉直方图。一旦得到了图像的视觉直方图,也就是说,把图像从像素点空间表达成了视觉单词直方图的向量的形式,基于这个向量的形式,我们就可以对图像进行识别、分类、聚类。
在这个过程中我们可以看到,无论是信息点的检测,还是信息点的表达,以及视觉单词的聚类,不同阶段分析和处理的手段,我们可以加以改造,也就是说,我们在每一个阶段里面,可以用自己所定义的良好的算法,得到这一个阶段能够得到的更好的结果。
2.深度学习
我们可以看到在深度学习里面,只要标注数据从输入端出发,他会经过卷积操作、池化操作、误差反向传播等手段,层层抽象、层层优化,学习得到原始数据输入数据的特征表达,基于原始数据输入数据的特征表达,我们能够对原始数据进行识别和分类。
在这个过程中我们没有把学习的任务分成一段一段不同的子任务加以分析和处理,也就说深度学习与浅层学习完全采取了不同的学习手段,他是直接从输入端输入数据,然后在中间层通过层层抽象的方法,直接得到输入数据的特征表达,进而对这种特征表达进行分析与处理,他是一种端到端的学习的方法。
3.使用浅层学习实现英文到中文到翻译
应进行如下操作:
在分段学习里面,我们必须要依次经历 词性标注、语法解析树的生成、语义分析等不同的阶段,在不同的阶段操作过程里面我们可以引入更加适合该阶段处理的一些典型算法,如条件随机场、隐马尔可夫链等不同的模型在不同的阶段完成特定的任务。
在深度学习里面,这种分段学习的机制消失了,它采用的是端到端的学习方法。
它先把jordan likes playing basketball 先映射成一个一个向量,然后基于这些向量进行编码,编码的结果实际上刻画了整个英文句子的上下文关系,然后再设计一个解码器,从编码的结果中逐一的翻译出 乔丹喜欢打篮球 这样的中文的单词。
当然在深度学习里面,编码器和解码器是基于已标注的海量语料库学习得到。一旦得到编码器和解码器,任何一句英文的句子,首先通过训练得到的编码器进行编码,以得到整个句子的上下文关系,然后通过训练得到的解码器解码出该英文句子所对应的中文句子。
浅层学习采用的是 词性标注-语法解析树-语义分析这种一段一段学习与处理的方式。
深度学习直接从输入数据出发,输出输入数据对应的中文翻译的结果。他是一种端到端学习的机制。
4.人脑神经网络与深度学习模型的关系
深度学习模仿刻画了人的大脑皮层从v1区到v4区进行视觉信息所处理的层次化的关系。
如图所示,给出一副图像,该图像是像素点空间刻画的像素点空间所刻画的像素点空间所分布的模式。
科学家认为从像素点空间到我们的语义空间的过程一定经历了信息化处理的脉络。
1.首先得到像素点空间
2.然后在像素点空间得到像素点空间所组成的线条
3.然后基于线条得到一个个视觉对象
4.在视觉对象的基础上,形成视觉语义。
5.在深度学习过程中,从像素点空间出发,逐步学习得到 点、线、面,或子块这样不同层次的语义信息,进而得到了人脸这样的高层语义。
6.把深度学习模型看成复杂的映射函数,把原始图像从像素点空间映射成了高层次的语义空间,实现了像素点到高层语义的映射。
5.刻画神经元功能的数学模型
如图:
一个神经网络是由无数多个神经元前后相连组成的一个复杂网络。
任何一个神经元都具备3个功能:
1.对相邻的前向神经元输入的信息及对应的权重相乘进行加权累加;
2.对输入的数据进行非线性变换,通过**函数。
3.将**函数的输出结果按照后向神经元的权重进行传输。
6.常用的**函数
1.sigmod
对加权累加后的输入信息通过非线性变换,映射为值域在0,1范围内的数。
导数
2.tanh
好像和上面那个一样
导数
3.Relu (rectified linear unit线性整流函数)
当前向神经元的输入信息量为负数时,即抛弃该数据,不再向后向传播。
导数
7.前馈神经网络(feedforward neural network)
1.即信息传播的方向是单向的:各个神经元接收前一级的输入,经过非线性变换后输出到下一级,模型没有向前一级进行反馈。
只接受,不反馈。层与层之间、层内神经元没有任何反馈信息。
8.如何优化网络参数
输入数据为26*26的784维度的图片,输出为10维度语义空间的映射。
每个维度代表元数据在该维度上的概率。
输出为 0|0的概率; 1|1的概率;。。。依次类推。