图像处理与计算机视觉--第七章-神经网络-单层感知器
文章目录
- 1.单层感知器原理介绍
- 2.单层感知器算法流程
- 3.单层感知器算法实现
- 4.单层感知器效果展示
- 5.参考文章与致谢
1.单层感知器原理介绍
1.单层感知器是感知器中最简单的一种,有单个神经元组成的单层感知器只能用于解决线性可分的二分性问题2.在空间中如果输入的数据是可分的,感知器相当于将输入的数据在空间中分为两类,已经证明,如果线性可分则算法一定收敛。3.单层感知器是指只有一层处理单元的感知器,其中输入层没有处理数据的能力,输入层有n个神经元结点,每个结点接受一个输入信号xi,输入层与输出层之前有权重w,将每个结点组成的输入矩阵和权值矩阵相乘,得到一个数,将这个数作为净输入传递给神经元细胞,再将净输入代入神经元细胞的激活函数中,并且在神经元中还有一个外部偏置b,激活函数在这里一般采用符号函数,然后输出一个数。
下图是一个简单的感知器模型图:
在输出层的每一个节点上接受来自输入层的加权和作为输出层的净输入如下所示:
n e t j ′ = ∑ i = 1 n w i j x i \mathrm{net}_{j}^{\prime}=\sum_{i=1}^{n}w_{ij}x_{i} netj′=i=1∑nwijxi
输出的值由激活函数决定:
y = s g n ( ∑ i = 1 N ω i x i + b ) y=\mathrm{sgn}\Bigg(\sum_{i=1}^N\omega_ix_i+b\Bigg) y=sgn(i=1∑Nωixi+b)
2.单层感知器算法流程
单层感知器算法的流程如下所示:
算法注意事项:
1.L1为一类,L2为另一类,单层感知器只能解决二分类的一般问题。
2.beta表示学习率,它的值决定了误差对权值的影响大小,值不应该过大,以便为输入向量提供一个比较稳定的权值估计;值也不能过小,
3.收敛终止条件:1.当权值向量已经能正确实现分类时,算法就收敛终止。2.计算时收敛条件通常是:(1)理想值和计算得出的值得差小于一个提前的误差阈值。(2)权值两次变化的值小于一个提前设定的误差阈值。(3)设定一个最大迭代数M,达到这个值,即使没有完成,也必须收敛。
3.单层感知器算法实现
"""
@单层感知器的实现
created by ZhongYan Zeng
2023/10/9/14/09
"""
#单层感知器
import numpy as np
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
#2.更新函数
def update_weight(X,Y,W,beta,iteration):iteration=iteration+1y=np.dot(X,W)result_sgn=np.sign(y)w_delta=beta*((Y-result_sgn).dot(X))W=W+w_deltareturn W,iteration
#3.迭代求解过程
def sovle_iteration(X,d,w,beta,iteration,iteration_max):for i in range(iteration_max):w,iteration=update_weight(X,d,w,beta,iteration)print(w)print(iteration)result=np.sign(np.dot(X,w))if(result==d).all():print("完成")print("迭代次数:",iteration)breakreturn w,iteration
def draw_picture(w,iteration):k=-w[1]/w[2]b=-w[0]/w[2]print("斜率k=",k)print("截距b=",b)print("线性表达式:y={:.2f}x+{:.2f}".format(k,b))k=round(k,2)b=round(b,2)#可视化绘图x=[2,4,5]y=[3,3,8]fun_x=np.linspace(0,9,100)fun_y=k*fun_x+bplt.plot(fun_x,fun_y,color='r',label='y=1.{}x+{}'.format(k,b))plt.scatter(x[0:2],y[0:2],color='b')plt.scatter(x[2],y[2],color='y')plt.xlim(0,9)plt.ylim(0,15)plt.legend()plt.title("单层感知器分类结果图")plt.show()if __name__=='__main__':#1.定义参数和变量X=np.array([[1,2,3],[1,4,3],[1,5,8]])#第一项为偏置项1d=np.array([1,1,-1])#期望感知器分类结果beta=0.1#学习率为0.1iteration=0#迭代次数为0w=(np.random.random(3)-0.5)*2iteration_max=100w,iteration=sovle_iteration(X,d,w,beta,iteration,iteration_max)draw_picture(w,iteration)
4.单层感知器效果展示
5.参考文章与致谢
本章内容的完成离不开大佬文章的启发和帮助,在这里列出名单,如果对于内容还有不懂的,可以移步对应的文章进行进一步的理解分析。
1.单层感知器以及python实现:https://blog.csdn.net/qq_42633819/article/details/81588084
如果大家这这篇blog中有什么不明白的可以去他的专栏里面看看,内容非常全面,应该能够有比较好的解答。
在文章的最后再次表达由衷的感谢!!
相关文章:

图像处理与计算机视觉--第七章-神经网络-单层感知器
文章目录 1.单层感知器原理介绍2.单层感知器算法流程3.单层感知器算法实现4.单层感知器效果展示5.参考文章与致谢 1.单层感知器原理介绍 1.单层感知器是感知器中最简单的一种,有单个神经元组成的单层感知器只能用于解决线性可分的二分性问题2.在空间中如果输入的数据…...
pyserial,win11,串口总是被占用
之前哪里看到的忘记了,记录: win11,用pyserial这个库,打开COM后,程序退出,关闭串口,下次打开仍然会报错。每次都要拔串口线,很烦。 去设备管理器里,把usb串口线的驱动页…...
网站上线如何检查?
网站上线如何检查?很多企业搭建好网站之后,不知道如何检查网站,其实网站上线之后,要对网站的代码,网站的SEO细节,等重要因素检查,下面我们就来讲述一下企业优化网站建站、上线检查要求。 网站上线如何检查…...
如何理解pytorch中的“with torch.no_grad()”?
torch.no_grad()方法就像一个循环,其中循环中的每个张量都将requires_grad设置为False。这意味着,当前与当前计算图相连的具有梯度的张量现在与当前图分离了我们将不再能够计算关于该张量的梯度。直到张量在循环内,它才与当前图分离。一旦用梯…...

Linux虚拟机克隆之后使用ip addr无法获取ip地址
Linux虚拟机克隆之后使用ip addr无法获取ip地址 因为克隆得到的虚拟机,与原先的linux系统是一模一样的包括MAC地址和IP地址。需要修改信息。 设置IP地址: 使用vi命令打开linux的网卡 //ifcfg-enth0是虚拟网卡的名称,如果你的不叫这个名字&a…...

日报系统:优化能源行业管理与决策的利器
日报系统:优化能源行业管理与决策的利器 引言: 随着能源行业的快速发展和复杂性增加,管理各个部门的数据变得至关重要。为了提高运营效率和决策的准确性,能源行业普遍采用日报系统作为综合数据汇报和分析的工具。本文将探讨日报系…...
linux安装idea
下载好之后是.tar.gz文件后缀的 使用命令解压安装包 tar -zxvf 你的安装包 解压好了之后进入解压好的目录找到bin文件里的idea.sh,使用命令启动它 ./idea.sh 这样你就可以在manjaro上使用idea了 在这里插入图片描述 需要手动创建快捷启动方式 每次都使用命令行启动是比较…...

vue启动项目,npm run dev出现error:0308010C:digital envelope routines::unsupported
运行vue项目,npm run dev的时候出现不支持错误error:0308010C:digital envelope routines::unsupported。 在网上找了很多,大部分都是因为版本问题,修改环境之类的,原因是对的但是大多还是没能解决。经过摸索终于解决了。 方法如…...

vue-devtools插件安装
拓展程序连接 链接:https://pan.baidu.com/s/1tEyZJUCEK_PHPGhU_cu_MQ?pwdr2cj 提取码:r2cj 一、打开谷歌浏览器,点击扩展程序-管理扩展程序 二、打开开发者模式,将vue-devtools.crx 拖入页面,点击添加扩展程序 成…...
const关键字
目录 修饰指针 指向常量的指针*ptr 指针常量:数据类型 * const 指针变量 修饰引用 const &...

HTML5+CSS3+JS小实例:仿优酷视频轮播图
实例:仿优酷视频轮播图 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&quo…...
dart的Websocket为什么找不到onOpen方法?
我主要使用的是JAVA,而JAVA使用Websocket时,Websocket一定会有个onOpen方法。 ClientEndpoint public class WebsocketListener {OnOpenpublic void onOpen(Session session) throws IOException {}OnMessagepublic void onMessage(ByteBuffer byteBuff…...
VMware中Ubuntu(Linux)无法连接网络解决办法记录
问题: 操作系统:Ubuntu 22.04.3 LTS VMware 版本:VMware Workstation 17 Pro, 17.0.0 build-20800274今天在虚拟机用Ubuntu的时候,发现无法连接网络,如下: wdwd-virtual-machine:~$ ifconfig lo: flags73…...
js结合map对象等处理数组
cpp const INVENTORY_STATUS_MAP {7: { text: 全部 },0: { text: 出租, color: mary-green },1: { text: 已售, color: mary-green },2: { text: 丢失, color: mary-orange },3: { text: 闲置, color: mary-green },4: { text: 退役, color: mary-orange },5: { text: 售后, c…...

网络攻防实战演练
在经历了多年的攻防对抗之后,大量目标单位逐渐认识到安全防护的重要性。因此,他们已采取措施尽可能收敛资产暴露面,并加倍部署各种安全设备。但安全防护注重全面性,具有明显的短板... 1、供应链 在经历了多年的攻防对抗之后&…...
基于Keil a51汇编 —— 标准宏定义
定义标准宏 标准宏定义如下: macro-name MACRO <[>parameter-list<]> <[>LOCAL local-labels<]> . . . macro-body . . .ENDMmacro-name 宏的名称 parameter-list 可以传递给宏的形式参数的可选列表 LOAD_R0 MACRO R0_ValMOV R0, #R0_…...
遍历List集合
1.初始化 // 写法一 List<String> list new ArrayList<>(); list.add("a"); list.add("b"); list.add("c");// 写法二 List<String> list new ArrayList(){{add("a");add(&quo…...

k8s containerd查看镜像
直接查看crictl image会报错: 1) crictl config runtime-endpoint unix:///run/containerd/containerd.sock 2) vi /etc/crictl.yaml 3) systemctl daemon-reload 此时,再查看image:...
acwing.893. 集合-Nim游戏(博弈论sg函数模板)
给定 n� 堆石子以及一个由 k� 个不同正整数构成的数字集合 S�。 现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 S�,最后无法进行操作的人视…...

数据安全防护:云访问安全代理(CASB)
云访问安全代理(Cloud Access Security Broker,CASB),是一款面向应用的数据防护服务,基于免应用开发改造的配置方式,提供数据加密、数据脱敏功能。数据加密支持国密算法,提供面向服务侧的字段级…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...