BP神经网络模型----第二篇(感知器网络模型)

感知器网络的简单认识

上一篇介绍了人工神经网络背景,神经元,神经元模型以及神经网络的最初模型–MP模型的概念,这就有了一个初步的对神经网络的了解。
那么接下来一起来看一下什么是感知器网络

神经网络根据层次有:单层神经网络,双层神经网络和多层神经网络之分。

上一篇说的MP模型与今天说的感知器网络都属于单层神经网络。

通过介绍我们已经知道了MP模型的一个最大的缺点就是该模型的权值是不可调节的,固定的,这就导致模型不能用来进行学习。

而感知机神经元在MP模型的基础之上增加了学习功能和偏置,其权值可以根据设计目的进行调节。

感知器网络就很适合简单模型的分类问题,解决线性划分(两类)问题。

感知器神经元模型

感知器模型和MP模型一样都是单层神经网络,它比MP模型多了偏置,且w值可以根据目的进行调节。
单层神经网络就是如下,中间过程包含两个计算函数。
在这里插入图片描述

偏置(偏差b)是一个可调节参数,增加了神经网络的可塑性,即:
N e t i j = ∑ j = 1 r W j P j + b Net_{ij}=\sum\limits_{j=1}^{r}W_{j}P_{j}+b Netij=j=1rWjPj+b
(记住 W P + b WP+b WP+b即:权重*输入+偏置)

f ( n ) f(n) f(n)函数是激活函数(激活函数的概念在第一篇时已经说明)

N e t i j Net_{ij} Netij经过激活函数计算,输出实际输出值 a i a_{i} ai

该模型用公式可表达为:

输出 a i = f ( W P + b ) = f ( ∑ j = 1 r W j P j + b ) = f ( N e t i j ) = { 1 N e t i j > = 0 0 N e t i j < 0 a_{i}=f(WP+b)=f(\sum\limits_{j=1}^{r}W_{j}P_{j}+b)=f(Net_{ij})=\begin{cases} 1 & Net_{ij}>=0 \\ 0 & Net_{ij}<0 \\ \end{cases} ai=f(WP+b)=f(j=1rWjPj+b)=f(Netij)={10Netij>=0Netij<0

(感知器网络模型的激活函数可以说是sign符号函数,返回数字0/1,用以分类)

一般来说,感知器网络结构是单层神经网络(也有多层,如下图示意的,可以感受一下多层和单层的区别在哪儿,手动绘画,有些丑)

每个神经元的计算都有偏置b加入。
在这里插入图片描述
将上述模型结构权重值,抽象用矩阵表示一下可以这样表述:
在这里插入图片描述

感知器的输入和输出

感知器的input个数与output个数不一定一致,这个可以参看MP模型,

(比如说输入P1,P2,P3三个,经过权值求和激活函数最终被分为两类0/1,这个时候输入3个输出2个。)

我们用 r r r 表示input个数, s s s 表示神经元个数。
一组输入输出和多组输入输出的矩阵表达:
在这里插入图片描述
N s q = W s r ∗ P r q + B s q N_{sq}=W_{sr}*P_{rq}+B_{sq} Nsq=WsrPrq+Bsq
A s q = F ( N s q ) A_{sq}=F(N_{sq}) Asq=F(Nsq)
( W s r W_{sr} Wsr是上面的权重值矩阵)

s s s=1, r r r=2时,根据 W P + b WP+b WP+b得: W 1 ∗ P 1 + W 2 ∗ P 2 + b W1*P1+W2*P2+b W1P1+W2P2+b

s个神经元组成的感知器将输入空间分为 2 s 2^{s} 2s

output向量的第i个元素的表达:

再来看一下上面的 W s r W_{sr} Wsr:
在这里插入图片描述
我们可以把每行 i i i 的权重都写为:
i W = [ W i 1 W i 2 ⋮ W i r ] i^{W}= \left[ \begin{matrix} W_{i1} \\ W_{i2} \\ \vdots \\ W_{ir} \\ \end{matrix} \right] iW=Wi1Wi2Wir
那么它的转置可写为:
i W T = [ W i 1 , W i 2 , . . . , W i r ] i^{W^{T}}= \left[ \begin{matrix} W_{i1},W_{i2},...,W_{ir} \end{matrix} \right] iWT=[Wi1,Wi2,...,Wir]

W s r W_{sr} Wsr的第一行可以写为:
1 W T = [ W 11 , W 12 , . . . , W 1 r ] 1^{W^{T}}= \left[ \begin{matrix} W_{11},W_{12},...,W_{1r} \end{matrix} \right] 1WT=[W11,W12,...,W1r]

W s r W_{sr} Wsr的第二行可以写为:
2 W T = [ W 21 , W 22 , . . . , W r ] 2^{W^{T}}= \left[ \begin{matrix} W_{21},W_{22},...,W_{r} \end{matrix} \right] 2WT=[W21,W22,...,Wr]

以此类推最终 W s r W_{sr} Wsr可以表达为:
W s r = [ 1 W T 2 W T 3 W T ⋮ s W T ] W_{sr}= \left[ \begin{matrix} 1^{W^{T}} \\ 2^{W^{T}} \\ 3^{W^{T}} \\ \vdots \\ s^{W^{T}} \\ \end{matrix} \right] Wsr=1WT2WT3WTsWT

则感知器网络输出向量的第i个元素可以表达为:

a i = N e t i = i W T ∗ P + b a_{i}=Net_{i}=i^{W^{T}}*P+b ai=Neti=iWTP+b

单神经元感知器

只有一个神经元的感知器网络。
在这里插入图片描述

先看一个概念:判定边界

判定边界

看图,感知器线性分类分为0/1两类,红色线=0时是一条边界线
在这里插入图片描述
也就是 a i = i W T ∗ P + b = W 11 ∗ P 1 + W 21 ∗ P 2 + b = 0 a_{i}=i^{W^{T}}*P+b=W11*P1+W21*P2+b=0 ai=iWTP+b=W11P1+W21P2+b=0是一个边界。

为了确定边界的哪边对应的输出为1,哪边对应的0,只需要检测输入空间的1个点,比如取右上方区域一点,若该点预测的a=1则判定边界右上方区域为网络输出为1

比如取第一个元素,取右上方的A点 [ 2 , 0 ] T [2,0]^{T} [20]T
判定边界定为 1 W T ∗ P + b 1^{W^{T}}*P+b 1WTP+b,( 1 W 1^{W} 1W是权重向量,总是指向为1的部分。)
a = [ 1 , 1 ] ∗ [ 2 0 ] − 1 = 2 − 1 = 1 a=\left[\begin{matrix}1,1\end{matrix}\right] *\left[\begin{matrix}2 \\0\end{matrix}\right]-1=2-1=1 a=[1,1][20]1=21=1

所以判定右上方输出为1,即右上方预测的结果a都是1。
这里是不是发现一个问题, 1 W T ∗ P 1^{W^{T}}*P 1WTP不是要+b吗?为什么上面的计算中是-b呐?往下看原因
在这里插入图片描述

对于判定边界线上所有的点而言,输入向量与权重值向量的内积是一样的( 1 W ∗ P = − b ; W T ∗ P = − b 1^{W}*P=-b;W^{T}*P=-b 1WP=bWTP=b,都是-b),这意味着所有P在 1 W 1^{W} 1W 上有相同阴影,所以她们必须位于与权重向量是正交的一条线上。

1 W 1^{W} 1W指向的阴影区域(右上方区域)中任意输入P向量都有着大于-b的内积,所以是-b;
左下方区域输入向量有着小于-b的内积,所以这里是+b。

感知器学习规则

通过调整权重和偏差来使得学习性能更好,预测结果更准确。
a i a_{i} ai为网络预测出来的结果值;
t i t_{i} ti为目标值(最初自己想要得到的值)

a i = t i a_{i}=t_{i} ai=ti,则不用改变权重和偏差;
a i a_{i} ai不等于 t i t_{i} ti,则需要改变权重W与偏差值b:
· a i = 0 , t i = 1 a_{i}=0,t_{i}=1 ai=0ti=1时,修正: W n e w = W o l d + P T , b i = b i + 1 W_{new}=W_{old}+P^{T},b_{i}=b_{i}+1 Wnew=Wold+PTbi=bi+1
· a i = 1 , t i = 0 a_{i}=1,t_{i}=0 ai=1ti=0时,修正: W n e w = W o l d − P T , b i = b i − 1 W_{new}=W_{old}-P^{T},b_{i}=b_{i}-1 Wnew=WoldPTbi=bi1

学习的统一表达式:
感知器的修正权重值公式:
1.用分量表示:
Δ W i j = ( t i − a i ) ∗ P T \Delta{W_{ij}=(t_{i}-a_{i})*P^{T}} ΔWij=(tiai)PT
Δ b i = ( t i − a i ) ∗ 1 \Delta{b_{i}=(t_{i}-a_{i})*1} Δbi=(tiai)1
2.用矩阵表示:
W = W + E ∗ P T W=W+E*P^{T} W=W+EPT
B = B + E B=B+E B=B+E

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值