一.概述
1.1定义
1.人工智能:是用机器去实现所有目前必须借助人类智慧才能实现的任务。其具体研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统。
2.人工神经网络:是从微观结构与功能上模拟人脑神经系统而建立的一类模型,是模拟人的智能的一条途径。信息处理由人工神经元间的相互作用来实现,由联接权来传递,具有学习能力、自适应性、联接强度的可变性。
3.机器学习:通常解决一些人为设计和使用确定性程序很难解决的问题,是人工智能的一个重要分支,是实现智能化的关键。
1.2人工智能和深度学习应用
人工智能发展的六大关键技术:计算机视觉、机器学习、图像识别、语音识别、机器人、自然语言处理。
二.线性分类和感知机
2.1线性回归
2.1.1定义
利用数理统计中回归分析,来确定两种或两种以上变量间相 互依赖的定量关系的一种统计分析方法。
2.1.2线性回归要素
1.训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x。
2.输出数据,一般称为y。
3.拟合的函数(或者称为假设或者模型):一般写做y=h(x);如果是直线,则为y=kx+b。
4.训练数据的条目数(#training set): 一条训练数据是由一对输入数据和输出数据组成的输入,数据的维度n(特征的个数,#features)。
2.1.3求解过程
假设给定样本,构造代价函数
目标:找到超平面参数θ,使J(θ)最小,即求解
求解:令
即得到:
2.2线性二分类问题
2.2.1定义
线性分类器则透过特征的线性组合来做出分类决定,以达到 此种目的。简言之,样本通过直线(或超平面)可分
2.2.2求解思路
线性分类器输入:特征向量
输出:哪一类。如果是二分类问题,则为0和1,或者是属于某类的 概率,即0-1之间的数。
思路:构造这条二分类的“分界直线”
一边是负值,一边是正值。越属于这类,值越大(正),反 之越小(越负)
2.2.3求解过程
使用Sigmoid函数对值进行变换
给定样本 ,其中y(i)只能取0,1
构造代价(误差)函数:
其中
上述和回归方程一致,只是加了S函数,因此又称作softmax回归
目标:找到超平面参数𝛉,使𝐽 (𝛉) 最小,即求解min 𝛉 𝐽(𝛉)
求解令,但J变为非线性,采用迭代的方法,即梯度下降法
即构建一个序列,𝛉1, 𝛉2 , ⋯ 𝛉𝑘 → 𝛉 ∗
最简单的方式:𝛉𝑘+1 = 𝛉𝑘 + Δ𝛉𝑘 确定Δ𝛉𝑘,即确定了如何构建序列
令
2.3对数回归和多分类回归
2.3.1对数回归
2.3.2多分类回归
2.4神经元模型
2.4.1神经元模型
人工神经元模型: M-P模型
单神经元模型
2.4.2作用函数
1.非对称型Sigmoid函数 (Log Sigmoid)
2. 对称型Sigmoid 函数 (Tangent Sigmoid)
3.对称型阶跃函数
2.5感知机模型
感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础,解决线性分类问题。
直线方程ax+by+c=0,任一点(),到直线的距离,
如果是高维情况,分类面为超平面,则有:
感知机从输入到输出的模型如下: 其中sign为符号函数
对于样本(𝑥 𝑖 ,𝑦 𝑖 ),注意到,如果样本正确分类,则有:
因此可定义损失函数如下:
我们需要找到超平面参数𝐰∗,满足:
三.多层前馈网络与误差反传算法
3.1多层感知机
线性不可分问题:单层感知机无法进行线性分类。Minsky 1969年提出XOR问题
解决方法:使用多层感知机
• 在输入和输出层间加一或多层隐单元,构成多层感知器(多层 前馈神经网络)。
• 加一层隐节点(单元)为三层网络,可解决异或(XOR)问题
由输入得到两个隐节点、一个输出层节点的输出。
三层感知器可识别任一凸多边形或无界的凸区域。 更多层感知器网络,可识别更为复杂的图形。 多层感知器网络,有如下定理:
定理1 若隐层节点(单元)可任意设置,用三层阈值节点的网络,可以实现任意的二值逻辑函数。 定理2 若隐层节点(单元)可任意设置,用三层S型非线性特性节点的网络,可以一致逼近紧集上的连续函数或按范数逼近紧集上的平方可积函数。
3.2多层前馈网络及BP算法概述
多层感知机是一种多层前馈网络,由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅出现在相邻层之间,不出现在其他位置。如果每一个神经元都连接到上一层的所有神经元 (除输入层外),则成为全连接网络。
多层前馈网络的反向传播(BP)学习算法,简称BP算法,是有导 师的学习,它是梯度下降法在多层前馈网中的应用。
BP学习算法由正向传播和反向传播组成:
① 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。
② 反向传播是将误差(样本输出与网络输出之差)按原联接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。
四.性能优化
4.1训练常用方法
1.模型初始化
简单的考虑,把所有权值在[-1,1]区间内按均值或高斯分布进行初始化。
Xavier初始化:为了使得网络中信息更好的流动,每一层输 出的方差应该尽量相等。因此需要实现下面的均匀分布:
2.训练数据和测试数据
数据包括: 训练数据 、验证数据 、测试数据
通常三者比例为70%,15%,15%或60%,20%,20%
当数据很多时,训练和验证数据可适当减少
3.训练数据与测试数据:𝐾折交叉验证
原始训练数据被分成K个不重叠的子集。然后执行K次模型 训练和验证,每次在K−1 个子集上进行训练,并在剩余的一 个子集(在该轮中没有用于训练的子集)上进行验证。最后, 通过对K 次实验的结果取平均来估计训练和验证误差。
4.欠拟合与过拟合
欠拟合:误差一直比较大
过拟合:在训练数据集上误差小而在测试数据集上误差大
4.2动量法
1.SDG问题:病态曲率
图为损失函数轮廓。在进入以蓝色标记的山沟状区域之前随机开始。 颜色实际上表示损失函数在特定点处的值有多大,红色表示最大值, 蓝色表示最小值。我们想要达到最小值点,为此但需要我们穿过山沟 。这个区域就是所谓的病态曲率。
梯度下降沿着山沟的山脊反弹,向极小的方向移动较慢 。这是因为脊的表面在W1方向上弯曲得更陡峭。
2.动量法
动量法更新公式:
如果把原始的 SGD 想象成一个纸团在重力作用向下滚动,由于质量小受到山壁弹力的干扰大,导致来回震荡;或者在鞍点处因为质量小速度很快减为 0,导致无法离开这块平地。
动量方法相当于把纸团换成了铁球;不容易受到外力的干扰,轨迹更加稳定;同时因为在鞍点处因为惯性的作用,更有可能离开平地。
4.3自适应梯度算法
参数自适应变化:具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对应一个较小的学习率 。
具体来说,每个参数的学习率会缩放各参数反比于其历史梯度平方值总和的平方根。
AdaGrad问题
学习率是单调递减的,训练后期学习率过小会导致训练困难, 甚至提前结束。
需要设置一个全局的初始学习率。
RMSProp算法
RMSProp使用指数衰减平均以丢弃遥远的历史,使其能够快速收敛;此外,RMSProp还加入了超参数𝜌控制衰减速率,解决了决AdaGrad方法中学习率过度衰减的问题
Adam算法
Adam 在RMSProp方法的基础上更进一步:
➢ 除了加入历史梯度平方的指数衰减平均(𝑟)外,
➢ 还保留了历史梯度的指数衰减平均(𝑠),相当于动量。