深度学习相关知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络的定义
神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,对原始输入进行标记或聚类。神经网络所能识别的模式是包含在向量中的数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。神经网络帮助我们进行聚类和分类。可以将其理解为建立在你所存储和管理的数据之上的一个聚类与分类层。对于未标记的数据,神经网络可以按照输入样例的相似之处将数据分组;若能用已标记的数据集定型,神经网络就可以对数据进行系统分类。(更准确地说,神经网络提取特征,再输入其他算法进行聚类和分类;因此可以将深度神经网络视为更大的机器学习应用系统的一部分,这个系统中还包括强化学习、分类和回归分析的算法。)
神经网络的要素
深度学习系统指一系列由多个层堆叠组成的特定神经网络。每一层则由节点构成。运算在节点中进行,节点的运作模式与人类的神经元大致相似,遇到足够的刺激信息时就会激活并释放信号。节点将输入数据与一组系数(或称权重)结合,通过放大或抑制输入来指定其在算法学习任务中的重要性。输入数据与权重的乘积之和将进入节点的激活函数,判定信号是否继续在网络中传递,以及传递的距离,从而决定信号如何影响网络的最终结果,例如分类动
作。
节点层是一行类似神经元的开关,在输入数据通过网络时开启或关闭。从最初接收数据的第一个输入层开始,每一层的输出同时也是下一层的输入。
我们将输入特征与可调整的权重匹配,由此指定这些特征的重要性,即它们对网络的输入分
类和聚类方式有多大程度的影响。
深度神经网络的重要概念
顾名思义,深度学习网络与更常见的单一隐藏层神经网络的区别在于深度,即数据在模式识别的多步流程中所经过的节点层数。
传统机器学习系统主要使用由一个输入层和一个输出层组成的浅层网络,至多在两层之间添加一个隐藏层。三层以上(包括输入和输出层在内)的系统就可以称为“深度”学习。所以,深度是一个有严格定义的术语,表示一个以上的隐藏层。在深度学习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂,因为每一层会整合并重组前一层的特征。
这被称为特征层次结构,复杂度与抽象度逐层递增。这种结构让深度学习网络能处理大规模高维度数据集,进行数十亿个参数的非线性函数运算。
最重要的是,深度学习网络可以发现未标记、非结构化数据中的潜在结构,而现实世界中的数据绝大多数都属于这一类型。非结构化数据的另一名称是原始媒体,即图片、文本、音视频文件等。因此,深度神经网络最擅长解决的一类问题就是对现实中各类未标记的原始媒体进行处理和聚类,在未经人工整理成关系数据库的数据中,甚至是尚未命名的数据中识别出相似点和异常情况。
例如,深度学习网络可以处理一百万张图片,根据其相似之处进行聚类:一个角落是猫的图片,一个角落是破冰船的图片,还有一个角落都是你祖母的照片。这就是所谓智能相册的基础。
同样的原理还可以应用于其他数据类型:深度学习可以对电子邮件或新闻报道等原始文本进行聚类。通篇都是愤怒投诉的邮件可以聚集到向量空间的一个角落,而客户的满意评价或者垃圾邮件则可以聚集到别的角落。这就是各类信息过滤器的基础,也可以用于客户关系管理(CRM)。这对于语音消息同样适用。如果使用时间序列,数据可以按正常/健康行为或异常/危险行为进行聚类。由智能手机生成的时间序列数据可以用于洞悉用户的健康状况和生活习惯;而由汽车零部件产生的时间序列数据则可以用来预防严重故障。
与多数传统的机器学习算法不同,深度学习网络可以进行自动特征提取,而无需人类干预。由于特征提取是需要许多数据科学家团队多年时间才能完成的任务,深度学习可以用于缓解专家人数不足造成的瓶颈。较小的数据科学家团队原本难以实现规模化,而深度学习可以增强他们的力量。
用未标记数据定型时,深度神经网络的每一节点层会自动学习识别特征,方法是反复重构输入的样本,让网络猜测结果与输入数据自身几率分布之间的差异最小化。例如,受限玻尔兹曼机就以这种方式进行所谓的重构。
深度神经网络通过这一过程学习识别具体相关特征和理想结果之间的关联-它们在特征信号与特征所代表的含义之间建立联系,可以是完全重构,也可以利用已标记的数据。
深度学习网络最终有一个输出层:一个逻辑或softmax分类器,用于指定某一种特定结果或
标签的可能性。我们称之为预测,但这是广义上的预测。比方说,对一个深度学习网络输入图像形式的原始数据,网络可能会判定输入数据代表一个人的可能性是90%。
多元线性回归分析
虽然人工神经网络这个名字来源于生物学,但其实质无非是数学运算和程序代码,就像其他机器学习算法一样。事实上,只要理解线性回归这一统计学中的基本方法,就能理解神经网络的运作原理。线性回归的最简表示方式是:
其中Y_hat是估测的输出,X是输入,b是斜率,a是一条直线在二维图像平面纵轴上的截距。(用更具体的例子说明:X可以是辐射照射量,Y可以是癌症风险;X可以是每天做俯卧撑的次数,Y是你能卧推的总重量;X可以是肥料的使用量,Y可以是农作物的大小。)可以想象,每当X增加一个单位时,不论在X轴上的距离有多远,应变量Y都会按比例增加。两个变量同步上下移动的简单关系是起点。
下一步是想象多元线性回归,它有多个输入变量,一个输出变量。多元线性回归通常表示为以下形式:
(借用前文农作物的例子,可以在肥料这一变量之外增加日照、降水量,所有三个变量都会影响Y_hat。)
这种形式的多元线性回归在神经网络的每个节点发生。对于单个层内的每一节点,上一层内每个节点的输入都与所有其他节点的输入重新组合。也就是说,输入按照各自的系数以不同比例混合,而系数在进入下一层的每个节点时会有所改变。网络在减少误差的过程中用这种方式测试何种输入的组合具有意义。
节点输入在相加得到Y_hat之前,还会经过一个非线性函数。其原因在于:如果每个节点都只进行多元线性回归运算,Y_hat将随X的增加而无限增大,这并不符合我们的目的。
每个节点所要实现的功能相当于一个开关(就像神经元一样……),其开关状态取决于是否应当让输入信号通过并对网络的最终判定结果产生影响。
每个开关也就是一个分类问题。对于输入的信号,节点应当将其归为足够还是不够,开还是关?二元判定可以用1和0表示,使用逻辑回归这种非线性函数可以挤压输入,将其转换至0到1的区间内。
每个节点的非线性变换通常使用与逻辑回归相似的S型函数。这类函数被称为sigmoid(希腊字母“S”的读音)、tanh、hard tanh等,用于调整每个节点的输出。每个节点的输出均被挤压至0到1之间的s形空间内,随后作为输入传递至前馈神经网络的下一个层,如此不断推进,直至网络进行判定的最终层