第9章 神经网络_第1页
第9章 神经网络_第2页
第9章 神经网络_第3页
第9章 神经网络_第4页
第9章 神经网络_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

2020 4 6 数据仓库与数据挖掘 1 第9章神经网络 2 第9章神经网络 9 1引例9 2人工神经网络9 2 2神经元模型9 3BP算法9 4工具包应用 3 神经网络的研究内容相当广泛 反映了多学科交叉技术领域的特点 它的研究已经获得许多方面的进展和成果 提出了大量的网络模型 发现了许多学习算法 对神经网络的系统理论进行了成功的探讨和分析 9 1引例本节来看一个关于数据分析的例子 假设一个未知的系统有三个输入和一个输出 通过实验 得到了8条数据 如表9 1的前8行所示 表9 1的第9行数据只有输入 没有输出 这行数据不是通过实验获得 而是事先假设了一组输人 怎样才能推断这一行数据的输入对应的输出数据呢 可以从前8行分析和发现规律 然后进行预测 4 通过观察 从表9 1中很难总结出数据输入和输出之间的关系 对于这样的问题 可以用多元线性回归分析等技术手段试图发现其中的规律 也就是在式 9 1 中确定4个系数 y C0 C1 x1 C2 x2 C3 x3 9 1 通过统计分析工具 可以确定式 9 1 中的4个系数 从而确定输入和输出的近似关系 如式 9 2 所示y 246 33 1 52x1 58 49x2 8 2x3 9 2 把表9 1的最后一行输入数据代人式 9 2 可以计算得到对应的输出值是286 64 这个过程实际上与数据挖掘的工作过程相似 先从数据中发现规律 然后用这个规律进行预测 上面利用多元线性回归手段预测的输出结果是否与系统实际的输出结果一致 其实 表9 1中的数据是根据式 9 3 得到的 5 根据式 9 3 可以计算出系统最后一行实际的输出值是55 24 由此可以看出 利用多元统计的方式得到的预测结果与系统的实际输出之间的差异还是比较大的 还可以用多元非线性回归手段发现更精确的近似模型 但是 多元线性回归要事先给出问题的阶 也就是自变量的幂次 这需要操作人员的经验 并且 很多情况下会出现历史数据过度拟合 但预测效果不理想的情况 除了多元线性回归和多元非线性回归技术手段外 还有一种比较有效的技术手段 神经网络方法 事实上 也可以不知道输人和输出之间像式 9 2 那样明确的解析关系 而是只知道什么样的输人对应着什么样的输出 也就是说 在不知道输人输出之间的解析关系时 同样可以进行预测 神经网络是实现非解析关系预测的主要手段之一 它把系统看作一个黑匣子 不关心系统内部的数据转换 只关心系统的输入数据和输出数据 相反地 多元回归分析把系统看作一个白匣子 试图找到其中的数据解析变换 本章后面的内容将重点介绍神经网络的原理和使用方式 6 9 2人工神经网络9 2 1人工神经网络概述神经网络自1943年发展到现在 主要经历了如下三个阶段 1 启蒙阶段 这是神经网络理论研究的奠基阶段 1943年 神经生物学家MeCulloch和青年数学家Pitts合作 提出了第一个人工神经元模型 并在此基础上抽象出神经元的数理模型 开创了人工神经网络的研究 2 低潮时期 人工智能的创始人之一Minsky和Papert出版了 Perception 指出简单的线性感知器的功能是有限的 它无法解决线性不可分的两类样本的分类问题 这一论断给当时人工神经元网络的研究带来沉重打击 由此出现了神经网络发展史上长达10年的低潮时期 3 复兴时期 这是神经网络理论研究的主要发展时期 1982年 美国国家科学院的刊物上发表了著名的Hopfield模型的理论 这个模型不仅对人工神经网络信息存储和提取功能进行了非线性数学概括 提出了动力方程和学习方程 还对网络算法提供了重要公式和参数 使人工神经网络的构造和学习有了理论指导 在Hopfield模型的影响下 大量学者又激发起研究神经网络的热情 积极投身于这一学术领域中 神经网络理论研究很快便迎来了第二次高潮 7 神经网络可以分为4种类型 前向型 反馈型 随机型和自组织竞争型 在神经网络的结构确定后 关键的问题是设计一个学习速度快 收敛性好的学习算法 前向型神经网络是数据挖掘中广泛应用的一种网络 其原理或算法也是其他一些网络的基础 本章将重点介绍这种类型网络中的BP 反向传播 模型 此外 径向基函数神经网络也是一种前向型神经网络 Hopfield神经网络是反馈型网络的代表 模拟退火 SimulatedAnnealing SA 算法是针对优化计算过程的问题提出的具有随机性质的算法 自组织竞争型神经网络的特点是能识别环境的特征并自动聚类 本章不对后面这几种类型的神经网络进行详述 8 9 2 2神经元模型神经元是神经网络的基本计算单元 又称为处理单元或结点 一般是多个输入 一个输出的非线性单元 可以有一个内部反馈和阈值 图9 1是一个完整的神经元的结构 其中 x1 x2 xn是输入 y是输出 为 内部状态的反馈信息和 为阈值 F是表示神经元活动的特性函数 n个输入x1 x2 xn与这个神经元的作用强度为 1 2 n 则这个神经元的综合输人为 通常神经元所接受的输人信号的加权总和 尚不能反映神经元输人和输出之间的真实关系 为此 需要对综合输入进行必要的调整 在对综合输人进行适当的调整后 还需要进一步用一个特性函数来刻画这种关系 产生一新的输出 9 4 9 5 9 根据输入输出特性的不同 可用不同的特性函数表示 简单的特性函数如下 1 分段线性特性函数 其中k为常数 2 阈值特性函数 这是最早提出的一种离散型的二值函数 3 S型逻辑特性函数 这类特性函数常用来表示输人和输出的S型曲线关系 反映神经元的 压缩 和 饱和 特性 即把神经元定义为具有非线性增益特性的电子系统 9 6 9 7 9 8 9 9 10 9 2 3网络结构在分层网络中 神经元以层的形式进行组织 一般的前馈网络包括一个输入层和一个输出层 若干隐单元 如果没有隐单元 称为单层前馈网络 指这个网络是严格的无圈的或前馈的 单层指的是神经元网络只有一输出层 如图9 2所示 多层前馈神经网络如图9 3所示 指网络有一层或多层隐藏结点层 相应的结点称为隐藏神经元 隐藏神经元的功能是以某种有用方式介入外部输入和网络输出之中 提取高阶统计特性 隐藏神经元可以有多层 通常使用一层就可以达到高质量的非线性逼近的效果 11 前馈网络没有反馈连接 没有动态记忆 本质上是一个非线性静态映射网络 因此在表示一个动态系统时需采用时延的方法 通过将多个过去值同时输入给网络而将学习系统在时域中的动态行为转换成静态映射问题 用于预测的神经网络的性质与网络中单个神经元的特性 网络的拓扑结构和网络参数有很大的关系 网络结构包括神经元数目 隐含层数目与连接方式等 对一个给定结构来说 训练过程就是调整参数以获得近似基本联系 误差定义为均方根误差 网络的训练可视为一个优化问题的寻优过程 反馈神经网络和前馈神经网络的区别在于它至少有一个反馈环 可以是自反馈环或者是非自反馈环 其中隐藏神经元可以是0个或多个 反馈神经网络的结构如图9 4所示 反馈神经网络比较复杂 难以训练并发现其稳定状态 实际应用中大多使用前馈网络 前馈网络的训练算法比较成熟 其中最著名的是BP算法 12 9 3BP算法多层前馈神经网络需要解决的问题是学习算法 也就是说 给定一组输入和对应的输出 怎样确定各个神经元的参数 使得这个网络能够最大程度地描述输入和输出之间的关系 以Rlamelhart和McClelland为首的科研小组提出的误差后向传播 errorBackPropagation BP 算法 为多层前馈神经网络的研究奠定了基础 多层前馈网络能逼近任意非线性曲线 在科学技术领域中有广泛的应用 总之 后向传播就是神经网络的一种学习算法 它通过训练大量的历史数据确定网络中的参数 从而确定整个网络的结构 为使用神经网络进行数据预测奠定基础 下面用一个简单的例子说明BP算法的工作原理 9 3 1网络结构和数据示例下面先来观察图9 5所示的一个简单单层前馈神经网络的例子 图9 5中 两个函数的定义如下 13 假设从待研究的系统中只获取了一条训练数据 x0 1 x0 2 yl 1 y1 2 0 3 1 5 1 0 O 7 这条数据中 前两个数据是系统的实际输入 后两个数据是实际输出 对两个实际的输入数据0 3和1 5 如果固定参数a和b 通过式 9 10 和式 9 11 同样可以得到两条计算出的输出数据 实际的输出数据和计算得到的输出数据之间有一个误差 这个误差反映了该神经网络对实际系统的逼近能力 当误差大时 网络逼近系统的能力弱 这意味着参数a和b选取较差 当误差小时 网络逼近系统的能力强 这意味着参数a和b的选取较好 取a b的初始值为a b O 则误差为 E y1 1 f1 1 2 y1 2 f1 2 2 y1 1 x1 1 2 y1 2 x1 2 2 9一12 通过式 9 10 和式 9 11 计算x1 1和y1 1并代人式 9 12 计算可得初始误差为0 41 下面的工作就是将误差O 41尽可能地缩小 事实上 式 9 12 中的E只是参数a和b的函数 其他量都是常数 因此 可以分别求得E对参数a和b的偏导数 14 取a 0 165 b 0 036 注意 我们取了两个偏导数相反数的1 10作为参数的变化 则误差变为 0 32 2 0 345 2 0 221 可见通过训练使得误差值减小了 上面的例子中 通过利用高等数学中偏导数的性质 让参数沿着偏导数相反的方向变化 从而使得网络输出与系统实际输出的误差逐渐减小 这种做法只是针对结点数量固定 层数固定 变换函数固定 参数可变 的情况 对一个普通的多层前馈网络该怎样训练 15 9 3 2有序导数当自变量之间又有函数依赖关系时 普通的偏导数并不能真正反映因变量变化和自变量变化之间的关系 这时 需要使用有序导数 先看一个例子 对函数 因变量z对自变量x的偏导数为 根据链式法则 z的变化与x的变化之间的关系为 式 9 17 示例了有序导数的计算方法 这里不做形式化的定义 现在的问题是 有序导数是否能够真正反映因变量变化和自变量变化之间的真实关系呢 为此 给出下面的例子 9 15 9 16 9 17 9 18 16 先分别计算z对x和y的偏导数 又 用链式法则求得有序导数为 可以用另外的方式计算z的变化和x的变化之间的关系 以验证式 9 22 是否正确 把式 9一18 中的第一式代入第二式 可得 于是可以直接求z对x的导数 式 9 22 和式 9 24 的计算结果一致 说明有序导数的链式法则计算是合理的 9 21 9 22 9 23 9 24 17 9 3 3计算误差信号对参数的有序导数有序导数可以用来解决多层前馈神经网络的训练问题 首先给出一个图9 6所示的多层前馈神经网络 对于前馈神经网络 定义一条训练数据的误差信号为 其中 NL表示第L层上结点的总数 如果是多条训练数据 则误差信号为每一条数据误差信号的和 定义误差信号对每层输出的偏导数为 9 26 9 25 18 其实误差信号对于最后一层的有序导数也就是普通的偏导数 这是因为误差信号与最后一层各个输出之间没有中间变量 信号误差对于倒数第二层输出的有序导数为 一般地 信号误差对于任意一层输出的有序导数为 9 29 信号误差对于最后一层输出的有序导数为 9 27 9 28 19 式 9 27 式 9 29 给出了误差信号对于某层中的一个输出的有序导数 而我们需要的是误差信号对于某层变换函数中参数的有序导数 如果这个导数被一个结点独有 也就是如果这个参数在整个网络中只出现一次 那么误差信号对这个参数的有序导数为 如果多个结点共享一个参数 则信号误差对于这个参数的有序导数为 至此 对于给定的一组训练数据 可以计算信号误差对于任意参数的有序导数 即某个参数的变化会在多大程度上影响信号误差 如何改变参数 才能使得信号误差下降 从而使得神经网络变得更精确呢 为此 需要使用梯度下降的方式 9 30 9 31 20 9 3 4梯度下降得到了误差信号对参数的有序导数后 就可以让参数向着有序导数的负方向变化 使得误差信号下降 按照梯度最速下降法 参数a的更新公式为 其中 为学习速率 可以用下式计算 对任意的参数a增加式 9 32 计算所得的 a 就可以使误差信号下降 这个步骤可以一直进行 直到信号误差不能继续下降为止 式 9 33 中的 不能过大 如果 取值过大 那么按照式 9 32 的方式移动解的位置得到的误差可能会增加 而不是减小 这是因为 当步长较大时 原解和新解所处位置的有序导数值可能差别较大 但如果 取值过小 那么解的移动会过慢 影响了学习的效率 可以凭经验设置 的值 也可以用小范围内的二分法确定一个合适的 详细方式请读者查阅有关文献 9 32 9 33 21 9 3 5BP算法描述本节前面部分内容介绍了BP算法的数学基础和一个具体的运算示例 综合前面的内容 BP算法的步骤描述如图9 7所示 P214算法 22 9 4工具包应用 第1步 新建数据库第2步 新建数据表第3步 安装补丁第4步 建立数据连接第5步 选择挖掘结构第6步 进行预测 23 第1步 新建数据库 在MSSQLServer2005中新建一个数据库NeuralDatabase 24 第2步 新建数据表 在数据库NeuralData

温馨提示

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

评论

0/150

提交评论