1.概述
1.1引子
人工智能(Artificial Intelligence)的定义:用机器去实现所有目前必须借助人类智慧才能实现的任务。其具体研究,开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统。
从不同的角度衍生出多种方法论:
仿生角度:模拟自然生物信息处理的过程(神经网络)
符号学角度:用统计概率、数理逻辑、博弈搜索等实证(机器学习)
行为学角度:以控制论实现机器自我进化(自动控制、强化学习)
现阶段出现了从“机器学习”到“神经网络”,再到“深度学习”的趋势。
1.2机器学习
机器学习的主要目标就是为了:预测未知、理解系统(对认识的事物进行分类)。
举个例子来说:预测未知就是根据先前获得的经验,对未来的天气进行预测;而理解系统就是帮助机器加深对事物的认知,并形成评级,从人大脑的认识角度来说,对人身高的评级往往分为5-7类,很高-高-较高-中等-较矮-矮-特矮。
但是机器学习也因为其作用方式存在着诸多的弊端:
- 由于对经验的需求,在开发的过程中需要专家的参与,对于普通的参与者来说方法较复杂;
- 无法对分类划定明确的界限,人对事物特征的认识的评价标准不同,分类划定的界限不同;
- 经机器学习自动分类之后,往往存在着诸多非结构化数据(语义不清楚、稀疏)
这些问题直接导致机器学习的方法收效甚微。
1.3神经网络与深度学习
人工神经网络或简称神经网络(NN),是从微观结构与功能上模拟人脑神经系统而建立的一类模型,是模拟人的智能的一条途径。
在数据技术、算法引擎、计算平台三大技术的基础上,人工智能,神经网络与深度学习成为第三次崛起的核心技术。
接下来也将进一步解释神经网络与深度学习实现的具体过程。
2.神经元与线性分类
2.1创始
神经网络的研究过程就是从微观结构与功能模拟人脑神经的过程,而人脑神经最基本的计算单元就是神经元。接下来我们将一起来认识神经元的建模过程。
2.1.1 NN数学模型
人类的神经系统中大约有860亿个神经元,它们被大约 个突触(synapses)连接起来。如下图所示,每个神经元都从它的树突获得输入信号,然后沿着它唯一的轴突(axon)产生输出信号,轴突在末端会逐渐分枝,通过突触和其他神经元的树突相连。
1943年,McCulloch和W.Pitts,提出单神经元数学模型。在神经元的计算模型中,沿着轴突传播的信号将基于突触的强度,与其他神经元的树突进行乘法交互。其观点是,突触的强度(也就是权重),是可学习的且可以控制一个神经元与另一个神经元的影响强度(还可以控制影响方向:使其兴奋(正权重)或使其抑制(负权重))。在基本模型中,树突将信号传递到细胞体,信号在细胞体中相加。如下图所示如果最终之和高于某个阈值,神经元将会被激活,向其轴突输出一个峰值信号,因此我们将神经元的激活建模为激活函数。激活函数常常选择使用sigmoid函数,该函数输入求和后的信号强度,随后将输入值压缩到0-1之间。最终建立的数学模型如下所示:
2.1.2 Hebb规则
When two joining cells fire simultaneously,the connection between them strengthens(当两个连接细胞同时放电时,它们之间的联系就会加强)。
连接权值的调整量与输入与输出的乘积成正比,具体表达式如下:
2.2探索
在神经元生物研究的基础上,寻找是否有数学模型在满足神经元运作规则的基础上,能够有效的完成拟合或者分类的工作。
2.2.1线性回归
根据我们所获得的样本点,假设输出为输入变量的线性组合,如下图所示
根据自己的需求,确定代价函数,如下图所示:
线性回归求解,如下图所示:
2.2.2线性二分类问题
假设面对这样一个分类问题:
分类器的输入为特征向量,输出为0和1,或属于某类的概率,即0-1之间的数。
(1) 线性分类
但是如果代价函数变成了非线性,无法对其求偏导,求得参数值呢?那么就可以用到梯度下降法。
(2) 梯度下降法
在最优的方向上下降最优的长度,通过次次迭代,使得系数不断向目标值逼近,规避掉了代价函数为非线性的情况。
2.3 模仿(感知机原理)
2.3.1 感知机模型
由Rosenblatt提出,是神经网络和支 持向量机的基础。 感知机解决线性分类问题。利用样本点到平面的距离公式 ,设置
因此有
经过对参数w的迭代优化,最终确定超平面的位置,实现线性分类。
2.3.2 问题
但是,上述线性分类方法也存在着不足,不是所有的分类问题都可以通过线性分类解决,如下图所示,迭代的超平面会不断在样本点之间振荡,找不到能够实现交叉散点间分类的超平面。
为解决这样的分类问题,我们可以将其简化为如下模型,命名为线性不可分问题。
3.多层感知机
要解决上述问题,可以使用多层感知机的方法,在输入层和输出层之间加入隐单元,可解决异或问题,若隐层节点(单元)可任意设置,用三层阈值节点的 网络,可以实现任意的二值逻辑函数。若隐层节点(单元)可任意设置,用三层S型非线性特 性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧 集上的平方可积函数。
例如:
4.BP算法
多层前馈网络的反向传播 (BP)学习算法,简称BP算法,是有导 师的学习,它是梯度下降法在多层前馈网中的应用。
- 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。
- 反向传播是将误差(样本输出与网络输出之 差)按原联接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。
计算过程
- 设置初始权值系数w0为较小的随机非零值;
- 给定输入输出样本对,计算网络输出,完成前向传播;
- 计算目标函数J,如
,训练成功,退出;否则转入4;
- 反向传播计算由输出层,按梯度下降法将误差反向传播,逐层调整权值。
误差反传输出层:
在计算反传误差的过程中,链式求导规则得到了充分的应用,对应梯度下降法中公式:
将其合并后可得:
其规则与Hebb规则极其相似。
总结:
5.性能优化
5.1欠拟合与过拟合
欠拟合:误差一直比较大
过拟合:在训练数据集上误差小而在测试数据集上误差大
如上图所示,其中较难解决的为过拟合,在开始的时候能够较好的跟踪,但是其误差逐渐增大。
解决方法:
- 权重衰减:使过去样本点所占的权重随着样本点的增加逐渐衰减;
- 暂退(Dropout):在整个训练过程的每一次迭代中,标准暂退法包括在计算下 一层之前将当前层中的一些节点置零。
5.2病态曲率
对于某些代价函数来说,其曲率会在某些时候发生剧烈变化,形成沟壑,而采用最速下降法会导致参数在沟壑中不断徘徊,导致参数发生在某个范围内波动的情况,如下图所示。
解决办法:动量法
动量方法相当于把纸团换成了铁球;不容易受到外力的干扰, 轨迹更加稳定;同时因为在鞍点处因为惯性的作用,更有可能 离开平地。