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;将请求准确地转发到相应…

浅谈如何自我实现一个消息队列服务器(8)——编写客户端部分

文章目录 一、客户端部分涵盖3大核心类1.1、ConnectionFactory 类1.2、Connection 类1.3、Channel 类 二、3级类结构优势三、客户端实现逻辑3.1、ConnectionFactory3.1.1、ConnectionFactory类所含字段3.1.2、ConnectionFactory类所含方法 3.2、Connection3.2.1、Connection类所…

proxySQL 安装与配置

# 官网下载 https://www.proxysql.com/documentation/installing-proxysql/ > cd ~/Downloads # 使用 dpkg 命令来安装下载的 .deb 包 > sudo dpkg -i proxysql_2.6.2-debian12_amd64.deb # 如果 dpkg 命令报告缺少依赖关系或安装过程中遇到问题&#xff0c;可以尝试运…

MySQL-双主复制

mysql 双主复制&#xff1a; 实现和MHA&#xff08;高可用架构&#xff09;相同的效果。 使用keepalived实现先双主热备&#xff0c;防止单点故障的主从结构。 两台mysql互做主从&#xff0c;各自安装keepalived实现热备&#xff0c;其他从服务器和热备的虚拟IP建立主从连接mys…

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包 …

MySQL中获取指定日期区间内所有日期

在数据库应用开发中&#xff0c;经常需要根据给定的日期范围获取区间内的每一天日期&#xff0c;这对于统计分析、报表生成、任务调度等领域至关重要。MySQL作为广泛应用的关系型数据库管理系统&#xff0c;提供了丰富的日期函数和查询技巧来实现这一需求。本文将深入探讨如何在…

【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;作为国内极具代表性和特…

学习使用jQuery将光标移动到textarea的末尾

学习使用jQuery将光标移动到textarea的末尾 代码 代码 $(document).ready(function(){var textarea $(#your-qipa-id); // 替换为你的textarea IDtextarea.focus(); // 将焦点设置到textarea// 获取textarea的值的长度var len textarea.val().length;// 使用setSelectionRan…

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

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

intellij idea中build project与build module以及rebuild module的区别与联系

IntelliJ IDEA是一个功能强大的Java集成开发环境(IDE)。它提供了几个与构建相关的操作,包括: Build Project: - 这将构建整个项目,包括其中的所有模块。 - 它将编译所有已修改的源文件,并重新生成输出文件(如.class文件)。 - 这通常用于确保整个项目的代码是最新的,并且可以正…

Openssl X509证书从HexStream中解析

整体思路 从hex 转换成字节流 然后从字节流中进行解析 You have access to the raw certificate in memory. In the case that you have access to the raw encoding of the certificate in memory, you can parse it as follows. This is useful if you have stored raw cer…

【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;将捕到的数据用于后续应用研究。…