神经网络初步学习——感知机
一、前言
神经网络,顾名思义,它与我们大脑生物学里面讲到的神经元有关联。前辈们在研究早期人工智能的时候,就开始过我们的“交叉融合”,他们思考能不能把我们的人工智能的学习模式改造成我们人脑中神经元之间的学习方式——于是乎,神经网络就诞生了
而我们的感知机就是我们神经网络中的基本单位,最早由弗兰克·罗森布拉特(Frank Rosenblatt)提出,但是很不幸的是,在当时那个年代,感知机没能获得较大成功,这里不过多介绍,但是感知机的出现,开创了神经网络的先河

那么我们将开始我们的神经网络学习之旅,一同揭开它神秘的面纱
二、什么是感知机
(1)类比
我们回想一下我们的神经元工作:当我们的刺激信号达到一定阈值过后,我们才能进行信号的传输(高中生物学),用图来表示即如下:

其中:
我们可以设定一个阈值,当我们的y大于这个阈值的时候,那么输出为1,反之则为0
(2)多输入情况
但是正常情况下,我们的神经网络不可能只有一个输入,感知机可以接收多个输入信号,输出一个信号,下面是两个输入的情况:

这个时候y的表达式为:
我们的阈值判断标准还是没变,可以用如下公式来说明:
(3)感知机的简单运用——与门
在数字电路的学习中,我们知道与门的工作原理,只有两个输入都为1时,我们的输出才为1,这时候我们的与门其实相当于一个感知机,两个输入,一个输出,那么我们可不可以来实现它呢?
Sure,我们只要设置合适的参数即可,这里我们用python代码来给大家展示一下:
def AND(x1, x2):w1, w2, theta = 0.5, 0.5, 0.7 #theta即我们设定的阈值tem = x1*w1 + x2*w2if(tem <= theta):return 0elif(tem > theta):return 1if __name__ == "__main__":a = AND(0,1)print(a)b = AND(1,1)print(b)
我们的输出结果如下:
结果是符合我们的预期的
此外,我们还可以将我们的代码写出如下形式,即利用我们的numpy中的功能,使得更加直观:
import numpy as npdef AND(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])y = np.sum(x*w)if(y < 1):return 0else:return 1if __name__ == "__main__":b = AND(1,1)print(b)
之后我们的代码也会写成这样,请注意
三、权重与偏置的引入
在上面的介绍中,我们有以下公式:
这里我们没有说明w是什么,在这里我们一般把w叫做权重
而我们在前面提到的,我们这里将其改写一下:
=
,那么我们的y可以写成这个样子:
我们把b叫做偏置。
那么就有同学要问了:为什么要改成这个样子啊?
——这样做有几个原因,最重要的是它使得我们的式子更加数学化(比如上面是不是与我们直线方程相对应?或者说与我们的线性代数是不是有关联?),在后面的研究中更加方便
这样我们上面的与门代码可以写成这个样子:
import numpy as npdef AND(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])b = -1y = np.sum(x*w) + bif(y < 0):return 0else:return 1if __name__ == "__main__":c = AND(1,1)print(c)
四、感知机的图解与局限
除了与门之外,我们的感知机还可以模拟我们的或门,与非门,这里不做展示,大家可以自己下来写一下代码
(1)图解:
那么我们再来看看我们这个式子:
我们主要看我们括号里面的东西,如果我们将x1、x2当作我们的x、y,那么这一个式子在数学上的含义表示的是一个直角坐标系(二维平面)的一个区间划分:

我们想一想我们的与门,总共我们可以输入4个不同的输入,对应的其实就是坐标系中的4个点:(0,0)(1,0)(0,1)(1,1),而我们的输出就只有0和1,那么由我们的权重还有偏置所设置的直线方程就将我们所有输出为1的点和所有为0的点分割开来了,如下图所示:
核心:一条线划分0和1
(2)局限
于是就会小伙伴想:那么异或门(XOR gate)可不可以呢?,即对于下面这张图,能不能用一条直线将我们的1与0分隔来:
聪明的你们有了答案:没有欸!——说明对于异或门来说,我们没法用我们的感知机来表示(单层感知机没法表示哦)
如果我们想要分隔开来,那么我们只能是用曲线的方式(非线性):
那么我们的感知机(单层)的缺陷就显示出来了:就在于它只能表示由一条直线分割的空间,没办法将我们的非线性空间表示出来。
五、多层感知机
(1)引入
存在缺陷,那么我们就要去改进或者更改
在数字电路的学习当中,我们知道我们的异或门可以写成如下形式:
或者是:
我们先来看看我们的第二种表达形式,与非门我们可以用之前的感知机表示出来,或门也同理,那么其实我们的异或门形式可以写成如下样子:
那么此时我们就发现,现在我们的感知机的层数变为了2层(也有的说是3层)这里,将最左边的 一列称为第0层,中间的一列称为第1层,最右边的一列称为第2层
(2)比较
对于单层感知机无法表示出来的东西,我们用多层感知机便可以很好地解决,通过加深层数,感知机能进行更加灵活的表示
补充:python相关知识
编者也是python初步,所以这一个板块主要对上面代码出现的一些知识点进行简单的讲解,读者可以忽略本部分:
(1)引入numpy的好处
相比于我们不用这个方法来创建我们的矩阵(一维或者多维),我们借助这个numpy可以很好地实现我们的矩阵之间的运算,例如我们之前写的代码中:
x = np.array([x1, x2])w = np.array([0.5, 0.5])b = -1y = np.sum(x*w) + b
np.sum(x*w),这个方法就可以实现两个一维矩阵之间对应元素相乘
部分内容转载自:《深度学习入门:基于Python的理论与实现》(斋藤康毅)
相关文章:
神经网络初步学习——感知机
一、前言 神经网络,顾名思义,它与我们大脑生物学里面讲到的神经元有关联。前辈们在研究早期人工智能的时候,就开始过我们的“交叉融合”,他们思考能不能把我们的人工智能的学习模式改造成我们人脑中神经元之间的学习方式——于是乎…...
在Text-to-SQL任务中应用过程奖励模型
论文标题 Reward-SQL: Boosting Text-to-SQL via Stepwise Reasoning and Process-Supervised Rewards 论文地址 https://arxiv.org/pdf/2505.04671 代码地址 https://github.com/ruc-datalab/RewardSQL 作者背景 中国人民大学,香港科技大学广州,阿…...
Python的安装使用
一、下载Python安装包 下载python安装包,可以直接访问官网地址:https://www.python.org/downloads/ 通过页面咱们直接下载最新版本的python安装包即可,python3.13.3。在页面的下方也可下载安装之前的版本,目前咱们按最新版本安装…...
mapreduce-wordcount程序2
WordCount案例分析 给定一个路径,统计这个路径下所有的文件中的每一个单词的出现次数。 其中,需要我们去实现代码的部分是:map函数和reduce函数。它们各自的作用是: map函数的入参是kv结构,k是偏移量,v是一…...
Java 内存模型(JMM)与内存屏障:原理、实践与性能权衡
Java 内存模型(JMM)与内存屏障:原理、实践与性能权衡 在多线程高并发时代,Java 内存模型(JMM) 及其背后的内存屏障机制,是保障并发程序正确性与性能的基石。本文将系统梳理 JMM 的核心原理、内…...
1.6 偏导数
(铺垫)全导数与偏导数看似相似,实则对应不同维度的变化观察。理解它们的差异需要从"变量自由度"切入: (核心差异解剖) 维度偏导数全导数变量关系其他变量被强制锁定所有变量都通过中间变量关联…...
网络爬虫学习之正则表达式
开篇 本文整理自《python3 网络爬虫开发实战》的学习笔记。 笔记整理 match match是一种常用的匹配方法,向它传入要匹配的字符串以及正则表达式,就可以检测这个正则表达式是否和字符串相匹配。 match会尝试从字符串的起始位置开始匹配正则表达式&#x…...
Pytorch常用统计和矩阵运算
文章目录 常用统计函数torch.prod()求积torch.sum()求和torch.mean()求均值torch.max()求最值torch.var() 方差torch.std()标准差 常见矩阵运算矩阵乘法点积 (torch.dot)批量矩阵乘法 (torch.bmm)奇异值分解 (SVD)特征分解 (torch.eig)矩阵求逆 (torch.inverse)伪逆 (torch.pin…...
PyTorch Lightning实战 - 训练 MNIST 数据集
MNIST with PyTorch Lightning 利用 PyTorch Lightning 训练 MNIST 数据。验证梯度范数、学习率、优化器对训练的影响。 pip show lightning Version: 2.5.1.post0Fast dev run DATASET_DIR"/repos/datasets" python mnist_pl.py --output_grad_norm --fast_dev_run…...
内存泄漏系列专题分析之十一:高通相机CamX ION/dmabuf内存管理机制Camx ImageBuffer原理
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:内存泄漏系列专题分析之八:高通相机CamX内存泄漏&内存占用分析--通用ION(dmabuf)内存拆解 这一篇我们开始讲: 内存泄漏系列专题分析之十一:高通相机CamX ION/dmabuf内存管理机制Camx ImageBuf…...
MySQL-逻辑架构
MySQL服务器逻辑架构图 主要分层结构 1.连接层 功能:处理连接、安全认证、线程管理等 核心模块:连接器:支持不同语言(JDBC)与MySQL交互;线程连接池:管理线程连接,减少线程频繁创建…...
架构思维:通用架构模式_系统监控的设计
文章目录 引言什么是监控三大常见监控类型1. 次数监控2. 性能监控3. 可用率监控 落地监控1. 服务入口2. 服务内部3. 服务依赖 监控时间间隔的取舍小结 引言 架构思维:通用架构模式_从设计到代码构建稳如磐石的系统 架构思维:通用架构模式_稳如老狗的SDK…...
架构、构架、结构、框架之间有什么区别?|系统设计|系统建模
在技术与知识中,我们总是频繁地遇到一些高度抽象、看似类似、却又各自承载着不同思想重量的词汇。“架构”、“构架”、“结构”、“框架”即是其中最为常见又最为令人困惑的一组术语。它们既是工程师们日常工作的核心语言,也是学者们在探索系统、组织、…...
系统架构设计(五):构件
定义 构件(Component)是指一个具有明确边界和独立部署能力的模块化单元,能够封装实现细节,并通过接口与其他构件协作完成系统功能。 主要特性 特性说明可复用性构件可以在不同系统中被重复使用。可部署性构件可以独立部署&…...
【系统架构师】2025论文《基于架构的软件设计方法》【最新】
😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文分享【系统架构师】2025论文《系统可靠性设计》,期待与你一同探索、学习、进步,一起卷起来叭! 目录 项目介绍背景介绍系统模块技术栈基于…...
MultiTTS 1.7.6 | 最强离线语音引擎,提供多音色无障碍朗读功能,附带语音包
MultiTTS是一款免费且支持离线使用的文本转语音(TTS)工具,旨在为用户提供丰富的语音包选项,实现多音色无障碍朗读功能。这款应用程序特别适合用于阅读软件中的离线听书体验,提供了多样化的语音选择,使得听书…...
Costmap代价地图
以下为ROS navigation导航工具包的move_base框架图。其中有两个关于代价地图的模块(红框所框),全局代价地图global_costmap和局部代价地图local_costmap,这两个代价地图实际上是调用的同一个功能包代码,通过配置不同的参数实例化为两个代价地…...
用生活例子通俗理解 Python OOP 四大特性
让我们用最生活化的方式,结合Python代码,来理解面向对象编程的四大特性。 1. 封装:像使用自动售货机 生活比喻: 你只需要投币、按按钮,就能拿到饮料 不需要知道机器内部如何计算找零、如何运送饮料 如果直接打开机…...
大规模容器集群怎么规划
规划大规模容器集群需要综合考虑多个方面,以下是一些关键的规划要点: 业务需求分析 应用类型和特点:明确容器集群上运行的应用类型,如 Web 应用、数据库、大数据处理等。不同类型的应用对资源的需求和性能要求各不相同。例如&am…...
机器学习第七讲:概率统计 → 预测可能性,下雨概率70%就是典型应用
机器学习第七讲:概率统计 → 预测可能性,下雨概率70%就是典型应用 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手…...
蓝桥杯13届 卡牌
问题描述 这天, 小明在整理他的卡牌。 他一共有 n 种卡牌, 第 i 种卡牌上印有正整数数 i(i∈[1,n]), 且第 i 种卡牌 现有 ai 张。 而如果有 n 张卡牌, 其中每种卡牌各一张, 那么这 n 张卡牌可以被称为一 套牌。小明为了凑出尽可能多套牌, 拿出了 m 张空白牌, 他可以在上面…...
《Vue.js》阅读之响应式数据与副作用函数
Vue.js 《Vue.js设计与实现》(霍春阳) 适合:从零手写Vue3响应式系统,大厂面试源码题直接覆盖。重点章节:第4章(响应式)、第5章(渲染器)、第8章(编译器&…...
线下消费经济“举步维艰”,开源AI智能名片链动2+1+S2B2C小程序线上“狂飙突进”!
开源AI智能名片链动21模式S2B2C商城小程序:驱动消费经济迭代的数字化引擎 摘要:本文以中国消费经济四阶段演进为框架,分析开源AI智能名片链动21模式S2B2C商城小程序如何重构商业生态。研究显示,该系统通过AI算法驱动的精准需求匹…...
简述DNS域名服务器
DNS简述 在互联网中,识别一个主机通常有两种方式——主机名和IP地址。从人类角度来看,人类肯定更喜欢这些便于记忆的主机名标识方式,而对于路由器来说,路由器则更喜欢定长的,有结构层次的IP地址。所以DNS域名服务器就…...
小结: Port Security,DHCP Snooping,IPSG,DAI,
以下是华为和思科在 IP Source Guard、Dynamic ARP Inspection、DHCP Snooping、Port Security 四个安全功能的配置指令对比: 1. Port Security(端口安全) 思科(Cisco) # 进入接口模式 interface GigabitEthernet0/1…...
2025年阿里云ACP人工智能高级工程师认证模拟试题(附答案解析)
这篇文章的内容是阿里云ACP人工智能高级工程师认证考试的模拟试题。 所有模拟试题由AI自动生成,主要为了练习和巩固知识,并非所谓的 “题库”,考试中如果出现同样试题那真是纯属巧合。 1、在PAl-Studio实验运行完毕后,可以右键单…...
SwitchyOmega_Chromium 代理插件下载与配置
下载地址: 【免费】SwitchyOmega-Chromium.ran资源-CSDN文库 下载 SwitchyOmega_Chromium.ran 文件。 解压缩文件 解压第一层后,解压第二层代理插件SwitchyOmega_Chromium。 打开 Chromium 浏览器。 导入插件: 在浏览器地址栏输入 chrome://extensio…...
【Nova UI】十四、打造组件库之按钮组件(下):按钮组组件的构建之旅
序言 在之前的探索中,我们成功雕琢出了功能完备且样式精美的 Vue 按钮组件,它在前端界面上绽放着独特的光彩✨。然而,前端开发的创新之路永无止境。如今,为了满足更丰富的交互需求,我们将目光聚焦在按钮组组件的实现上…...
SQL注入
sql注入核心语句 information_schema 虚拟数据库(物理上不存在),能提供方皓文数据库元数据的方式,元数据是关于数据的数据,如数据库名、表名、列的数据类型、访问权限等 只能访问 information_schema下面的表: schemata表…...
Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
Java面试高阶篇:Spring BootQuarkusRedis高并发架构设计与性能优化实战 面试官(严肃): Q1: 你项目中如何实现高并发下的缓存优化? 候选人(水货): 我们用了Redis做缓存,…...
【CF】Day57——Codeforces Round 955 (Div. 2, with prizes from NEAR!) BCD
B. Collatz Conjecture 题目: 思路: 简单模拟 很简单的模拟,我们只需要快速的找到下一个离 x 最近的 y 的倍数即可(要大于 x) 这里我们可以这样写 add y - (x % y),这样就知道如果 x 要变成 y 的倍数还要…...
Matlab 列车纵向滑模二阶自抗扰算法和PID对比
1、内容简介 Matlab 223-列车纵向滑模二阶自抗扰算法和PID对比 可以交流、咨询、答疑 2、内容说明 略 列车模型 在运行过程中,已知列车受到牵引力或者制动力,基本阻力和附加阻力的作用,规定与列车运行方向相同的力为正,与运行…...
Swift实战:如何优雅地从二叉搜索树中挑出最接近的K个值
文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结未来展望 摘要 在日常开发中,我们经常会遇到“在一堆数据中找出最接近某个值”的需求。尤其在搜索引擎、推荐系统或者地理坐标匹配中,这种“最近匹配”的问题非常常见。Le…...
深度策略梯度算法PPO
一、策略梯度核心思想和原理 从时序差分算法Q学习到深度Q网络,这些算法都侧重于学习和优化价值函数,属于基于价值的强化学习算法(Value-based)。 1. 基于策略方法的主要思想(Policy-based) 基于价值类方…...
QuickList
Redis在3.2版本引入数据结构,是一个双端链表,每个节点都是一个ZipList。 引入的原因:ZipList申请内存空间是连续的,如果内存占用较多,申请内存效率很低 思想:属于分片存储的思想 Redis配置项:…...
DVWA在线靶场-SQL注入部分
目录 1.SQL注入 1.1 low 1.2 Medium 1.3 high 1.4 impossible 1. SQL盲注 1.1 low 2.2 medium 2.3 high 2.4 impossible 1.SQL注入 显注:前端页面可以回显用户信息,比如 联合注入、报错注入。 盲注:前端页面不能回显用户信息,比…...
IDEA+git将分支合并到主分支、IDEA合并分支
文章目录 一、合并分支二、可能遇到的问题2.1、代码冲突 开发过程中我们可能在开发分支(dev)中进行开发,等上线后将代码合并到主分支(master)中,本文讲解如何在IDEA中将dev分支的代码合并到master分支中。 一、合并分支 功能说明:将dev分支的…...
【Linux笔记】——进程信号的产生
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux笔记】进程间通信——system v 共享内存 🔖流水不争,争的是滔滔不 一、进程信号…...
Java后端文件类型检测(防伪造)
在 Spring Boot 项目中,为了防止用户伪造 Content-Type(例如将 .txt 文件改为 image/jpeg 上传),可以通过检查文件的 Magic Number(文件头签名)来验证文件的真实类型。以下是 详细实现步骤 和 完整代码示例…...
知名人工智能AI培训公开课内训课程培训师培训老师专家咨询顾问唐兴通AI在金融零售制造业医药服务业创新实践应用
AI赋能未来工作:引爆效率与价值创造的实战营 AI驱动的工作革命:从效率提升到价值共创 培训时长: 本课程不仅是AI工具的操作指南,更是面向未来的工作方式升级罗盘。旨在帮助学员系统掌握AI(特别是生成式AI/大语言模型…...
VUE3基础样式调整学习经验
首先创建一个vue项目最好要把不属于自己的样式都删除掉,以面出现css难以调整的情况: 1.assets目录下的main.css、base.css等样式全部删除 2.app.vue下的样式也全部删除 3.使用element plus一定要加入样式包: import element-plus/dist/in…...
AI与IoT携手,精准农业未来已来
AIoT:农业领域的变革先锋 在科技飞速发展的当下,人工智能(AI)与物联网(IoT)的融合 ——AIoT,正逐渐成为推动各行业变革的关键力量,农业领域也不例外。AIoT 技术通过将 AI 的智能分析能力与 IoT 的设备互联能力相结合,为农业生产带来了前所未有的精准度和智能化水平。 …...
物联网驱动的共享充电站系统:智能充电的实现原理与技术解析!
随着新能源汽车的快速普及,共享充电站系统作为其核心基础设施,正通过物联网技术的深度赋能,实现从“传统充电”到“智能充电”的跨越式升级。本文将从系统架构、核心技术、优化策略及实际案例等角度,解析物联网如何驱动共享充电站…...
MCP 入门实战:用 C# 开启 AI 新篇章
MCP 入门实战:用 C# 开启 AI 新篇章 一、什么是 MCP? MCP,全称为 Model Context Protocol(模型上下文协议),是一个开放的协议,它为应用程序向大型语言模型(LLM)提供上下…...
ES常识7:ES8.X集群允许4个 master 节点吗
在 Elasticsearch(ES)中,4 个 Master 节点的集群可以运行,但存在稳定性风险,且不符合官方推荐的最佳实践。以下从选举机制、故障容错、资源消耗三个维度详细分析: 一、4 个 Master 节点的可行性࿱…...
WebRTC:去中心化网络P2P框架解析
在互联网的世界里,数据的传输就像一场永不停歇的 “信息快递”。当我们使用 WebRTC 实现视频通话时,背后支撑的网络框架至关重要。今天,我们将深入探索 WebRTC 开发中视频通话的前置基础 ——P2P(点对点)框架ÿ…...
Linux 上安装RabbitMQ
🐇 安装 Erlang/OTP 27.3.4(最新稳定版) 1. 下载 Erlang 源码 cd /usr/local/src wget https://erlang.org/download/otp_src_27.3.4.tar.gz2. 解压源码 tar -zxvf otp_src_27.3.4.tar.gz cd otp_src_27.3.43. 安装依赖 sudo apt update …...
Service Mesh实战之Istio
Service Mesh(服务网格)是一种专为微服务架构设计的网络代理层,用于处理服务间的通信、管理和监控。Istio 是一个流行的开源 Service Mesh 实现,通过提供流量管理、观测性和安全性等功能,帮助开发者应对分布式系统的复…...
BGP练习
一、要求拓扑图 二、要求 完成上图内容,要求五台路由器的环回地址均可以相互访问 三、需求分析 1. 网络连通性目标 - 需求明确要求五台路由器(AR1 - AR5 )的环回地址能够相互访问。环回地址是路由器上用于测试、管理及作为BGP等协议中Ro…...
【Redis】分布式锁的实现
目录 一、本地锁存在的问题 二、redis实现分布式锁原理 三、使用示例 四、锁误删问题 解决思路 获取锁和释放锁代码优化 五、锁释放的原子性问题 解决思路(Lua脚本) 使用流程 总结 大家好,我是千语。上期给大家讲了使用悲观锁来解决…...