感知神经网络模型与学习算法
Posted gshang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了感知神经网络模型与学习算法相关的知识,希望对你有一定的参考价值。
本文转载自CSDN,原文链接
单层感知器
该概念的是在1957年美国学者Rosenblatt提出的。
感知器是监督学习的神经网络模型。单层感知器是包含一个突触权值可调的神经元的感知器模型。是神经网络用来进行模式识别的一种最简单的模型,属于前向神经网络类型,但是仅由一个神经元组成的单层感知器只能区分线性可分的模式。
一个感知器模型,包括一个线性的累加器和一个二值阈值元件,同时还有一个外部偏差 \\(b\\) ,也称作阈值,其值可以为正,也可以为负。线性累加器的输出与偏差 \\(b\\) 的和作为二值阈值元件的输入,这样当二值阈值原件的输入是正数时,神经元就产生输出+1,反之,若输入是负数,则产生输出-1
在 \\(m\\) 维空间,单层感知器进行模式识别的判决超平面由下面的式子决定:
\\[
\\sum_i=1^m \\omega_i x_i+b=0
\\]
决定判别边界超平面的形状的主要参数是权值向量 \\(\\vec\\omega\\) 其训练过程就是找到适合的学习算法可以训练出满意的权值向量。
在20世纪60年代初期,Rosenblatt等就给出了严格的数学证明对线性可分的样本,算法一定是收敛的,就是说 \\(\\vec\\omega\\) 一定存在,否则,判别边界会产生振荡,导致 \\(\\vec\\omega\\) 不能收敛。
单层感知器的学习算法
该学习算法是基于迭代思想,通常是采用误差校正学习规则的学习算法。将偏差b作为神经元突触全职向量的第一个分量加到权值向量中去,那么对应的输入向量也应增加一项,可设输入向量的第一个分量固定为+1,这样输入向量和权值向量可分别写成如下的形式:
\\[
X(n)=\\left(+1, x_1(n), x_2(n), \\cdots, x_m(n)\\right)^T
\\]
\\[
W(n)=\\left(b(n), \\omega_1(n), \\omega_2(n), \\cdots, \\omega_m(n)\\right)
\\]
其中 \\(n\\) 为迭代次数。\\(b(n)\\) 可用 \\(\\omega_0(n)\\) 来表示,于是,二值阈值元件的输入可重新写为:
\\[
v=\\sum_i=0^m \\omega_i(n) x_i(n)=W^T(n) X(n)
\\]
具体学习算法如下:
设置变量和参量
\\(X(n)=\\left(1, x_1(n), x_2(n), \\cdots, x_m(n)\\right)\\) 即训练样本。
\\(W(n)=\\left(b(n), \\omega_1(n), \\omega_2(n), \\cdots, \\omega_m(n)\\right)\\) 为权值向量。
\\(b(n)\\) 为偏差 \\(f(? )\\) 为激活函数, \\(y(n)\\) 为网络实际输出,\\(d(n)\\) 为期望输出,\\(\\eta\\) 为学习速率,\\(n\\) 为迭代次数,\\(e\\) 为实际输出与期望输出的误差。初始化,给权值向量 \\(\\omega_0(n)\\) 的各个分量赋一个较小的随机非零值, 设置 \\(n=0\\)
输入一组样本 \\(X(n)=\\left(1, x_1(n), x_2(n), \\cdots, x_m(n)\\right)\\) 并给出它的期望输出 \\(d(n)\\)
计算实际输出 \\(y(n)=f\\left(\\sum_i=0^m \\omega_i(n) x_i(n)\\right)\\)
求出期望输出和实际输出的误差,\\(e=d(n)-y(n)\\),根据误差判断目前输出是是否满足条件,若满足条件则算法结束,否则将n值加1,并用下式调整权值
\\[ \\omega(n+1)=\\omega(n)+\\eta[d(n)-y(n)] X(n) \\]
在单层感知器学习算法中,最关键的因素是引入了一个量化的期望输出,这样就可以采用误差校正学习规则对权值向量逐步进行修正,最终达到问题所需的精度。
对于线性可分的两类模式,可以证明单层感知器的学习算法是收敛的,即通过调整神经网络各个链接权值可以得到合适的判别边界,正确区分两类模式;而对于线性不可分的两类模式,无法用一条直线区分两类模式,此时,单层感知器的学习算法不是收敛的,即单层感知器无法正确区分线性不可分的两类模式。
以上是关于感知神经网络模型与学习算法的主要内容,如果未能解决你的问题,请参考以下文章