25/1/261第5讲神经网络分类25/1/262人工神经网络学习概述•人工神经网络提供了一种普遍且实用的方法从样例中学习值为实数、离散值或向量的函数。•人工神经网络对于训练数据中的错误健壮性很好。•人工神经网络已被成功应用到很多领域,例如视觉场景分析,语音识别,机器人控制。•其中,最流行的网络和算法是20世纪80年代提出的BP网络和BP算法,BP算法使用梯度下降法来调节BP网络的参数以最佳拟合由输入-输出对组成的训练集合。25/1/263BP算法概述1、BP算法的出现非循环多级网络的训练算法UCSDPDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述1982年,Paker就完成了相似的工作1974年,Werbos已提出了该方法2、弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。3、优点:广泛的适应性和有效性。25/1/264BP网络的基本结构25/1/265确定BP网络的拓扑结构•在开始训练之前,需要确定网络的拓扑结构:出入层神经元的个数、隐含层神经元的层数及每一层神经元的个数、输出层神经元的个数。•对训练样本中的每一属性的值进行归一化,使其值落在(0,1)区间,有助于加快学习过程。•对于离散的属性值,要进行合适的编码。•BP网一般都选用二级网络。•实验表明:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。25/1/266神经元的M-P模型25/1/267激活函数(ActivationFunction)•激活函数——执行对该神经元所获得的网络输入的变换,也可以称为激励函数、活化函数:o=f(net)•1、线性函数(LinerFunction)f(net)=k*net+cnetooc25/1/2682、非线性斜面函数(RampFunction)γifnet≥θf(net)=k*netif|net|<θ-γifnet≤-θ•γ>0为一常数,被称为饱和值,为该神经元的最大输出。25/1/2692、非线性斜面函数(RampFunction)γ-γθ-θneto25/1/26103、阈值函数(ThresholdFunction)阶跃函数βifnet>θf(net)=-γifnet≤θβ、γ、θ均为非负实数,θ为阈值二值形式:1ifnet>θf(net)=0ifnet≤θ双极形式:1ifnet>θf(net)=-1ifnet≤θ25/1/26113、阈值函数(ThresholdFunction)阶跃函数β-γθonet025/1/26124、S形函数压缩函数(SquashingFunction)和逻辑斯特函数(LogisticFunction)。f(net)=a+b/(1+exp(-d*net))a,b,d为常数。它的饱和值为a和a+b。最简单形式为:f(net)=1/(1+exp(-d*net))函数的饱和值为0和1。•S形函数有较好的增益控制25/1/26134、S形函数a+bo(0,...