人工神经网络-SVM-深度学习简介.ppt_第1页
人工神经网络-SVM-深度学习简介.ppt_第2页
人工神经网络-SVM-深度学习简介.ppt_第3页
人工神经网络-SVM-深度学习简介.ppt_第4页
人工神经网络-SVM-深度学习简介.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

神经网络及SVM简介 以冯 诺依曼型计算机为中心的信息处理技术的高速发展 使得计算机在当今的信息化社会中起着十分重要的作用 但是 当用它来解决某些人工智能问题时却遇到了很大的困难 例如 一个人可以很容易地识别他人的脸孔 但计算机则很难做到这一点 大脑是由生物神经元构成的巨型网络 它在本质上不同于计算机 是一种大规模的并行处理系统 它具有学习 联想记忆 综合等能力 并有巧妙的信息处理方法 人工神经网络来源于对人脑实际神经网络的模拟 一 神经网络发展历史 背景知识 人脑和CPU 神经细胞利用电 化学过程交换信号 输入信号来自另一些神经细胞 这些神经细胞的轴突末梢 也就是终端 和本神经细胞的树突相遇形成突触 synapse 信号就从树突上的突触进入本细胞 信号在大脑中实际怎样传输是一个相当复杂的过程 但就我们而言 重要的是把它看成和现代的计算机一样 利用一系列的0和1来进行操作 就是说 大脑的神经细胞也只有两种状态 兴奋 fire 和不兴奋 即抑制 发射信号的强度不变 变化的仅仅是频率 神经细胞利用一种我们还不知道的方法 把所有从树突上突触进来的信号进行相加 如果全部信号的总和超过某个阀值 就会激发神经细胞进入兴奋 fire 状态 这时就会有一个电信号通过轴突发送出去给其他神经细胞 如果信号总和没有达到阀值 神经细胞就不会兴奋起来 人脑和CPU 人脑和CPU CPU只具备一个功能就是二进制加法运算 人脑的特点 对损伤有冗余性 tolerance 能实现无监督的学习 处理信息的效率极高 善于归纳推广 CPUi73 0Ghz 4个核 人脑100hz 10G个核 人工神经网络 一个人工神经网络 Artificialneuralnetwork 简称ANN 就是要在当代数字计算机现有规模的约束下 来模拟这种大量的并行性 并在实现这一工作时 使它能显示许多和生物学大脑相类似的特性 人工神经网络 ArtificialNeuralNetwroks 简称ANN 是对人类大脑系统的一种仿真 简单地讲 它是一个数学模型 可以用电子线路来实现 也可以用计算机程序来模拟 是人工智能研究的一种方法 实际上它是由大量的 功能比较简单的形式神经元互相连接而构成的复杂网络系统 用它可以模拟大脑的许多基本功能和简单的思维方式 尽管它还不是大脑的完美元缺的模型 但它可以通过学习来获取外部的知识并存贮在网络内 可以解决计算机不易处理的难题 特别是语音和图像的识别 理解 知识的处理 组合优化计算和智能控制等一系列本质上是非计算的问题 2 什么是人工神经网络 1943年 美国心理学家W McCulloch和数学家W Pitts在提出了一个简单的神经元模型 即MP模型 1958年 F Rosenblatt等研制出了感知机 Perceptron 3 几个发展阶段 第一次热潮 40 60年代未 1982年 美国物理学家J J Hopfield提出Hopfield模型 它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程 这是符号逻辑处理方法所不具备的性质 1987年首届国际ANN大会在圣地亚哥召开 国际ANN联合会成立 创办了多种ANN国际刊物 1990年12月 北京召开首届学术会议 低潮 70 80年代初 第二次热潮 第三次热潮GPU大数据新方法深度学习理论 学习的类型 人工神经网络 人工神经元模型x1 xn表示与该神经元相连接的所有神经元的输入 出 w1 wn表示与相连接神经元的突触强度 连接权 表示神经元的 电压 阈值 f 表示激励函数 单调上升函数 且取有限值神经元电位值 神经元的输出值 y f s 人工神经网络 激励函数的基本作用控制输入对输出的激活 对输入 输出进行函数转换 将可能无限域的输入变换成指定的有限范围内的输出 激励函数类型阈值函数线性函数非线性函数Sigmoid函数 人工神经网络 Sigmoid函数 就是把神经细胞原有的阶跃式输出曲线钝化为一光滑曲线 S型函数具有非线性放大系数功能 可以把输入从负无穷大到正无穷大的信号 变换成 1到l之间输出对较大的输入信号 放大系数较小 而对较小的输入信号 放大系数则较大采用S型激活函数可以处理和逼近非线性输入 输出关系 BP神经网络 BP神经网络计算 BP神经网络 Rumelhart McClelland于1985年提出了BP网络的误差反向后传BP BackPropagation 学习算法BP神经网络是一种按误差逆传播算法训练的多层前馈网络 是目前应用最广泛的神经网络模型之一 它的学习规则是使用最速下降法 通过反向传播来不断调整网络的权值和阈值 使网络的误差平方和最小 J McClelland DavidRumelhart 学习规则 BP算法属于 算法 是一种监督式的学习算法主要思想对于q个输入学习样本 P1 P2 Pq 已知与其对应的输出样本为 T1 T2 Tq使网络输出层的误差平方和达到最小用网络的实际输出A1 A2 Aq 与目标矢量T1 T2 Tq之间的误差修改其权值 使Am与期望的Tm m l q 尽可能接近 2020 1 1 18 学习规则 BP算法是由两部分组成 信息的正向传递与误差的反向传播正向传播过程中 输入信息从输入层经隐含层逐层计算传向输出层 每一层神经元的状态只影响下一层神经元的状态如果在输出层未得到期望的输出 则计算输出层的误差变化值 然后转向反向传播 通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标 2020 1 1 19 一般认为 增加隐层数可以降低网络误差 也有文献认为不一定能有效降低 提高精度 但也使网络复杂化 从而增加了网络的训练时间和出现 过拟合 现象 Hornik等早已证明 若输入层和输出层采用线性转换函数 隐层采用Sigmoid转换函数 则含一个隐层的MLP网络能够以任意精度逼近任何有理函数 显然 这是一个存在性结论 在设计BP网络时可参考这一点 应优先考虑3层BP网络 即有1个隐层 一般地 靠增加隐层节点数来获得较低的误差 其训练效果要比增加隐层数更容易实现 隐层数 多少隐层数才合适 隐层节点数 在BP网络中 隐层节点数的选择非常重要 它不仅对建立的神经网络模型的性能影响很大 而且是训练时出现 过拟合 的直接原因 但是目前理论上还没有一种科学的和普遍的确定方法 目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况 事实上 各种计算公式得到的隐层节点数有时相差几倍甚至上百倍 确定隐层节点数的最基本原则是 在满足精度要求的前提下取尽可能紧凑的结构 即取尽可能少的隐层节点数 研究表明 隐层节点数不仅与输入 输出层的节点数有关 更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关 应用实例 net newff A B C trainfun Matlab命令 A是一个n 2的矩阵 第i行元素为输入信号xi的最小值和最大值 参数说明 B为一k维行向量 其元素为各隐层节点数 trainfun为学习规则采用的训练函数 常见训练函数如下表 C为一k维字符串行向量 每一分量为对应层神经元的激励函数 2 常见训练函数 MATLAB中激励函数为 其字符串分别为 logsig tansig purelin 3 激励函数 除了需要输入A B C trainfun 外 还有些默认的参数可修改 如下表 4 可修改参数 注 不同版本Matlab的可修改参数列表可能不同 net tr Y1 E train net X Y 5 BP网络的训练与泛化 网络训练 训练跟踪信息 训练后网络 网络实际输出 误差矩阵 网络训练函数 未经训练网络 网络实际输入 网络应有输出 X为n M矩阵 为输入数据矩阵 M为样本的组数 Y为m M矩阵 为输出数据矩阵 训练结束后 对新的输入点数据X2 调用sim函数进行泛化 得出这些输入点处的输出矩阵Y2 数据泛化 Y2 sim net X2 用经过训练的网络对于不是样本集的输入 计算出相应的输出 什么是数据泛化 例1由下面的语句生成一组数据x和y 用神经网络进行数据拟合x 0 1 10 y 0 12 exp 0 213 x 0 54 exp 0 17 x sin 1 23 x 可知 x y 是曲线上的点 x 0 1 10 y 0 12 exp 0 213 x 0 54 exp 0 17 x sin 1 23 x net newff 0 10 5 1 tansig tansig net trainParam epochs 1000 net train net x y x0 0 05 1 10 figure 1 y1 sim net x0 plot x y o x0 y1 r 实例 蠓虫分类问题的神经网络方法 1989年MCM竞赛题目 生物学家试图对两种蠓虫 Af与Apf 进行鉴别 依据的资料是触角和翅膀的长度 已经测得9只Af和6只Apf的数据如下 9只Af触角长 1 241 361 381 381 381 401 481 541 56翅膀长 1 721 741 641 821 901 701 821 822 08 6只Apf触角长 1 141 181 201 261 281 30翅膀长 1 781 961 862 002 001 96 问题 1 如何凭借原始资料 15对数据 被称之为学习样本 制定一种方法 正确区分两类蠓虫 2 依据确立的方法 对以下三个样本 1 24 1 80 1 28 1 84 1 40 2 04 加以识别 解法一 建立两层前向神经网络如下 隐层节点可适量选取 没有具体标准 X 为输入矩阵 x1对应于触角长 x2对应于翅膀长 Y 为输出矩阵规定Af对应的应有输出为 Apf对应的应有输出为 以上神经网络模型的MATLAB程序如下 x 1 241 361 381 381 381 401 481 541 561 141 181 201 261 281 301 721 741 641 821 901 701 821 822 081 781 961 862 002 001 96 原始数据x x 1 1 数据标准化y 000000000111111 111111111000000 应有的输出net newff 0 1 01 5 2 tansig tansig 建立两层前向神经网络 net trainParam goal 0 0000001 设定训练误差net trainParam epochs 2000 设定最大训练步数net train net x y 训练网络y1 sim net x 输出数据yy sim net 1 241 281 40 1 801 842 04 数据泛化 underfitting overfitting goodfit 神经网络的问题 1需要大样本2隐层的个数无公式3整个计算过程过于模糊 很容易陷入局部最优导致欠拟合或者过拟合 SVM的理论基础 传统的统计模式识别方法只有在样本趋向无穷大时 其性能才有理论的保证 统计学习理论 STL 研究有限样本情况下的机器学习问题 SVM的理论基础就是统计学习理论 传统的统计模式识别方法在进行机器学习时 强调经验风险最小化 而单纯的经验风险最小化会产生 过学习问题 其推广能力较差 推广能力是指 将学习机器 即预测函数 或称学习函数 学习模型 对未来输出进行正确预测的能力 SVM 根据统计学习理论 学习机器的实际风险由经验风险值和置信范围值两部分组成 而基于经验风险最小化准则的学习方法只强调了训练样本的经验风险最小误差 没有最小化置信范围值 因此其推广能力较差 Vapnik提出的支持向量机 SupportVectorMachine SVM 以训练误差作为优化问题的约束条件 以置信范围值最小化作为优化目标 即SVM是一种基于结构风险最小化准则的学习方法 其推广能力明显优于一些传统的学习方法 形成时期在1992 1995年 线性判别函数和判别面 一个线性判别函数 discriminantfunction 是指由x的各个分量的线性组合而成的函数两类情况 对于两类问题的决策规则为如果g x 0 则判定x属于C1 如果g x 0 则判定x属于C2 如果g x 0 则可以将x任意分到某一类或者拒绝判定 最优分类面 SVM是从线性可分情况下的最优分类面发展而来的 基本思想可用图2的两维情况说明 图中 方形点和圆形点代表两类样本 H为分类线 H1 H2分别为过各类中离分类线最近的样本且平行于分类线的直线 它们之间的距离叫做分类间隔 margin 所谓最优分类线就是要求分类线不但能将两类正确分开 训练错误率为0 而且使分类间隔最大 推广到高维空间 最优分类线就变为最优分类面 分类超平面示意图 最优分类超平面图 两类样本中离分类面最近的点且平行于最优分类超平面的样本点叫做支持向量 非线性变换 基本思想 选择非线性映射 X 将x映射到高维特征空间Z 在Z中构造最优超平面 SVM方法的特点 非线性映射是SVM方法的理论基础 SVM利用内积核函数代替向高维空间的非线性映射 对特征空间划分的最优超平面是SVM的目标 最大化分类边际的思想是SVM方法的核心 支持向量是SVM的训练结果 在SVM分类决策中起决定作用的是支持向量 SVM是一种有坚实理论基础的新颖的小样本学习方法 它基本上不涉及概率测度及大数定律等 因此不同于现有的统计方法 从本质上看 它避开了从归纳到演绎的传统过程 实现了高效的从训练样本到预报样本的 转导推理 transductiveinference 大大简化了通常的分类和回归等问题 SVM方法的特点 SVM的最终决策函数只由少数的支持向量所确定 计算的复杂性取决于支持向量的数目 而不是样本空间的维数 这在某种意义上避免了 维数灾难 少数支持向量决定了最终结果 这不但可以帮助我们抓住关键样本 剔除 大量冗余样本 而且注定了该方法不但算法简单 而且具有较好的 鲁棒 性 这种 鲁棒 性主要体现在 增 删非支持向量样本对模型没有影响 支持向量样本集具有一定的鲁棒性 有些成功的应用中 SVM方法对核的选取不敏感 深度学习 浅层学习是机器学习的第一次浪潮人工神经网络 BP算法 虽被称作多层感知机 但实际是种只含有一层隐层节点的浅层模型SVM Boosting 最大熵方法 如LR LogisticRegression 带有一层隐层节点 如SVM Boosting 或没有隐层节点 如LR 的浅层模型局限性 有限样本和计算单元情况下对复杂函数的表示能力有限 针对复杂分类问题其泛化能力受限 基本概念 浅层学习与深度学习 2006年 加拿大多伦多大学教授 机器学习领域的泰斗GeoffreyHinton在 科学 上发表论文提出深度学习主要观点 1 多隐层的人工神经网络具有优异的特征学习能力 学习得到的特征对数据有更本质的刻画 从而有利于可视化或分类 2 深度神经网络在训练上的难度 可以通过 逐层初始化 layer wisepre training 来有效克服 逐层初始化可通过无监督学习实现的 基本概念 深度学习 深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征 以发现数据的分布式特征表示深度神经网络 含有多个隐层的神经网络 基本概念 1981年的诺贝尔医学奖获得者DavidHubel和TorstenWiesel发现了一种被称为 方向选择性细胞的神

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论