matlab-神经网络-感知机(7)

一、矢量相关概念

 

矢量(英语:Vector)是数学、物理学和工程科学等多个自然科学中的基本概念,指一个同时具有大小和方向的几何对象,因常常以箭头符号标示以区别于其它量而得名。直观上,矢量通常被标示为一个带箭头的线段(如右图)。

 

 

在进行矩阵运算时,矢量也可以表达成列矢量和行矢量(如下例)。

\begin{array}{lcl} \vec{a} &=& \begin{bmatrix}  a\\  b\\  c\\ \end{bmatrix} \\ \vec{a} &=& [ a\ b\ c ]. \end{array}

 

 

 

 

矢量与基

矢量空间分为有限维矢量空间与无限维矢量空间。在有限维矢量空间中,可以找到一组(有限个)矢量\vec{e}_1, \vec{e}_2, \cdots , \vec{e}_n,使得任意一个矢量 \vec{v} 都可以唯一地表示成这组矢量的线性组合:

\vec{v} =v_1 \vec{e}_1 + v_2 \vec{e}_2 + \cdots + v_n \vec{e}_n

其中的标量v_1, v_2, \cdots , v_n是随着矢量 \vec{v} 而确定的。这样的一组矢量称为矢量空间的基。给定了矢量空间以及一组基后,每个矢量就可以用一个数组来表示了[5]。两个矢量 \vec{v}\vec{w} 相同,当且仅当表示它们的数组一样。

\begin{array}{lcl} v_1 &=& w_1 \\ v_2 &=& w_2 \\ \vdots \ && \vdots \\ v_n &=& w_n \end{array}

两个矢量 \vec{v}\vec{w} 的和:

\vec{v} + \vec{w} = (v_1 + w_1)\vec{e}_1 + (v_2 + w_2 ) \vec{e}_2 + \cdots + (v_n + w_n ) \vec{e}_n

它们的数量积为:

\vec{v} \cdot \vec{w} =  v_1 \cdot  w_1  + v_2 \cdot w_2 + \cdots + v_n \cdot  w_n [3]

而标量k与矢量v的乘积则为:

k \cdot \vec{v} =  (k \cdot v_1) \vec{e}_1 + (k \cdot v_2) \vec{e}_2 + \cdots + (k \cdot v_2) \vec{e}_n [3]
矢量的大小也叫做范数或模长,记作\| \vec{v} \|。有限维空间中,已知矢量的坐标,就可以知道它的模长:
\| \vec{v} \|= \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}[3]



 

 

二、奇异样本

 

奇异样本:该样本向量同其他样本向量比较起来特别大或特别小时,网络训练所花费的时间将很长。使用“感知器归一化学习算法”即learnpn函数能有效消除奇异样本的影响,

但是若样本中没有奇异样本则较learnp学习方法效率低

(1)learnp学习方法

 

 



 (2)learnpn

 

 



 

三、调用learnpn处理刚才的运算,虽然没有奇异样本

%控制感知机的学习过程
P=[0 1 0 1 1;1 1 1 0 0];
T=[0 1 0 0 0];
net = newp([0 1;0 1],1);
net=init(net);

y=sim(net,P);
e=T-y;
while (mae(e)>0.0015)
   dw=learnpn(w,P,[],[],[],[],e,[],[],[],[],[])
   db=learnpn(b,ones(1,5),[],[],[],[],e,[],[],[],[],[])
   %每次学习完后,会返回需要的调整权值矩阵和阈值矩阵
   w=w+dw
   b=b+db
   net.iw{1,1}=w
   net.b{1}=b  
   y=sim(net,P);
   e=T-y
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值