稀疏编码算法

稀疏编码算法 深度学习是什么?

深度学习是什么?

深度学习是什么?

深度学习:像人脑一样深入思考。

从上一篇文章中,我们可以看出个性化推荐系统确实擅长 "观察单词和观察颜色为不同的用户主动推送不同的3D打印内容。但是如果你认为它真的有 "人工智能 ",那你就错了。其实这些推荐系统背后的运行原理主要是基于概率统计、矩阵或者图模型,计算机确实很擅长这些数值运算。然而,因为他们只采用了实用的 "经验主义与哲学(即有效),而不是真的用 "理性主义与哲学,他们离真正的人工智能还很远。AI(人工智能),即人工智能,和永生、星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了很大的进步,但是到目前为止,还没有一台计算机能够产生 "自我与自我意识。

提示:图灵测试是计算机是否真正具有人工智能的试金石。英国数学家艾伦·图灵(1912-1954),英国数学家协会会员计算机科学之父和 "人工智能之父,《机器会思考吗?》在1950年的一篇著名论文中提出了图灵测试的思想。也就是把一个人和一台电脑隔离在两个房间里,然后由房间外的提问者对他们进行测试。如果提问者可以 t判断哪边是人哪边是机器,证明计算机具有人类的智能。

直到深度学习的出现,人们看到了一丝曙光,至少,图灵测试(在表象意义上)不再那么遥不可及。2013年4月,《《麻省理工学院技术评论》》杂志将深度学习列为2013年十大突破性技术。通过深度学习,推荐系统可以更深入地挖掘你内心的需求,从海量的3D模型库中选择最适合你的打印出来。

让 让我们先来看看人脑是如何工作的。1981年的诺贝尔医学奖授予了戴维·胡贝尔和托尔斯滕·威塞尔以及罗杰·斯佩里。前两者的主要贡献在于人类视觉系统的信息处理是分层次的。如图4-45所示,从视网膜,通过低级的V1区域提取边缘特征,到V2区域的基本形状或目标的局部,到高级的整个目标(如判断为人脸),到更高级的PFC(前额叶皮层)进行分类判断。也就是说,高层特征是低层特征的组合,从低层到高层的特征表达越来越抽象,越来越概念化,也就是越来越能表达语义或意图。

这一发现激发了人们对神经系统的进一步思考。大脑的工作这个过程可能是一个迭代和抽象的概念化过程,如图4-46所示。比如从原始的信号摄取开始(瞳孔摄取像素),然后做初步的处理(大脑皮层的一些细胞找到边缘和方向),然后抽象(大脑确定我们面前的物体的形状,比如椭圆形),然后进一步抽象(大脑进一步确定物体是人脸),最后识别出我们面前的人——是大明星华。这个过程其实符合我们的常识,因为复杂的图形往往是由一些基本结构组成的。同时也可以看出,大脑是深层结构,认知过程也是深层的。

而深度学习恰恰是通过组合低级特征,形成更抽象的高级特征(或属性类别)。比如在计算机视觉领域,深度学习算法从原始图像中学习一个低级表达式,比如边缘检测器、小波滤波器,然后在这些低级表达式的基础上,通过线性或非线性组合,得到一个高级表达式。另外,不仅图像有这个规律,声音也差不多。比如研究人员通过算法从一个声音库中自动找到20个基本的声音结构,剩下的声音就可以从这20个基本结构合成出来!

在进一步阐述深度学习之前,我们需要知道什么是机器学习。机器学习是人工智能的一个分支,在很多情况下,它几乎是人工智能的代名词。简单来说,机器学习就是让机器通过算法从大量历史数据中学习规则,从而智能识别新样本或预测未来。

深度学习是机器学习研究的一个新领域。它的动机是建立一个可以模拟人脑进行分析和学习的神经网络。它模仿人脑的机制来解释数据,如图像、声音和文本。深度学习被称为 "深度与广度因为以前的机器学习方法都是浅层学习。深度学习可以简单理解为传统神经网络的发展。大概二三十年前,神经网络曾经是机器学习领域特别热门的方向。与以往基于人工规则的专家系统相比,这种基于统计学的机器学习方法在很多方面显示出优势。如图4-47所示,深度学习与传统神经网络有相似之处,采用了与神经网络相似的层次结构:系统是包括输入层、隐含层(单层、多层)和输出层的多层网络,只有相邻层的节点(单元)相连,同一层和跨层的节点互不相连。这种分层结构接近人脑的结构(但不得不说,差别还是很远的,考虑到人脑是一个极其复杂的结构,很多机制目前我们都是未知的)。

图4-47传统神经网络和深度神经网络

提示:人们类脑由数千亿个神经元组成,每个神经元平均与数千个其他神经元相连,从而形成一个庞大的神经元网络。通过这种连接,神经元可以发送和接收不同数量的能量,但它们不会。;t对能量的接受不会立即做出反应,而是先进行积累,只有当积累的总和达到某个临界阈值时,才会向其他神经元发送能量。人工神经网络(ANN)对人的神经网络进行了数学抽象,如图4-47所示,抽象为一个输入层、一个输出层和中间的几个隐层(用于分层约简和抽象内在特征,相当于特征检测器),其中每一层都有若干个节点和连接这些点的边,边的权重通过训练数据集学习。用边表示的不同函数(通常是非线性函数)对应不同的神经网络。例如,第6章6.4.1节中介绍的感知器是最简单的前馈人工神经网络,没有任何隐藏层,其中的函数

称为传递函数和阈值截止函数

用作激活功能。在上世纪七八十年代,这种在人工智能领域被称为连接主义的方法非常流行。

但是后来因为理论分析的难度,训练方法需要大量的经验和技巧,以及计算量巨大,优化难度大,神经网络逐渐淡出了科研领域的主流方向。值得指出的是,神经网络的性能(如采用误差反向传播(简称BP算法),在训练过程中采用梯度下降法修正权值,使网络误差最小化)在深层情况下变得非常不理想(传播时容易出现所谓的梯度分散梯度扩散或梯度消失,根本原因是目标代价函数非凸导致解陷入局部最优, 并且这种情况随着网络层数的增加变得更加严重,即随着梯度的逐渐消散,其对网络权值调整的作用越来越小),因此只能处理浅层结构(小于等于3),从而限制了性能。 因此在90年代,越来越多的浅层模型相继被提出,如只有一个隐层节点的支持向量机(SVM)和Boosting,无隐层节点的最大熵方法(如LR,Logistic回归),在很多应用领域取代了传统的神经网络。

显然,这些浅层结构算法有很多局限性:在样本和计算单元有限的情况下,表达复杂函数的能力有限,其对复杂分类问题的泛化能力受到一定程度的限制。更重要的是,浅层模型有一个特点,就是需要依靠人力来提取样本的特征。但是手动选择特征是一件非常费力的事情,能不能选好很大程度上取决于经验和运气。既然手动选择特征不好,可以自动学习一些特征吗?

提示:在现实生活中,为了对物体进行分类,人们首先要做的是如何表达一个物体,即必须提取一些特征来表示一个物体。例如,区分人和猴子的一个重要特征是它是否有尾巴。特征选择的质量对最终结果有很大的影响。

另外,我们希望提取的特征能够像PCA(主成分分析,请参考第6章6.2.2节)一样,代表输入数据中最重要的部分,找到能够代表原始信息的主要成分。以自动编码器为例,它是一个尽可能再现输入信号的神经网络:即输出Y应尽可能与输入X相同,表示为

。我们可以通过训练来调整这个神经网络的参数,得到各层中的权重系数,这样就可以得到输入x的一个分层表示,这个能够表示原始信息主要成分的表示就是所谓的特征。

此外,我们还可以使用

来表示输出y,其中w称为字典。类似于PCA,w可以理解为基数,h可以理解为系数。同时,我们不仅要将信号表示为一组分层基的线性组合,而且只需要很少的基来表示信号,这就是所谓的稀疏编码。稀疏性定义为只有几个非零元素或者只有几个远大于零的元素。也就是说,我们希望找到一组最优的系数。

,满足:

注意,上述公式的右边采用了L1范式/正则化/约束来满足稀疏性,上述公式实际上是对Lasso(最小绝对收缩和选择算子)估计的一种求解。

我们之所以希望 "稀疏性 "是基于科学的是,大多数感官数据,如自然图像,可以表示为 "一些 "基本元素,如基本线/面的叠加。稀疏编码算法是一种无监督学习方法,用于寻找一组 "超级完整 "基向量(基向量的个数大于输入向量的维数)来更高效地表示样本数据,从而找出隐藏在输入数据中的结构和模式。

答案是肯定的!深度学习框架将特征和分类器结合成一个框架,从海量数据中自动学习特征,减少了使用中人工设计特征的巨大工作量。看它的别名:无监督特征学习(Unsupervised)特征学习),顾名思义。无监督学习意味着你不 不需要手动标记样本类别来完成学习。所以深度学习是一种可以自动学习特征的方法。

提示:准确地说,深度学习首先使用无监督学习对每一层进行预训练,学习特征;每次单独训练一层,将训练结果作为更高一层的输入;然后,在顶层,使用监督学习从上到下进行微调,以学习模型。

深度学习通过学习一个深度的非线性网络结构,可以用简单的网络结构实现复杂函数的逼近,表现出从大量未标记样本中学习数据集本质特征的强大能力。深度学习可以获得更能代表数据的特征。同时,由于模型层次较深(通常有5、6甚至10个隐层节点,所以 "深度与广度就是隐层节点数可以控制为输入节点数的多项式倍而不是指数倍)且表达能力强,它具有表示大规模数据的能力。对于图像和声音特征不明显(需要人工设计,很多没有直观的物理意义)的问题,深度模型在大规模训练数据上可以取得更好的效果。特别是在语音识别方面,深度学习已经将错误率降低了30%左右,取得了显著的进步。与传统神经网络相比,深度神经网络有了很大的改进,训练的难度(如梯度分散)可以有效降低 "逐层预训练 "。注意,深度学习不是万能的。和许多其他方法一样,它需要结合特定领域的先验知识和其他模型才能获得最佳结果。当然,也需要针对自己的项目仔细调整参数,这一点经常被人诟病。此外,与神经网络类似,深度学习的另一个限制是它不可解释,像a "黑盒 "我不知道。;我不知道为什么我能得到好的结果,我不知道。;不知道如何进行具体的改进,这可能会成为产品升级过程中的障碍。

深度学习通过许多数学和工程技巧增加(堆叠)隐藏层的数量。如果有足够多的隐藏层(即深层),通过选择合适的连接函数和架构,可以获得很强的表达能力。深度学习的一个主要优势是可以利用海量的训练数据(即大数据),但是常用的模型训练算法——反向传播仍然需要很高的计算量。近年来,得益于计算机速度的提高、基于MapReduce的大规模集群技术的兴起、GPU的应用以及许多优化算法的出现,使得原本需要几个月的训练过程可以缩短到几天甚至几个小时,深度学习已经在实践中投入使用。

值得一提的是深度学习诞生并非一帆风顺。虽然1993年Yahn Lecun提出的卷积神经网络(CNN)是第一个成功训练多层网络结构的学习算法,但直到2006年应用效果并不好。G——,提出了一种无监督贪婪预训练算法。应用效果有了突破,它和Ruslan Salakhutdinov提出的深度玻尔兹曼机器:DBM)重新点燃了人工智能对神经网络和玻尔兹曼机器的热情。这就掀起了一股深度学习的浪潮。从最新的研究进展来看,只要数据足够大,隐藏层足够深,深度学习即使没有预训练也能取得很好的效果,体现了大数据和深度学习的内在联系。另外,虽然无监督(比如DBM方法)是深度学习的一个优势,但是深度学习当然也可以用在有监督的情况下(也就是给用户手动标注的机会)。事实上,有监督的CNN方法现在被越来越多地使用,甚至超过了DBM。

提出了与前馈神经网络不同,RBM(受限玻尔兹曼机)中的可见层和隐藏层之间的连接是无向和全连接的。对比度差无监督训练是RBM的一个重要算法,它包括三个步骤:正向过程、反向过程和权值更新。主要目标是使生成的数据尽可能与原始数据相似,并通过比较它们之间的差异来调整权重更新:

其中,α是学习率。这样的网络可以具有感知输入数据的表达程度的能力,并试图通过这种感知能力来重构数据。如果重建的数据与原始数据差异很大,请调整并重新构建。

2012年6月,《纽约时报》披露了谷歌大脑项目,引起了公众的广泛关注。这个项目由斯坦福大学著名的机器学习教授吴恩达和世界级的大规模计算机系统专家杰夫·迪恩领导,使用16000个CPU核心的并行计算平台训练一个具有10亿个节点的深度神经网络(DNN),使其能够自我训练。00万张图片进行识别。在分析数据之前,不需要手动输入任何特征,例如 "脸、四肢和猫看起来像什么?"进入系统。杰夫·迪恩说:"训练的时候我们从来不告诉机器: 这是一只猫。;(也就是没有标注样本)。这个系统实际上发明或理解了 猫和猫。;独自一人。 "

2014年3月,同样基于深度学习方法,脸书 s DeepFace项目使得人脸识别技术的识别率达到了97.25\%,仅比人类97.5\%的识别率低一点点,准确率几乎和人类不相上下。这个项目使用9层神经网络获取人脸表征,神经网络处理的参数高达1.2亿。

最后,让 让我们回到大数据的背景。当我们坐拥海量大数据时,无论是做推荐系统还是3D模型检索(见第6章6.4节 "在人群中寻找她-大规模三维模型检索 "),一般用简单的线性数学模型就能得到很好的结果。所以,我们沾沾自喜,认为大数据更重要,而智能算法简单明了,他们不 不需要太复杂。当深度学习出现时,它的一系列辉煌成就让我们意识到可能是时候 "用枪换枪 "。简而言之,在大数据的情况下,也许只有更复杂的模型或者表达能力强的模型,才能充分发掘海量数据中蕴含的有价值的信息。更重要的是,深度学习可以自动学习特征,不必像以前那样请专家手动构造特征,极大地促进了智能自动化。

深度学习(所谓的 "深度与广度)来源于大数据(所谓 "广度和深度),它为深度思考提供了大脑,而3D打印(所谓的 "力量与智慧)赋予智能数字化一个强健的体魄。这三者一起引发了 "大数据深度模型3D打印 "。