深度学习入门思考

来源:互联网 发布:用友nc java插件下载 编辑:程序博客网 时间:2024/05/21 09:44

作为一个深度学习的新手,我非常冒昧的写下了这一篇文章。为什么说冒昧呢?因为作为一个局外者,说实话我不是很了解深度学习。所以,大家在对文章进行点评的时候多些建议,少些指责。如果文章中有引用您的观点,而且没有说明来源,请狠狠的指责。

在介绍深度学习之前,你不得不认识的四位世界级大神:。每日膜拜大神,学习必有进步。

深度学习入门思考

第一位就是YannleCun,他曾在多伦多大学随Hinton攻读博士,现在是纽约大学的教授,同时还是Facebook人工智能最重要的推动者和科学家。第二位就是Geoffrey Hinton,现在是Google Brain就职于谷歌。第三位是Bengio,他是蒙特利尔大学的教授,他仍然坚持在学术领域里面不断探索。Bengio主要贡献在于他对RNN(递归神经网络)的一系列推动。第四位是Andrew Ng (吴恩达),大家可能对他比较熟悉,现在就职于百度科学院。但是不得不说在纯理论研究上面Andrew Ng的光芒不如上述三位。当然文中对上述这几个人的成果都或多或少有些介绍。

膜拜完大神后,我们正式的步入正题。我们要说深度学习,那么我们先来说一下到底什么是深度学习。百度百科给予深度学习这样的定义:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表1机智的我瞬间提取了几个关键词:人工神经网络,多层感知机,分布式特征表示。

第一个关键词:人工神经网络。

人工神经网络Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型2这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。

事实上,单一的人工神经网络(非深度神经网络)在很早之间就被发现,在过去已经能解决一些特定的问题。然而,目前的神经网络架构都被设计为包含数个隐藏层。这数个隐藏层的层数,提高了网络的复杂度,使得网络能够进行深度学习,成为一种更强大的问题的解决工具。

人工神经网络其实就是大脑神经突触联接的结构的应用在人脑的神经网络中,神经之间的数据传递,是属于化学传递的。因为在轴突末端与相邻树突形成的突触间隙中,扩散着一种叫做神经递质的化学物质。它实现了神经元与神经元的数据传递。神经中最关键的部分是这种神经递质不是所有的神经都可以接收的,而是靠特定物质来识别。这种机制有效的提高了我们人类大脑的效率。试想一下,如果每个神经都接收传递,那么这个过程是消耗能量的,上亿的神经一起工作,那种能量的消耗是不可想象的。但是现在的人工神经网络,是依靠计算机的计算能力来征服海量的遍历过程。所以我认为,我们的人工网络神经如果也有了这种机制,那么我们的人工网络的效率将会大大提高。而且从成本上可以减少能源的消耗。

我们常说三十年河东,三十年河西。其实在很早之间人工神经网络就非常火,但是中间有一段时间人工神经网络是没有那么火的。Minsky 教授(就职于美国麻省理工学院人工智能实验室)曾在1970年出版了Perceptron(感知器)一书,指出人工神经网络的局限性。这本书直接导致了神经网络研究的将近二十年的长期低潮。那么是什么让人工神经网络又活起来了?

第一:高性能计算!摩尔定律揭示了计算能力增长速度的规律,而当年人工神经网络被Minsky教授诟病的问题之一就是巨大的计算量3。第二:大数据!百度首席科学家吴恩达[4]曾经就深度学习(人工神经网络的最大应用)与人工智能的关系给了一个非常形象的比喻:现在神经网络就是发动机,它推动着人工智能的发展,燃料就是我们所用的数据,人和环境的数据化给我们提供了大量的数据,输入发动机中作为火箭的燃料人工智能最近发展的主要推动力就是因为能够建立很大的神经网络。

深度学习入门思考

人工神经网络是现在处理数据的一种新模式,人工神经网络的强大之处在于它们自身的学习能力。在得到一个训练过的数据库,以及相关的正确的答案后,它们改变每一个链接的强度,直到最顶层的输出也得到正确的答案,进而有效地提升性能。这一过程模仿的是人类大脑通过增强或者弱化突触进行学习的方式,最终,会形成一个网络,能成功地处理新数据,这些新数据并不包涵在训练数据库中。(人脑学习的途径:一般人在接受外来知识的时候,通过大脑神经去寻找空白的神经元,然后通过神经突触对外来知识进行特殊的编码,进而将其保存在空白的神经元。人的学习过程也是不断编码的过程,而人的这种编码是化学物质上的编码,电脑的学习过程是抽象性的编码。人脑信息编码的分散性,也是一种数据保护程序:比如说一个手机号码,它不是完整的保存在一个区域,而是通过不同的认知强度进行保存的,那个数字使用的越是频繁,那么那个数字就越容易被发现,而且在特定的编码过程中,编码过程使用的频繁程度决定了其编码的时间长短。)

在计算机网络中,模拟人脑的神经元进行开发深度学习任何提高数据库的使用效率可以采用类似的解决方案:数据编码化处理后等到一个数据编码数据库,人将指令输入,通过数据编码数据库被翻译成数据库可以识别的语言,数据库根据被翻译指令通过算法实现控制以及回复。这种方式也被科学家们称为无监督学习,而无监督学习一般分成两种:被动的和主动的。而这种类神经网络属于被动的无监督学习,被动的无监督学习就是在所观察的信息流中监测规律与网络中已存的规律作比较得出可反馈的有效信息。而主动的无监督学习就是通过学习塑造所观察的信息流,这种塑造一般是有效的分解,通过分解信息流,有助于弄明白分解后信息流所适应的各模型之间的关系。主动的无监督学习,就使得人工神经网络中的模型有了一定的联系。而在以后处理数据的时候不同模型之间的关系将会具有分析数据流的最高优先级,也就是数据优先会被具有联系的不同的模型先进行分析

提到无监督学习,不等不说无监督学习是深度学习的圣地,因为现在大部分的神经学习网络都是监督学习。科学工作者们都在努力的研究如何让个人神经网络进行无监督学习。无监督学习的目标是建立兼容小数据集进行训练的通用系统。如今深度学习模式往往在监督数据集上训练,所谓的监督训练集,即每条数据都有一个对应的标签。从人的成长经历来说,小时候你的父母告诉你猫就是狗,然后在你的大脑里就会形成猫的图像是狗。这就是监督学习所干的事:给事物加上特定的标签

我认为从监督学习过渡到无监督学习,还是避免不了使用标签。人开始独立思考的前提是我们在监督学习下,积累了大量的标签式模型。任何人通过广度的模型连接,开始创造了一些新事物。这些新事物要想被自己接受(这是创新的必备过程,如果你自己创造的东西,自己都不能接受,那怎么说服他人接受呢?),你就会去找大量的已有的模型来说服自己接受新事物的正确性。然后再去说服其他人,如果其他人的脑中有同你一样能说服自己接受新事物的模型,那么这个人就能很快的接受这个新事物。无监督学习研究的主要目标是预训练一个模型网络,而这个模型网络一定是建立在监督学习的基础上。

第二个关键词:多层感知机

多层感知器(MLPMultilayer Perceptron)是一种前馈人工神经网络模型深度学习入门思考


上图中所示的神经网络中有四个神经元的输入层,两个十个神经元的隐含层,三个神经元的输出层。每一个神经元都是我们要说的感知机,我个人认为这里面的感知机其实就是一种模型。以前是单模型,现在是多模型。大多数常见的运用在多层感知机的监督式训练的算法都是反向传播算法:基本流程如下:

1.将训练样本通过神经网络进行前向传播计算。

2.计算输出误差,常用均方差:E=1/2(t-y)(t-y)

其中t是目标值,y是实际神经网络计算输出。5

反向传播算法总体上来说就是训练模型中的参数,使其越来越准确。我们也可以认为这是有参模型的构造过程,模型的参数通过从数据中学习获得。这个算法是典型的监督学习算法,现在很火,但是未来就不一定了。但是,这种算法在信息处理过程中任何保证信息的完整性呢?因为在信息论中有个信息逐层缺失的说法:就是信息在逐层处理的时候信息量是不断减少的。例如处理A信息得到B,那么B所带的信息量一定是小于A的。所以这种算法总的来说是有缺陷的,在输出结果的时候,或多或少都会有些误差。

但是现在基于海量数据对模型的训练,多数参数正在逼近准确。相比以前我们认为的设置参数来说,反向传播算法与大数据的结合运用将会有效的帮助我们从统计学的角度来设置参数。

第三个关键词:分布式特征表示(我们也可以成为特征表述)

所谓的特征表述简单的来说就是标签化。在处理特殊问题的时候,我们往往是人工的从数据中提取一些我们自认为有用的标签,一般都是些出现频率比较高的词汇。但是这种传统的人工提取确实太浪费时间,而且不适合现在海量数据的标签提取。那么有没有什么快捷的方式呢?现在我们所用的深度学习就是用来干这个事情的所以不要将现在的深度学习看的太过高深。但是也不要轻易的轻视它哦,未来它的工作能力估计会超过几十亿人的工作总合。下面我们说一说标签处理任何帮助我们。

比如从认知一个APPLE手机的过程:人通过视觉输入手机图像,调用已经训练过的手机构造模型,和其他可以标志手机的信息。然后调用已经被训练好的品牌认知模型,最后是这两个模型进行信息连接输出这是一部APPLE手机。然后通过关键字连接对图片进行介绍。可以发现,这里面手机标签,品牌标签。当然这里从我们人类认识猫的过程中比较好理解特征表述。

人工神经网络的一个核心思想:分布式表征。这是我们在神经网络训练中运用最多的。分布式表征:当你表达一个概念的时候,不是用单个神经元一对一的储存定义,概念和神经元是多对多的关系。6一个概念用多个神经元共同定义,同时一个神经元也可以参与不同概念的表达。大脑中神经网络的这种模式,可以极大的节省大脑的储存工作量,并且是大脑工作效率得以很大的提升。

举个最简单的例子。一辆 “大白卡车”,如果分布式地表,一个神经元代表大小,一个神经元代表颜色,第三个神经元代表车的类别。三个神经元同时激活时,就可以准确描述我们要表达的物体。

分布式表征的优点有很多,其中最重要的一点就是当一部分神经元出现问题时,信息的表达不会出现覆灭性的打击。而且分布式表征模型可复用的特点,使在资源空间上储存上可以表现得更强大。

广度学习或将成为未来的需求

说到这里,不得不承认我在多层感知机和特征表示这两个关键词的介绍中采用了很小量的篇幅。因为我认为未来的深度学习将更加趋向于广度化学习。我们的大脑运用最多的应该是广度网络神经。

因为在我们解决复杂的问题是,不仅仅会思考这一个问题的领域,我们会联想其他方面的领域与之类似问题的解决方式。这种机制,在我们生活中应该是普遍存在的。从神经网络的角度来分析这个问题的解决机制:我们接到一个新问题的时候,首先是这类问题领域的神经网络开始分析,然后通过同一等级的神经网络层的协同工作,进而将分析结果进行深层次的汇总分析。我们发现,这样的机制是非常高效的,因为同一等级的神经网络可复用与各种事物的总结。这种复用机制的前提是,你大脑中要有这种神经网络的模型。通过模型的协同合作,我们在解决问题的效率和准确度上将会不断提高。未来用于计算机的深度学习将会向广度学习机制靠拢,尽管现在计算机的计算能力还能满足现在的数据处理,但是我们不能保证未来计算能力的增长能与未来数据增长相抗衡,通过多模型同等级的协同合作使得待解决问题进入下一等级的模型时,能够携带更多有效的信息,使问题更加快速,有效的解决。

Crick(英国生物学家,物理学家,及神经科学家 提出脑内大量的运算是下意识的,而人们意识到的则是运算的结果。例如,看到一个人的背影,我们就能知道他是谁,能想象出他正面的样子。我们知道:人的智能行为是多个脑区的整合性行为。7

计算机与人脑存在着巨大的差别:

1.量的不同,如运算的速度。

2.质的差异,如机制的不完整性。

人脑对于事物和概念的记忆,不是单点储存,而是空间分布式的储存。在人对事物解析的时候通过事物特征模型来解释事物。相比与计算机的模型,人脑中的模型是多种连接的。而且这种多连接模式,同时是具有狡辩性质的。只要在道理上说的痛,这类模型的处理方式就可以运用到那类模型的处理。至于这个道理是什么,反正我是搞不懂。是人情世故,还是科学相通?

而现在模型之间的连接可以说成是:无跨越性的。我们人脑在解决问题的时候可以称为竭尽所能。模型之间的“客串”是常态,无监督学习的境界高超到不能想象。人类为什么能在历史的发展进程中创造出那么多的新事物,就是因为我们模型客串的结果。比如牛顿发现万有引力定律:苹果从树上掉下来,可能对于一部分人来说,管它为什么先吃了再说。但是对于牛顿来说,模型客串一下,发现很多的生活现象都与此有着密切的联系。然后就去研究,于是乎就发现了万有引力定律。

如果未来深度学习要想完全替代人,那么深度学习就要无维度的发展。不能局限于深度,更要向其广度发展,使计算机能够从多领域的角度去思考问题。否则计算机从事的不过是单纯的“体力劳动”,没有什么技术含量可言。

 

 

 

 

 

 

 

参考文献:

1】:来自百度百科。

2】来自百度百科。

3】:来自:http://tech.sina.com.cn/i/2016-02-23/doc-ifxprucu3124795.shtm 作者王川,投资人,中科大少年班校友,现居加州硅谷个人微信号9935070

4】:吴恩达.《财富》专访吴恩达:计算机不会统治世界

http://www.fortunechina.com/business/c/2016-02/28/content_256724.htm

2016-02-28.

5】来自:

http://www.cnblogs.com/xiaowanyer/p/3701944.html   

作者是:Java deep learning library的作者。

6】来自:王川

http://tech.sina.com.cn/i/2016-02-23/doc-ifxprucu3124795.shtml

投资人,中科大少年班校友,现居加州硅谷个人微信号9935070

7】来自:

http://www.lmbe.seu.edu.cn/biology/bess/biology/chapt16/16-5.htm东南大学

 

 

附录:

无监督算法设计思路:

 

深度学习入门思考

通过对神经网络的遍历过程来寻找关键词连接方式,如果能够满足某种神经网络中某种方式就输出相应的结果。如果不不能找到,就以高频次出现的连接方式作为返回的对象,然后通过这些高频词的关键词连接方式的连接来定义新事物。(在定义的过程需要用到关键词表征库。)

关键词表征库:对可能用到的关键词进行监督式的学习,从而得到一个关键词表征库。(可以看成关键词定义的结果。)

1.为什么不直接利用关键词表征库?

关键词的运用在于如何架构模式,对关键词进行有效的排列。可以得到多条不同含义的定义,所以对事物关键词的提取应当是有模型结构。而关键词表征库之处的知识单个关键词的解释,不涉及到模型结构。

2. 如何自动建造新模型结构,并且准确描述新建的结构?

通过神经网络中关键词模型结构的常态设计的提取(经验性思维)——两个关键词或多个关键词常以某种方式连接,那么就把这种方式保留下来。通过汇总多种方式连接,可以把关键词全部纳入到某种模型中

0 0