270 likes | 493 Views
神经网络. 西南财经大学 统计学院 李保坤老师. 概览. 神经网络介绍 BP 算法基本步骤 梯度下降法用于神经网络 -线性感受器:回归模型 - 神经元分类 -神经网络 训练神经网络. 神经网络介绍. 是人工智能中研究比较成熟的技术。 神经网络最早是由心理学家和神经生物学家提出的,旨在寻求和测试神经的计算模拟。 神经网络是一组连接的输入 / 输出单元,其中每个连接都与一个权值相连。在学习阶段,通过不断调整神经网络的相连权值,使得能够正确预测输入样本的正确类标号。. 神经网络介绍.
E N D
神经网络 西南财经大学 统计学院 李保坤老师
概览 • 神经网络介绍 • BP算法基本步骤 • 梯度下降法用于神经网络 -线性感受器:回归模型 -神经元分类 -神经网络 • 训练神经网络
神经网络介绍 • 是人工智能中研究比较成熟的技术。 • 神经网络最早是由心理学家和神经生物学家提出的,旨在寻求和测试神经的计算模拟。 • 神经网络是一组连接的输入/输出单元,其中每个连接都与一个权值相连。在学习阶段,通过不断调整神经网络的相连权值,使得能够正确预测输入样本的正确类标号。
神经网络介绍 • 神经网络通常由输入层、输出层和隐藏层组成,输入层的神经元个数等于样本的特征数+1, • 输出层就是分类判决层,它的神经元个数等于样本的类别数(2分类1个节点,或公用一个节点)。 • 特点:对噪声数据具有较高的承受能力,但训练需要花费较长的时间。
神经网络介绍 • 目前最流行的神经网络学习算法是:后向传播算法(Back-propagation, BP)。 • 它通过迭代地处理一组训练样本,将每个样本的网络预测与实际知道的类标号比较,进行学习。对于每个训练样本,修改连接权值,使得网络预测与实际类之间的均方误差最小。 • 这种修改“后向”地进行,即由输出层,经由每个隐藏层,到第一个隐藏层。
BP算法基本步骤 • 1.初始化网络各层的权值及神经元阈值。(一个小的随机数) • 2.向前传播输入:对每一样本,计算隐藏层和输出层每个单元的净输入和输出。
BP算法基本步骤 • 3. 后向传播误差通过更新权值和偏置以反映网络的预测误差。 输出向量 输出节点 隐藏层节点 输入节点 输入向量 O O O O O O
BP算法基本步骤 • 终止条件: • 更新权值较小 • 正确分类的样本百分比 • 超过预先指定的训练周期(实践中,权收敛可能需要数百到数十万个周期)
给定 是梯度,其方向是函数f上升 最陡的方向 梯度下降法: w会越来越趋向最低点(η是大于0的小数) 梯度下降法用于神经网络
梯度下降法用于神经网络 • 作为一种有约束学习算法,神经网络是矩阵w(参数,称作权重)为参数的模型 • 神经网络建模是二次优化问题(以下有说明),我们要计算使得残差平方和最小的权重 • 我们将使用梯度下降法
线性感受器(Linear Perceptron): 多元回归模型 g(v)=v
线性感受器 • 线性感受器就是多元回归模型: y=out(x)=wTx • “训练”模型包括用梯度下降法最小化残差平方和: • 如何用梯度下降法?
线性感受器的训练方法 梯度下降法告诉 我们要最小化E, 按以下革新w 那么
线性感受器的训练方法 梯度下降法告诉 我们要最小化E, 按以下革新w 那么
线性感受器的训练方法 梯度下降法告诉 我们要最小化E, 按以下革新w 那么 我们经常忽略这个2
神经元分类 挤压函数: g(h)=1/(1+exp(-h)) 把实数值1-1转化 到0~1之间的值 使用y=g(out(wTx)) 可对具有x属性的观测 进行分类: y≥0.5,x属于一个类别,否则另一类
神经元分类 • 挤压函数 g(h)=1/(1+exp(-h)) 我们选择w以最 小化
神经网络 含一个隐藏层的网络,输入变量数=2, 隐藏层节点数=3
神经网络 其它神经网络结构 2隐藏层+1常数项 “跳跃”连接结构
后向传播算法 • 把神经网络看作感受器,其输出为: • 我们的目标是使用梯度下降法计算{Wj},{wjk}以最小化 • 这就是后向传播算法
后向传播算法 • 理论上不能保证这一算法会收敛到全局最小 实际上,这不是大问题 • 找到合适的隐藏层节点数、训练常数却不是简单的事。关于训练常数: -如果太小,可能要几天才收敛 -如果太大,可能会发散 -恰当的值很难找到
训练神经网络 1 隐层数 一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。
2 隐层节点数 在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。 目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。 训练神经网络
训练神经网络 • 在确定隐层节点数时必须满足下列条件: • 隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。同理可推得:输入层的节点数(变量数)必须小于N-1。 • (2) 训练样本数必须多于网络模型的连接权数,一般为2~10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。
训练神经网络 总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。
谢谢观赏! -李保坤