感知器网络

  • 感知器网络的简单认识
  • 感知器神经元模型
    • 感知器的输入和输出
      • output向量的第i个元素的表达:
    • 单神经元感知器
      • 判定边界
  • 感知器学习规则

感知器网络的简单认识

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

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

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

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

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

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

感知器神经元模型

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

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

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

NetijNet_{ij}Netij​经过激活函数计算,输出实际输出值aia_{i}ai​

该模型用公式可表达为:

输出ai=f(WP+b)=f(∑j=1rWjPj+b)=f(Netij)={1Netij>=00Netij<0a_{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=1∑r​Wj​Pj​+b)=f(Netij​)={10​Netij​>=0Netij​<0​

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

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

每个神经元的计算都有偏置b加入。

将上述模型结构权重值,抽象用矩阵表示一下可以这样表述:

感知器的输入和输出

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

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

我们用 rrr 表示input个数,sss 表示神经元个数。
一组输入输出和多组输入输出的矩阵表达:

Nsq=Wsr∗Prq+BsqN_{sq}=W_{sr}*P_{rq}+B_{sq}Nsq​=Wsr​∗Prq​+Bsq​
Asq=F(Nsq)A_{sq}=F(N_{sq})Asq​=F(Nsq​)
(WsrW_{sr}Wsr​是上面的权重值矩阵)

当sss=1,rrr=2时,根据WP+bWP+bWP+b得:W1∗P1+W2∗P2+bW1*P1+W2*P2+bW1∗P1+W2∗P2+b

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

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

再来看一下上面的WsrW_{sr}Wsr​:

我们可以把每行 iii 的权重都写为:
iW=[Wi1Wi2⋮Wir]i^{W}= \left[ \begin{matrix} W_{i1} \\ W_{i2} \\ \vdots \\ W_{ir} \\ \end{matrix} \right] iW=⎣⎢⎢⎢⎡​Wi1​Wi2​⋮Wir​​⎦⎥⎥⎥⎤​
那么它的转置可写为:
iWT=[Wi1,Wi2,...,Wir]i^{W^{T}}= \left[ \begin{matrix} W_{i1},W_{i2},...,W_{ir} \end{matrix} \right] iWT=[Wi1​,Wi2​,...,Wir​​]

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

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

以此类推最终WsrW_{sr}Wsr​可以表达为:
Wsr=[1WT2WT3WT⋮sWT]W_{sr}= \left[ \begin{matrix} 1^{W^{T}} \\ 2^{W^{T}} \\ 3^{W^{T}} \\ \vdots \\ s^{W^{T}} \\ \end{matrix} \right] Wsr​=⎣⎢⎢⎢⎢⎢⎢⎡​1WT2WT3WT⋮sWT​⎦⎥⎥⎥⎥⎥⎥⎤​

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

ai=Neti=iWT∗P+ba_{i}=Net_{i}=i^{W^{T}}*P+bai​=Neti​=iWT∗P+b

单神经元感知器

只有一个神经元的感知器网络。

先看一个概念:判定边界

判定边界

看图,感知器线性分类分为0/1两类,红色线=0时是一条边界线

也就是ai=iWT∗P+b=W11∗P1+W21∗P2+b=0a_{i}=i^{W^{T}}*P+b=W11*P1+W21*P2+b=0ai​=iWT∗P+b=W11∗P1+W21∗P2+b=0是一个边界。

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

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

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

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

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

感知器学习规则

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

若ai=tia_{i}=t_{i}ai​=ti​,则不用改变权重和偏差;
若aia_{i}ai​不等于tit_{i}ti​,则需要改变权重W与偏差值b:
·ai=0,ti=1a_{i}=0,t_{i}=1ai​=0,ti​=1时,修正:Wnew=Wold+PT,bi=bi+1W_{new}=W_{old}+P^{T},b_{i}=b_{i}+1Wnew​=Wold​+PT,bi​=bi​+1
·ai=1,ti=0a_{i}=1,t_{i}=0ai​=1,ti​=0时,修正:Wnew=Wold−PT,bi=bi−1W_{new}=W_{old}-P^{T},b_{i}=b_{i}-1Wnew​=Wold​−PT,bi​=bi​−1

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

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

  1. 机器学习入门篇——感知器

    1.机器学习的基本概念: 三种主要的学习方式: 监督学习:使用有类标的训练数据构建模型,即在训练过程中,所有的数据都是知道它的类别的.通过构建的这个模型对未来的数据进行预测.在监督学习的下面,又可以分 ...

  2. 为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...

    1单层感知器概述单层感知器(Single Layer Perceptron)是最简单的神经网络.它包含输入层和输出层,而输入层和输出层是直接相连的.单层感知器属于感知器中最简单的一种分类器,属于机器学 ...

  3. 多层感知器(MLP)详解【基于印第安人糖尿病数据】

    文章目录: 1 概述 2 Pima印第安人数据集 3 导入数据和keras 4 定义模型 5 编译模型 6 训练 7 评估和预测 8 完整代码 1 概述 多层感知器是最简单的神经网络模型,用于处理机器 ...

  4. 多类感知器算法题目_先进算法讲解

    一想到你在关注我就忍不住有点紧张 ●先进算法● 数学建模中一些常用的算法,比如神经网络算法.遗传算法.模拟退火算法和模糊数学方法等可以较容易地解决一些很复杂.常规算法很难解决的问题.这些算法都有很深的 ...

  5. 深度学习入门笔记系列(三)——感知器模型和 tensorboard 的使用方法

    本系列将分为 8 篇 .今天是第三篇 .主要讲讲感知器模型和 tensorboard 的基本使用方法 . 1. 感知器模型 因为小詹之前写过一篇感知器模型的介绍 ,这里就不赘述了 .有需要巩固的点击如 ...

  6. 感知器算法及python实现

    这边建议异步到第二版感知器算法及其python 实现 V2.0,训练速度更快,数据集更直观. 第一版写的还是太过粗糙. 感知器算法及python实现 通俗来讲,感知器算法可以完成如下这类线性可分的二分 ...

  7. 多层感知器神经网络模型,人工智能神经网络模型

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN).递归神经网络(RNN).深信度网络(DBN).深度自动编码器(AutoEncoder)和生成对抗网络(GAN)等. ...

  8. BP神经网络模型一篇入门

    本站原创文章,转载请说明来自<老饼讲解-BP神经网络> bp.bbbdata.com BP神经网络广泛应用于解决各种问题,是知名度极高的模型之一 为了方便初学者快速学习,本文进行深入浅出讲 ...

  9. bp神经网络预测模型例题,bp神经网络模型是什么

    1.BP神经网络中隐藏层节点个数怎么确定最佳? 1.神经网络算法隐含层的选取 1.1 构造法 首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误 ...

最新文章

  1. 数据竞争(data race)问题分析的利器——valgrind的Helgrind
  2. CKfinder 和 CKEditor 在 ASP.NET 下的配置
  3. JavaScript——基本的瀑布流布局及ajax动态新增数据
  4. 多台服务器通过ssh 无密钥直接登陆主机
  5. Laravel5.2之Filesystem-从Dropbox中下载文件到AWS S3
  6. [USACO07FEB]银牛派对Silver Cow Party---最短路模板题
  7. html中加入js,html嵌入js
  8. 根据不同条件查询_刑事立案要符合哪些条件,怎么查看立案没有
  9. Scala-trait
  10. ★LeetCode(627)——交换工资(MySQL)
  11. Samba配置文件常用参数详解-OK
  12. WebStorm配置(2016/11/18更新)
  13. Keil uVision5 安装及注册有效至2032
  14. 2015-2022年历年真题考研数学二难度概述
  15. 通用24CXXX读写程序(GCC),兼容24C系列存储器(24C01到24C1024),支持跨器件跨页读写,支持连续
  16. html插入swf自动播放,html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明...
  17. 记录学习历程-----游戏编程
  18. 微信小程序引入字体图标 1
  19. 虚拟化技术介绍 hypervisor简介
  20. Windows 2D 绘图 (GDI, GDI+, Direct2D)

热门文章

  1. 100小时学SAP-SD(June笔记)
  2. VIM查找关键字方法
  3. 【翻译】rfc2616 Http状态码规范
  4. 李宇春推广蜀绣,新歌演绎唯美!
  5. linux后台运行程序命令screen
  6. 抖音矩阵系统源码定制开发。
  7. android自动删除su,Android手机提示“su二进制过旧”的解决办法
  8. Html中空格转义字符
  9. git push origin master失败报错“fatal: unable to access...“解决方法
  10. 构建Canvas矢量图形渲染器(四)—— 各种矢量元素(线、面、五角星)