用单层感知器完成逻辑或运算的学习过程
用单层感知器完成逻辑或运算的学习过程
这道题目是我“认知科学”(专业必修/doge)课程的结课作业题之一,目的在于加深对单层感知器的理解,对于后续学习神经网络打下基础。
有关知识:
B站有关视频
单层感知器的学习过程比较简单,其主要目的在于对给出值域进行一个线性划分。主要步骤为:
- 初始化连接权值和阈值(一般为为零的较小随机数);
- 取样本域中数据作为输入,在每一条输入边上进行加权求和,t表示迭代次数;
input=∑i=1nwi(t)xi+bθ(t)input=\sum_{i=1}^n{w_i(t)x_i} + b\theta(t) input=i=1∑nwi(t)xi+bθ(t) - 将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)={10input≥0input<0 - 如果输出值和期望值相同则取下一组数据,回到 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) - 直至样本域中所有数据输出值与期望值相同。
这里要注意的是,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
通过可视化也可以验证(如下图)
如有错误还望指出!
用单层感知器完成逻辑或运算的学习过程相关推荐
- 单层感知器实现逻辑与运算
感知器是一个用来做模式识别最简单的模型,由于仅有一个神经元,所以只能用来处理线性可分的两类模式识别. 模型 w1 w2 w3 wn x1 x2 x3 xn ∑ b 激活函数f 输出y u = ∑ i ...
- 为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...
1单层感知器概述单层感知器(Single Layer Perceptron)是最简单的神经网络.它包含输入层和输出层,而输入层和输出层是直接相连的.单层感知器属于感知器中最简单的一种分类器,属于机器学 ...
- 神经网络算法-论证单层感知器的局限性
神经网络算法-论证单层感知器的局限性 今天课上学习了一个思路 将真值表转换到平面直角坐标系中 来论证线性可分还是不可分,挺有意思记录一下. 简单感知器模型实际上仍然是MP模型的结构,但是它通过采用监督 ...
- 从单层感知器到深度学习以及深度学习必知的框架
从单层感知器到深度学习以及深度学习必知的框架 一 单层神经网络(感知器) 1.结构 下面来说明感知器模型. 在原来MP模型的"输入"位置添加神经元节点,标志其为"输入单元 ...
- MP模型、单层感知器、多层感知器的理解
神经网络基础 序言 MP模型 1.逻辑与: 2.逻辑或: 3.逻辑异或: 单层感知器 多层感知器(BP) 序言 关于神经网络的内容已经学习了很多,也发现了一些问题,而这些问题是因为基础不牢靠引起的,所 ...
- 单层感知器线性分类、多层感知器非线性分类样例 调用matlab神经网络工具箱实现
%给定样本输入向量P,目标输出向量T %net = newp(PR,S,TF,LF) %PR为输入矢量的取值范围的最大值和最小值 S为神经元的个数 TF为网络的传递函数 默认为hardlim LF为网 ...
- 深度学习--TensorFlow (2)单层感知器2 -- 实现多数据分类
目录 一.基础理论 前向传递(得到输出y) 反向传递(更新权重w) 二.实现多数据分类 1.设置初始参数 2.训练 3.画图 3-1.画点 3-2.画线段 总代码 一.基础理论 这里只写公式,更加详细 ...
- 深度学习--TensorFlow (1)单层感知器1 -- 实现单数据训练
目录 一.基础理论 1.单词感知器介绍 2.单词感知器学习规则 前向传递(得到输出y) 反向传递(更新权重w) 二.实现单层感知器 1.初始参数设置 2.正向传播(得到输出y) 3. 反向传播(更新权 ...
- 深度学习(神经网络)[1]——单层感知器
深度学习(神经网络)[1] -- 单层感知器 算法描述 python实现 示例运行结果 可视化 算法描述 最原始的神经网络模型,类似于神经网络中的单个神经元,该算法局限性也很大,只适用于解决线性可分的 ...
最新文章
- python知识点:文件读写以及其他基础知识点
- 北大邮箱收件服务器,北京大学微电子学研究院邮件系统
- apache虚拟主机名不区分大小写的解决办法
- Oracle 空间查询, 数据类型为 sdo_geometry
- elementui 菜单标题_elementUI 动态渲染三级菜单
- Activiti中databaseSchemaUpdate属性取值
- JavaScript 三种创建对象的方法
- Unitils集成DBUnit的问题-解决方案
- PHP 执行系统命令函数
- python 字段_python字典查询
- 李明洋十讲学会ADS教学课程笔记
- Android飞机大战游戏报告,基于android的飞机大战游戏设计与开发.doc
- 关于“Threats to Validity”的介绍
- 【OR】ADMMRisk Parity Portfilio Model
- 一个女人努力工作的意义
- 关于时间time_t和tm的介绍(很详细)
- j-style pro android,三星J7 Pro官方安卓9台湾版固件rom包:BRI-J730GMDXU6CSF5
- 文件打开方式更改为原本的计算机程序
- 图扑软件数字孪生海上风电 | 向海图强,奋楫争先
- 提取视频音乐的简单方法