2. 感知机算法和简单 Python 实现

目录

1. 感知机介绍

1.1 背景

1.2 定义

1.2.1 权重

1.2.2 阈值

1.2.3 偏置

1.3 逻辑处理:与门、非门、或门

2. 感知机实现

2.1 与门的 Python 实现

2.2 非门的 Python 实现

2.3 或门的 Python 实现


1. 感知机介绍

1.1 背景

        感知机1957年由 Rosenblatt 提出,是神经网络与支持向量机的基础。它是最简单最基础的机器学习算法,可以用于处理最简单的二分类任务,并且模型和学习算法都十分简单。

1.2 定义

        感知机是具有输入和输出的算法。给定一个或者输入之后,将输出一个既定的值。

        感知机接收多个输入信号,输出一个信号。输入信号可以用 0 或者 1 表示,0 表示 “不传递信号”,1 表示 “传递信号”。从多个输入信号到一个输出信号,即感知机算法。

        最简单的感知机算法可以理解为 1 个输入信号 x,输出 y;算法即 y = x

1.2.1 权重

        前面说了,感知机能接收多个输入信号,但是多个输入信号在感知机那边的权重可能是不一样的,即同样的信号传到感知机,感知机处理的是不一样的。

        比如有 x1,x2 两个信号,则有对应的权重 w1,w2。

        y= w1 * x1+w2 * x2

1.2.2 阈值

        1.2.1 说了加上权重之后的感知机算法 “y= w1 * x1+w2 * x2”,事实上感知机并非简单的将输入信号合并,它绝大多数时候是按照阈值来输出 0 或 1 这个信号的。

        假设存在一个阈值 θ,那么

                        y={0 (w1 * x1+w2 * x2 ≤ θ)

                             1 (w1 * x1+w2 * x2 ​> θ)​

1.2.3 偏置

        事实上上述加了阈值的算法,还可以理解为如下表达方式,其中 b 即 - θ

                        y={0 ( w1 * x1+w2 * x2 +b ≤ 0)

                             1 ( w1 * x1+w2 * x2 ​+b > 0)​

        这时候 b 可以称之为偏置

1.3 逻辑处理:与门、与非门、或门

        相信大家都熟悉编程语言中的与、非、或三种最基本的逻辑关系,此处就不再赘述。感知机也可以用来处理这三种逻辑关系。

        与门:具有两个输入和一个输出的门电路,仅在两个输入信号都为 1 时候输出 1,其他输出 0

        与非门:即颠倒了与门的输出

        或门:只要两个输入信号有一个为 1,输出即为 1,其他输出 0

与门、与非门、或门的真值表达式
输入信号输出信号 y
x1x2与门与非门或门
100010
210011
301011
411101

2. 感知机实现

2.1 与门的 Python 实现

        下面是与门的 Python 实现。权重分别是 w1 0.1、w2 0.2;阈值即 0.7。

def AND(x1,x2):w1,w2,theta = 0.1,0.2,0.7tmp=w1*x1+w2*x2if(tmp<=theta):return(0)else:return(1)
print(AND(0,0))
print(AND(0,2))
print(AND(0,4))
print(AND(1,3))
print(AND(2,4))
print(AND(5,0))
print(AND(7,0))

 结果显示程序正确

2.2 非门的 Python 实现

        下面是非门的 Python 实现。权重分别是 w1 0.1、w2 0.2;偏置即 -0.7。

def NAND(x1,x2):w1,w2 = -0.1,-0.2w=np.array([w1,w2]) # 权重转换成 array 方便计算x=np.array([x1,x2]) # 输入信号转换成 array 方便计算b=0.7 #设置偏置tmp=np.sum(w*x)+bif(tmp<=0):return(0)else:return(1)
print(NAND(0,0))
print(NAND(0,2))
print(NAND(0,4))
print(NAND(1,3))
print(NAND(2,4))

结果显示程序正确

2.3 或门的 Python 实现

        或门的 Python 实现请大家自行实现,也许眼尖的同学已经发现了,与门、非门本质上代码是一致的,区别只是权重和偏置的值是正或者负了。

        代码实现

def  OR(x1,x2):w1,w2 = 0.1,0.2w=np.array([w1,w2]) # 权重转换成 array 方便计算,权重和 AND 不同x=np.array([x1,x2]) # 输入信号转换成 array 方便计算b=-0.7 #设置偏置,偏置和 AND 不同tmp=np.sum(w*x)+bif(tmp<=0):return(0)else:return(1)
print(OR(0,0))
print(OR(0,2))
print(OR(0,4))
print(OR(1,3))
print(OR(2,4))

'''

要是大家觉得写得还行,麻烦点个赞或者收藏吧,想给博客涨涨人气,非常感谢!

'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

09 - 函数调用

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 函数定义及调用1.1 自定义函数的语法1.2 make 解释器中的预定义函数1.2.1 预定义函数的调用1.2.2 问题1.2.3 本质分析 2. 示例代码 1. 函数定义及调用 makefile 中支持函数的概念 make 解释器提供了一系列的函数供 makefile 调…

资深测试必备技能!TestNG自动化测试框架实战详解

1、TestNG导言 在软件测试工作中&#xff0c;自动测试框架是不可或缺的&#xff0c;之前有Junit和Nunit框架&#xff0c;后有TestNG。TestNG不但吸取了Junit和Nunit框架的思想&#xff0c;而且创造了更强大的功能&#xff0c;它不但是单元测试框架&#xff0c;同时也是集成自动…

Nginx反向代理配置

一、介绍 Nginx 的反向代理功能在现代网络架构中扮演着至关重要的角色。首先&#xff0c;它充当了客户端与后端服务器之间的中介。当客户端发送请求时&#xff0c;这些请求先到达 Nginx 服务器&#xff0c;Nginx 会根据预先设定的规则和配置&#xff0c;将请求准确地转发到相应…

Linux下安装mysql8.0(以rpm包安装)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; Linux下安装mysql8.0&#xff08;以rpm包安装&#xff09;https://myweb.myskillstree.cn/125.html 目录 1、查操作系统信息 2、下载mysql 8.0.34的rpm包 …

【Anaconda 3 】Jupyter Notebook 的安装配置及使用

Jupyter Notebook 的安装配置及使用 一、引言 Jupyter Notebook 是一种交互式笔记本&#xff0c;它允许用户将代码、注释、方程式、可视化内容等整合到一个文档中&#xff0c;并支持多种编程语言&#xff0c;如 Python、R、Julia 等。它在数据科学、机器学习和教育领域中得到…

Goland GC

Goland GC 引用Go 1.3 mark and sweep 标记法Go 1.5 三色标记法屏障机制插入屏障删除写屏障总结 Go 1.8 混合写屏障(hybrid write barrier)机制总结 引用 https://zhuanlan.zhihu.com/p/675127867 Garbage Collection&#xff0c;缩写为GC&#xff0c;一种内存管理回收的机制…

条件平差——以水准网平差为例 (python详细过程版)

目录 一、原理概述二、案例分析三、代码实现四、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、原理概述 条件平差的函数模型和随机模型为: A V + W = 0

大模型时代,程序员如何卷?

最近在看电影《碟中谍7》&#xff0c;该片讲述了特工伊森亨特尝试与一个被称为智体的全能人工智能作战&#xff0c;其可以即时访问任何在线网络&#xff0c;他和他的团队成员试图找回控制人工智能智体所必需的两部分钥匙并将其摧毁的故事。 在剧中&#xff0c;智体是一个虚拟反…

文旅行业| 某景区导游培养和管理项目成功案例纪实

——整合导游资源并进行统一管理&#xff0c;构建完善的培养与管理机制&#xff0c;发挥景区导游价值 【客户行业】文旅行业&#xff1b;景区&#xff1b;文旅企业 【问题类型】人才培养&#xff1b;人员管理 【客户背景】 南方某5A级景区&#xff0c;作为国内极具代表性和特…

【python】python中的argparse模块,教你如何自定义命令行参数

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Pip】pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]解决方案

pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED] 大家好 我是寸铁&#x1f44a; 总结了一篇pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 报错 今天在安装第三方包时报错如下: 解决方案 本质上是需要指定信任的镜像…

开启异步线程的方法

1&#xff0c;开启异步线程&#xff0c;在启动类上加注解&#xff1a; 2&#xff0c;自定义线程池&#xff1a; Configuration public class PromotionConfig {Beanpublic Executor generateExchangeCodeExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExec…

搜维尔科技:【案例分享】Xsens用于工业制造艺术创新设计平台

用户名称&#xff1a;北京理工大学 主要产品&#xff1a;Xsens MVN Awinda惯性动作捕捉系统 在设计与艺术学院的某实验室内&#xff0c;通过Xsens惯性动作捕捉&#xff0c;对人体动作进行捕捉&#xff0c;得到人体三维运动数据&#xff0c;将捕到的数据用于后续应用研究。…

小心电子合同这个坑:手写签名图片

一、引言 在数字化浪潮的推动下&#xff0c;电子合同因其便捷性和高效性受到广泛应用。然而&#xff0c;在使用电子合同的过程中&#xff0c;一个看似简单的签名方式——手写签名图片&#xff0c;却可能带来意想不到的法律风险。本文将详细解析这一陷阱&#xff0c;并为大家提…

PMP证书好考吗?

PMP新考纲还颠覆了自己旧有的五大知识领域&#xff0c;将原来的五大过程组整合成新领域中过程的一部分&#xff0c;提出了新的商业环境、过程、人员三大知识领域。 最关键的是&#xff0c;在新考纲中明确写到&#xff1a; 重要注意事项。通过工作任务分析开展的研究证实&…

PX4FMU和PX4IO最底层启动过程分析(上)

PX4FMU和PX4IO最底层启动过程分析&#xff08;上&#xff09; 主处理器和协处理器的固件烧写和运行过程 PX4FMU&#xff1a;各种传感器数据读取、姿态解算、PWM控制量的计算、与PX4IO通信。负责飞控最主要的工作。 PX4IO&#xff08;STM32F103&#xff09;&#xff1a;为PIXHA…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

【电路笔记】-无源高通滤波器

无源高通滤波器 文章目录 无源高通滤波器1、概述2、一阶高通滤波器的频率响应3、高通滤波器示例4、二阶高通滤波器5、RC 差异化因素高通滤波器与低通滤波器电路完全相反,因为这两个组件已互换,滤波器输出信号现在从电阻器两端获取。 1、概述 由于低通滤波器只允许低于其截止…

Shell编程之循环语句

目录 1.for循环语句&#xff08;遍历循环&#xff09; 1.1 for语句的结构 1.2 for语句的执行流程 1.3 for语句应用示例 1.4 echo命令参数 2.while循环语句 2.1 while语句应用示例 2.2 通过while循环读取行内容 3.until 4.双重循环 4.1 双重循环案例 4.2 循环的退出 …

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前&#xff0c;首先要划分出二维码的区域&#xff0c;在本篇文章中将从零开始实现二维码分割的功能&#xff0c;并详细介绍用到的方法。 我们需要处理的图像如下&#xff1a; 完整代码 首先我们先放出完整代码&#xff0c;然后根据整个分割流程介绍用到…