当前课程知识点:数据挖掘 > 第7章 分类 > 7.5 神经网络 > 7.5 神经网络(上)
神经网络最早是由心理学家
和神经学家提出
旨在寻求开发和测试神经的计算模拟
粗略地说
神经网络是一组连接的输入
输出单元
其中每个连接都与一个权重相关联
在学习阶段
通过调整这些权重
能够正确预测输入样本的类标号
人工神经网络
是以模拟人脑神经元为基础而创建的
是对人类大脑系统特性的一种描述
它从信息处理角度
对人脑神经元网络进行抽象
建立某种简单模型
按不同的连接方式组成不同的网络
神经网络是一种运算模型
由大量的节点或称神经元
之间相互联接构成
每个节点代表一种特定的输出函数
称为激励函数
每两个节点间的连接
都代表一个
对于通过该连接信号的加权值
称之为权重
这相当于人工神经网络的记忆
网络的输出则依网络的连接方式
权重值和激励函数的不同而不同
神经元可以看作一个多输入
单输出的信息处理单元
其数学模型如图所示
其中
n个输入xi表示
当前神经元的输入值
n个权值wi表示连接强度
f是一个线性输出函数
又称激活函数或激励函数
y表示当前神经元的输出值
神经元的工作过程如下
一 输入端接受输入信号xi
二 求所有输入的加权和
三 对net做非线性变换后输出结果
即y=f(net)
神经网络由三个要素组成
拓扑结构 连接方式和学习规则
一 拓扑结构
神经网络的拓扑结构可以分为单层
两层或者三层
其中单层神经网络只有一组输入单元
和一个输出单元
如图所示
两层神经网络由输入单元层
和输出单元层组成
如图所示
三层神经网络用于处理更复杂的
非线性问题
如图所示
在这种模型中
除了输入层和输出层外
还引入了中间层
也称为隐藏层
隐藏层可以有一层或多层
每层单元的输出作为下一层单元的输入
定义神经网络拓扑结构时
输入层单元的个数
由样本属性的维度决定
对输入单元所对应的
各属性取值进行规格化
将有助于加快学习过程
通常
对输入值规格化
使得它们落入 0.0 和1.0 之间
输出层单元的个数由样本分类个数决定
一个输出单元可以表示两个类
如果多于两个类
则每个类使用一个输出单元
隐藏层的层数和每层的
单元个数由用户指定
对于最好的隐藏层单元数
没有明确的规则
拓扑结构是一个神经网络的基础
其设计是一个反复试验的过程
并可能影响结果训练网络的准确性
权重的初值也可能影响结果的准确性
一旦网络经过训练
并且其准确率不能被接受
通常用不同的网络拓扑
或使用不同的初始权重集
重复训练过程
二 连接方式
神经网络的连接包括层之间的连接
和每一层内部的连接
连接的强度用权表示
根据连接方式的不同分为前馈神经网络
反馈神经网络和层内有互连的神经网络
前馈神经网络如图所示
也称前向神经网络
其中单元分层排列
每一层只接受来自前一层单元的输入
无反馈
反馈神经网络如图所示
除了单向连接外
最后一层的单元的输出返回
作为第一层单元的输入
层内有互联的神经网络如图所示
是指在一个层内的神经元之间有互连
神经网络的学习分为离线学习
和在线学习两类
离线学习是指神经网络的学习过程
和应用过程是独立的
而在线学习是指学习过程
和应用过程是同时进行的
根据拓扑结构和连接方式的不同
人工神经网络有多种网络模型
包括前馈神经网络
反馈神经网络
竞争神经网络和自映射神经网络等
本节重点介绍前馈神经网络
在前馈神经网络中
被广泛使用的算法
是误差后向传播算法
即BP算法
BP算法的学习过程
分为两个基本子过程
即工作信号正向传递子过程
和误差信号反向传递子过程
完整的学习过程为
对于一个训练样本
其迭代过程如下
调用工作信号正向传递子过程
从输入层到输出层产生输出信号
这可能会产生误差
然后调用误差信号反向传递子过程
从输出层到输入层传递误差信号
利用该误差信号求出权重修改量
以便更新权值
这是一次迭代过程
当误差或权值修改量仍不满足要求时
以更新后的权重重复上述过程
BP神经网络如图所示
初始化权重
网络的权重被初始化为小随机数
例如由-1.0到1.0
每个单元有一个相关联的偏移
类似地
偏移也可初始化为小随机数
后向传播算法
在多层前馈神经网络上学习
注意两点
一 网络是前馈的
因为其权重都不回送到输入单元
或前一层的输出单元
二 网络是全连接的
如果每个单元都向下一层的
每个单元提供输出
向后传播算法是指
一 后向传播
通过迭代地处理训练元组数据集
把每个元组的网络预测
与实际已知的目标值相比较进行学习
二对于每个训练样本
修改权重使得网络预测
和实际目标值之间的均方误差最小
三 这种修改后向进行
即由输出层
经由每个隐藏层
到第一个隐藏层
因此称作后向传播
四 一般地
权重将最终收敛
学习过程停止
BP多层前馈网络的工作过程
如图所示
向前传播输入
样本经输入层输入
经各隐层变化调整
到输出层输出结果
将结果与已知目标值进行比较
发现误差后
向后传播误差
从输出层
经由各隐层
从最后一个隐藏层
到第一个隐藏层逐层传播误差
更新网络权重及偏倚
重复上述过程
直到终止条件满足
假设训练元组X具有n个属性
x1,x2,…xn
每个训练元组X按以下步骤处理
一 向前传播输入
首先
训练元组提供给网络的输入层
训练元组各属性通过输入层单元
不发生变化
也就是说
对于输入单元j
它的输出Oj等于它的输入值Ij
即Oj=Ij
二 计算隐藏层和输出层的
每个单元的净输入和输出
隐藏层和输出层单元的净输入
用其输入的线性组合计算
每个连接都有一个权重
为计算该单元的净输入
连接该单元的每个输入
都乘以其对应的权重
然后求和
给定层或输出层的单元j
到单元j的净输入Ij如公式所示
其中
wij是由上一层的单元i
到单元j的连接的权重
Oi是上一层的单元i的输出
而θj是单元j的偏移
偏移充当阈值
用来改变单元的活性
隐藏层和输出层的每个单元的
净输出计算
取其净输入
然后将激活函数作用于它
该函数象征被该单元代表的
神经元的活性
使用logistic或sigmoid函数
这两个函数都是S型曲线函数
此处使用Sigmoid函数
给定单元j的净输入Ij
则单元j的输出Oj如公式所示
该函数又称挤压函数
因为它将一个较大的输入值
映射到一个较小的区间0到1
对于每个隐藏层
直到输出层
计算输出值Oj
三 向后传播误差
通过更新权重
和反映网络预测误差的偏移
向后传播误差
即先计算输出层的误差
然后计算最高隐藏层误差
一直计算到第一隐藏层的误差
对于输出层单元j
误差Errj计算如公式所示
Errj = Oj(1-Oj)(Tj-Oj)
其中
Oj是单元j的实际输出
而Tj是单元j给定训练元组的
已知目标值
为计算隐藏层单元j的误差
考虑下一层中连接j的单元的
误差加权和
隐藏层单元j的误差计算如下所示
其中
wjk是由下一较高层中单元k
到单元j的连接权重
而Errk是单元k的误差
四 更新权重和偏倚
以反映误差的传播
权重用下式更新
其中
∆wij是权重wij的改变量
l是学习率
通常取0.0到1.0之间的常数值
后向传播使用梯度下降法
搜索权重的集合
这些权重拟合训练数据
使得样本的网络类预测
与元组的已知目标值之间的
均方距离最小
学习率帮助避免陷入决策空间的
局部极小
并有助于找到全局最小
如果学习率太低
则学习将进行得很慢
如果学习率太高
则可能出现在不适当的解之间摆动
一种调整规则
是将学习率设置为1/t
其中t是已对训练样本集迭代的次数
偏倚由下式更新
其中
Δθˇj是偏倚的改变量
计算如公式(7-63)和公式(7-64)所示
Δθˇj=l×Errj
θˇj= θˇj+Δθˇj
注意
每处理一个样本
就要更新一次权重和偏倚
这称作实例更新
权重和偏倚的增量
也可以累积到变量中
使得可以在处理完训练集中的
所有元组之后再更新权重和偏倚
后一种策略称作周期更新
其中扫描训练集的一次迭代
是一个周期
理论上
后向传播的数学推导使用周期更新
而实践中
实例更新更常见
因为它通常产生更准确的结果
五 终止条件
如果前一周期所有的Δwij
都小于某个指定的阈值
或前一周期误分类的元组百分比
小于某个阈值
或超过预先指定的周期数
训练停止
-1.1 数据分析与数据挖掘
-1.2 分析与挖掘的数据类型
-1.3 数据分析与数据挖掘的方法
-1.4 数据分析与数据挖掘使用的技术
-1.5 应用场景及存在的问题
-第1章 作业1
-第1章 作业2
-2.1 数据的属性
-- 2.1 数据的属性
-2.2 数据的基本统计描述
-2.3 数据的相似性和相异性
-第2章 作业1
-第2章 作业2
-3.1 数据存在的问题
--数据存在的问题
-3.2 数据清理
--3.2 数据清理
--数据清理
-3.3 数据集成
--3.3 数据集成
--数据集成
-3.4 数据归约
--3.4 数据规约
--数据归约
-3.5 数据变换与数据离散化
-第3章 作业1
-第3章 作业2
-4.1 数据仓库基本概念
--数据仓库基本概念
-4.2 数据仓库设计
--数据仓库设计
-4.3 数据仓库实现
--数据仓库实现
-4.4 联机分析处理
--联机分析处理
-4.5 元数据模型
--元数据模型
-第4章 作业1
-第4章 作业2
-5.1 回归分析的基本概念
-5.2 一元线性回归
--一元线性回归
-5.3 多元线性回归
--多元线性回归
-5.4 多项式回归
--多项式回归
-第5章 作业1
-第5章 作业2
-6.1 概述
--频繁模式概述
-6.2 Apriori算法
-6.3 FP-growth算法
-6.4 压缩频繁项集
--压缩频繁项集
-6.5 关联模式评估
--关联模式评估
-第6章 作业1
-第6章 作业2
-7.1 分类概述
--7.1 分类概述
--分类概述
-7.2 决策树
--决策树
-7.3 朴素贝叶斯分类
--朴素贝叶斯分类
-7.4 惰性学习法
-7.5 神经网络
--神经网络
-7.6 分类模型的评估
--分类模型的评估
-第7章 第一部分作业2(研究生班级)
-第7章 第二部分作业2
-第7章 第二部分作业1
-8.1 聚类概述
--8.1 聚类概述
--聚类概述
-8.2 基于划分的聚类
--基于划分的聚类
-8.3 基于层次的聚类
--基于层次的聚类
-8.4 基于密度的聚类
--基于密度的聚类
-8.5 基于网格的聚类
--基于网格的聚类
-第8章 作业1
-第8章 作业2
-9.1 离群点定义与类型
-9.2 离群点检测
--离群点检测
-第9章 作业1
-第9章 作业2