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.rhkb.cn/news/327940.html

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

相关文章

【全开源】JAVA国际版多语言语聊大厅语音聊天APP系统源码

国际版多语言语聊大厅语音聊天APP系统&#xff1a;跨越语言的界限&#xff0c;连接世界的声音 在全球化日益加速的今天&#xff0c;语言不再是沟通的障碍。我们很高兴地宣布&#xff0c;全新的“国际版多语言语聊大厅语音聊天APP系统”已经正式上线&#xff0c;旨在为全球用户…

【千帆AppBuidler】零代码构建AI人工智能应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用

欢迎来到《小5讲堂》 这是《千帆平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景创建应用平台地址随机生成快速创建应用头像应用名称应用描述…

【基于element ui的color选择器】基于element ui的color选择器

技术版本如下&#xff1a; vue 2.6.14 less 3.13.1 element-ui 2.15.6 less-loader 5.0.0需求&#xff1a; 支持RGB、HEX编码、支持吸管吸取颜色、颜色选择器、颜色模板、透明度、色板、线性渐变颜色 效果图&#xff1a; 1.引入选择器的color-all文件 <template><…

[vue] nvm

nvm ls // 看安装的所有node.js的版本nvm list available // 查显示可以安装的所有node.js的版本可以在可选列表里。选择任意版本安装&#xff0c;比如安装16.15.0 执行&#xff1a; nvm install 16.15.0安装好了之后。可以执行&#xff1a; …

鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main ()

这应该是系列篇最难写的一篇&#xff0c;全是汇编代码&#xff0c;需大量的底层知识&#xff0c;涉及协处理器&#xff0c;内核镜像重定位&#xff0c;创建内核映射表&#xff0c;初始化 CPU 模式栈&#xff0c;热启动&#xff0c;到最后熟悉的 main() 。 内核入口 在链接文件…

FreeRTOS开发一、FreeRTOS移植

1、FreeRTOS 源码下载 两个下载链接&#xff0c; 一个是官网&#xff1a;http://www.freertos.org/&#xff0c; 另外一个是代码托管网站&#xff1a;https://sourceforge.net/projects/freertos/files/FreeRTOS/ 打开代码托管网站链接&#xff0c;我们选择FreeRTOS 的版本 V9…

全域运营平台是什么?优缺点有哪些?

当下&#xff0c;全域运营赛道逐渐兴盛&#xff0c;全域运营服务商的数量也开始呈现爆发趋势。在此背景下&#xff0c;很多人都对某些品牌的全域运营平台优缺点产生了浓厚的兴趣。由于小编只使用过微火全域运营平台&#xff0c;因此&#xff0c;本期会着重分析微火运营平台的优…

【软考】设计模式之桥接模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点7. 缺点8. java示例 1. 说明 1.将抽象部分与其实现部分分离&#xff0c;使它们都可以独立地变化。2.桥接模式&#xff08;Bridge Pattern&#xff09;属于对象结构型模式&#xff0c;又称为柄体&#xff08;Handle an…

Leetcode2105. 给植物浇水 II

Every day a Leetcode 题目来源&#xff1a;2105. 给植物浇水 II 解法1&#xff1a;双指针 设 Alice 当前下标为 i&#xff0c;初始化为 0&#xff0c;水量为 a&#xff0c;初始化为 capacityA&#xff1b;Bob 当前下标为 j&#xff0c;初始化为 n-1&#xff0c;水量为 b&am…

力扣98.验证二叉搜索树

法一&#xff08;自己思路&#xff0c;复杂了&#xff09;&#xff1a; from collections import dequeclass Solution(object):def isValidBST(self, root):""":type root: TreeNode:rtype: bool"""queue deque()if root.left!None:queue.app…

FOSS全闪对象存储--与AI/ML相向而行

行业解读需求剖析 目前&#xff0c;随着AI/ML技术得到了快速的发展及应用&#xff0c;AI/ML系统对底层高速数据访问的需求也日趋强烈&#xff0c;虽然当前业界有多种解决方案&#xff0c;但都存在一些成本或性能方面的挑战&#xff0c;就目前常用的文件存储系统来说&#xff0…

win10共享文件夹到ubuntu22

win10共享文件夹 新建用户 新建用户、设置密码。避免共享给EveryOne&#xff0c;导致隐私问题。 点击左下角的开始菜单&#xff0c;选择“设置”&#xff08;WinI&#xff09;打开设置窗口。在设置窗口中&#xff0c;搜索或直接点击“账户”进入账户设置。在账户设置中&…

机器学习中常用的几种距离——欧式、余弦等

目录 一、欧式距离&#xff08;L2距离&#xff09;二、曼哈顿距离&#xff08;L1距离&#xff09;三、汉明距离四、余弦相似度 一、欧式距离&#xff08;L2距离&#xff09; &#xff08;1&#xff09;二维空间的距离公式&#xff08;三维空间的在这个基础上类推&#xff09;&…

Windows本地部署直播录屏利器Bililive-go并实现远程添加直播间录屏

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. Bililive-go与套件下载1.1 获取ffmpeg1.2 获取Bililive-go1.3 配置套件 2. 本地运行测试3. 录屏…

基于单片机的光照检测系统—光敏电阻

基于单片机的光照检测系统 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.光敏电阻实时采集环境光照值&#xff1b; 2.采用ADC0804将模拟值转换为数字量&#xff1b; 3.四位数码管显示当前的光照…

Java JDK下载安装教程(2024年)

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

金士顿硬盘误删数据不用慌,这些恢复方法帮你忙

在数字化日益盛行的今天&#xff0c;硬盘作为存储数据的重要设备&#xff0c;其安全性与稳定性显得尤为关键。然而&#xff0c;即便是品质卓越的金士顿硬盘&#xff0c;也难免会遇到误删除数据的尴尬情况。面对这种情况&#xff0c;许多用户往往感到手足无措&#xff0c;甚至产…

LLM Agent智能体综述(万字长文)

前言 &#x1f3c6;&#x1f3c6;&#x1f3c6;在上一篇文章中&#xff0c;我们介绍了如何部署MetaGPT到本地&#xff0c;获取OpenAI API Key并配置其开发环境&#xff0c;并通过一个开发小组的多Agent案例感受了智能体的强大&#xff0c;在本文中&#xff0c;我们将对AI Agent…

Franz Electron + React 源码启动运行填坑指南

环境要求 安装miniconda python 环境electron/rebuild用得着&#xff0c;miniconda 默认自带的 python 是 3.11 版本&#xff0c;比较新&#xff1b; 安装virsual studio 2019 要把C桌面相关的都安装了&#xff0c;大概需要20G&#xff0c;不要安装到 C 盘&#xff0c;都安装到…

FlyFlow:支持驳回后自动跨节点跳回

本周更新 新增&#xff1a;审批节点驳回&#xff08;拒绝配置的驳回&#xff09;支持自动跳回当前节点新增&#xff1a;修改数据节点新增&#xff1a;删除数据节点新增&#xff1a;子流程支持配置自动跳过发起人节点优化&#xff1a;两个项目合并一个单体项目优化&#xff1a;…