用单层感知器完成逻辑或运算的学习过程

这道题目是我“认知科学”(专业必修/doge)课程的结课作业题之一,目的在于加深对单层感知器的理解,对于后续学习神经网络打下基础。


有关知识:

B站有关视频
单层感知器的学习过程比较简单,其主要目的在于对给出值域进行一个线性划分。主要步骤为:

  1. 初始化连接权值和阈值(一般为为零的较小随机数);
  2. 取样本域中数据作为输入,在每一条输入边上进行加权求和,t表示迭代次数;
    input=∑i=1nwi(t)xi+bθ(t)input=\sum_{i=1}^n{w_i(t)x_i} + b\theta(t) input=i=1∑n​wi​(t)xi​+bθ(t)
  3. 将2中求和结果带入激活函数 f (在此取符号函数) 进行判断;
    output=y=seg(input)={1input≥00input<0output = y=seg(input) = \begin{cases} 1 & input\geq0\\ 0 & input<0 \end{cases} output=y=seg(input)={10​input≥0input<0​
  4. 如果输出值和期望值相同则取下一组数据,回到 2 ;否则根据如下规则进行调整,然后 t 加一,调整之后接着取下一组数据。
    {wi(t+1)=wi(t)+η(d−y)xiθ(t+1)=θ(t)+η(d−y)(−1)\begin{cases} w_i(t+1)=w_i(t)+\eta(d-y)x_i \\ \theta(t+1)=\theta(t)+\eta(d-y)(-1) \end{cases} {wi​(t+1)=wi​(t)+η(d−y)xi​θ(t+1)=θ(t)+η(d−y)(−1)​
  5. 直至样本域中所有数据输出值与期望值相同。

这里要注意的是,i 表示输入数据的组内序号,不是第 i 组数据。


题目:假设w1(0)=0.2, w2(0)=0.4, θ(0)=0.3, η(0)=0.4, 请用单层感知器完成逻辑或运算的学习过程。

由题意可以构造下图的单层感知器,需要迭代求解出中分界线使得分界线可以分割值域。

根据逻辑或的关系可以得到下图的真值表。

  • 步骤1:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(-0.3)=0,与期望输出相同;
  • 步骤2:取第②组输入值:x1=0, x2=1, 期望输出:d=1,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(0.1)=1,与期望输出相同;
  • 步骤3:取第③组输入值:x1=1, x2=0, 期望输出:d=1,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(-0.1)=0,与期望输出不相同;
    • 调整:
    • θ(1)=θ(0)+η(d-y)*(-1)=-0.1;
    • w1(1)=w1(0)+η(d-y)x1=0.6;
    • w2(1)=w2(0)+η(d-y)x2=0.4;
  • 步骤4:取第④组输入值:x1=1, x2=1, 期望输出:d=1,实际上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(1.1)=1,与期望输出相同;
  • 步骤5:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(0.1)=1,与期望输出不相同;
    • 调整:
    • θ(2)=θ(1)+η(d-y)*(-1)=0.3;
    • w1(2)= w1(1)+η(d-y)x1=0.6;
    • w2(2)= w2(1)+η(d-y)x2=0.4;
  • 步骤6:取第②组输入值:x1=0, x2=1, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.1)=1,与期望输出相同;
  • 步骤7:取第③组输入值:x1=1, x2=0, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.3)=1,与期望输出相同;
  • 步骤8:取第④组输入值:x1=1, x2=1, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.7)=1,与期望输出相同;
  • 步骤9:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(-0.3)=0,与期望输出相同。

由于步骤6~步骤9已经遍历了所有输入数据且实际输出结果均与期望输出相同,故可以结束迭代,此时阈值和连接权值以满足结束条件。
得到:w1=0.6, w2=0.4, θ=0.3
通过可视化也可以验证(如下图)


如有错误还望指出!

用单层感知器完成逻辑或运算的学习过程相关推荐

  1. 单层感知器实现逻辑与运算

    感知器是一个用来做模式识别最简单的模型,由于仅有一个神经元,所以只能用来处理线性可分的两类模式识别. 模型 w1 w2 w3 wn x1 x2 x3 xn ∑ b 激活函数f 输出y u = ∑ i ...

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

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

  3. 神经网络算法-论证单层感知器的局限性

    神经网络算法-论证单层感知器的局限性 今天课上学习了一个思路 将真值表转换到平面直角坐标系中 来论证线性可分还是不可分,挺有意思记录一下. 简单感知器模型实际上仍然是MP模型的结构,但是它通过采用监督 ...

  4. 从单层感知器到深度学习以及深度学习必知的框架

    从单层感知器到深度学习以及深度学习必知的框架 一 单层神经网络(感知器) 1.结构 下面来说明感知器模型. 在原来MP模型的"输入"位置添加神经元节点,标志其为"输入单元 ...

  5. MP模型、单层感知器、多层感知器的理解

    神经网络基础 序言 MP模型 1.逻辑与: 2.逻辑或: 3.逻辑异或: 单层感知器 多层感知器(BP) 序言 关于神经网络的内容已经学习了很多,也发现了一些问题,而这些问题是因为基础不牢靠引起的,所 ...

  6. 单层感知器线性分类、多层感知器非线性分类样例 调用matlab神经网络工具箱实现

    %给定样本输入向量P,目标输出向量T %net = newp(PR,S,TF,LF) %PR为输入矢量的取值范围的最大值和最小值 S为神经元的个数 TF为网络的传递函数 默认为hardlim LF为网 ...

  7. 深度学习--TensorFlow (2)单层感知器2 -- 实现多数据分类

    目录 一.基础理论 前向传递(得到输出y) 反向传递(更新权重w) 二.实现多数据分类 1.设置初始参数 2.训练 3.画图 3-1.画点 3-2.画线段 总代码 一.基础理论 这里只写公式,更加详细 ...

  8. 深度学习--TensorFlow (1)单层感知器1 -- 实现单数据训练

    目录 一.基础理论 1.单词感知器介绍 2.单词感知器学习规则 前向传递(得到输出y) 反向传递(更新权重w) 二.实现单层感知器 1.初始参数设置 2.正向传播(得到输出y) 3. 反向传播(更新权 ...

  9. 深度学习(神经网络)[1]——单层感知器

    深度学习(神经网络)[1] -- 单层感知器 算法描述 python实现 示例运行结果 可视化 算法描述 最原始的神经网络模型,类似于神经网络中的单个神经元,该算法局限性也很大,只适用于解决线性可分的 ...

最新文章

  1. python知识点:文件读写以及其他基础知识点
  2. 北大邮箱收件服务器,北京大学微电子学研究院邮件系统
  3. apache虚拟主机名不区分大小写的解决办法
  4. Oracle 空间查询, 数据类型为 sdo_geometry
  5. elementui 菜单标题_elementUI 动态渲染三级菜单
  6. Activiti中databaseSchemaUpdate属性取值
  7. JavaScript 三种创建对象的方法
  8. Unitils集成DBUnit的问题-解决方案
  9. PHP 执行系统命令函数
  10. python 字段_python字典查询
  11. 李明洋十讲学会ADS教学课程笔记
  12. Android飞机大战游戏报告,基于android的飞机大战游戏设计与开发.doc
  13. 关于“Threats to Validity”的介绍
  14. 【OR】ADMMRisk Parity Portfilio Model
  15. 一个女人努力工作的意义
  16. 关于时间time_t和tm的介绍(很详细)
  17. j-style pro android,三星J7 Pro官方安卓9台湾版固件rom包:BRI-J730GMDXU6CSF5
  18. 文件打开方式更改为原本的计算机程序
  19. 图扑软件数字孪生海上风电 | 向海图强,奋楫争先
  20. 提取视频音乐的简单方法

热门文章

  1. 从0到1开始训练一个bert语言模型
  2. 【bzoj 1806/CS 1801】矿工配餐 IOI2007(五维DP+滚动数组)
  3. 使用IText5+Freemarker生成PDF(模板可以使用CCS3分页效果)
  4. 搜索引擎蜘蛛工作原理,如何引蜘蛛?
  5. 测试的基础理论与软件缺陷的介绍
  6. python3 自定义排序函数_Python自定义排序函数
  7. 腾讯2014年实习生招聘广州站offer经历(TEG-后台开发)
  8. 关于程序员心理幸福感调查问卷的邀请
  9. 韦乐平在信息港论坛上谈电信技术发展趋势
  10. java工程师技能以及大数据相关技术总结