从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(上)

文章目录

  • 引言
  • 第一章:感知机是什么
  • 第二章:简单逻辑电路
  • 第三章:感知机的实现
    • 3.1 简单的与门实现
    • 3.2 导入权重和偏置
    • 3.3 使用权重和偏置的实现
      • 实现与门
      • 实现与非门和或门

文章文上下两节

  • 从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(上)
  • 从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(下)

引言

在本章中,我们将深入探讨感知机,这是一个由美国学者Frank Rosenblatt于1957年提出的算法。尽管感知机的概念历史悠久,但它仍然在现代计算和机器学习领域占据着基础性的重要地位。感知机不仅是神经网络和深度学习的原型,而且其设计原理和运作机制为理解更复杂的神经网络模型提供了关键的基础。通过介绍感知机的基本构造和功能,以及如何利用它来解决一些简单的逻辑问题,帮助读者建立对这一经典算法的初步理解。通过学习感知机,我们可以更好地洞察神经网络的核心思想和深度学习的基础结构,为进一步的学习和研究奠定坚实的基础。

第一章:感知机是什么

感知机是一种基本的人工神经网络,被设计成能模拟人类神经元的基本功能。它接收多个输入信号,这些信号可以被想象为具有"流动性"的东西,如电流或数据流。在感知机中,这些输入信号经过加权后,如果加权和超过了某个阈值,则输出一个信号。这种输出通常是二进制的,即"流/不流"(1/0)的形式。

下图展示了一个包含两个输入的基本感知机模型。输入 x 1 x_1 x1 x 2 x_2 x2 通过各自的权重 w 1 w_1 w1 w 2 w_2 w2 与输出 y y y 相连。这些权重决定了各自输入对输出的贡献。在感知机中,这些输入信号被加权和计算,并与一个固定的阈值 θ \theta θ 比较,这个比较的结果决定输出 y y y 的状态。

在这里插入图片描述

感知机的行为可以通过以下数学公式来表示:
y = { 0 if  ( w 1 x 1 + w 2 x 2 ≤ θ ) 1 if  ( w 1 x 1 + w 2 x 2 > θ ) y = \begin{cases} 0 & \text{if } (w_1 x_1 + w_2 x_2 \leq \theta) \\ 1 & \text{if } (w_1 x_1 + w_2 x_2 > \theta) \end{cases} y={01if (w1x1+w2x2θ)if (w1x1+w2x2>θ)
在这个模型中,权重 w 1 w_1 w1 w 2 w_2 w2 控制着输入信号的重要性,而阈值 θ \theta θ 则是决定神经元是否被激活的界限。权重的作用类似于电流中的电阻,它们不仅控制信号的强度,还影响信号是否足以触发输出。这种机制使得感知机能够在给定的输入下做出二进制决策。

第二章:简单逻辑电路

在本章中,我们将探讨如何使用感知机来实现几种基本的逻辑电路:与门(AND gate)、与非门(NAND gate)和或门(OR gate)。这些逻辑电路是数字电子中的基本组件,感知机通过简单的权重和阈值调整,能够模拟这些逻辑操作。

与门

与门是一种基本的逻辑电路,要求所有输入都为1时,输出才为1。

在这里插入图片描述

考虑一个简单的感知机模型,我们可以通过设置适当的权重和阈值来实现与门的功能。例如,设定权重 w 1 w_1 w1 w 2 w_2 w2 为0.5,并设置阈值 θ \theta θ 为0.7。在这种情况下,只有当两个输入 x 1 x_1 x1 x 2 x_2 x2 同时为1时,加权和 0.5 × 1 + 0.5 × 1 = 1.0 0.5 \times 1 + 0.5 \times 1 = 1.0 0.5×1+0.5×1=1.0 才会超过阈值0.7,从而输出1。对于其他任何输入组合,输出将为0。

与非门

与非门(NAND gate)是与门的逻辑相反:只有当所有输入都为1时,输出才为0;其他情况下输出为1。通过简单地取反与门的参数设置,我们可以实现与非门。

在这里插入图片描述

例如,将与门参数的符号取反,设置 w 1 w_1 w1 w 2 w_2 w2 为-0.5,阈值 θ \theta θ 为-0.7。这样,只有当两个输入 x 1 x_1 x1 x 2 x_2 x2 同时为1,加权和 − 0.5 × 1 − 0.5 × 1 = − 1.0 -0.5 \times 1 - 0.5 \times 1 = -1.0 0.5×10.5×1=1.0 才不超过阈值-0.7,输出为0。在所有其他情况下,输出为1。

或门

或门是另一种基本逻辑电路,要求至少一个输入为1时,输出就为1。

在这里插入图片描述

为了使用感知机实现或门,可以设置较低的阈值,例如 θ \theta θ 为0.5,同时提高权重 w 1 w_1 w1 w 2 w_2 w2 至1.0。这样,任何一个输入为1就足以使加权和超过阈值,从而输出为1。

总结

通过适当设置权重和阈值,单个感知机就能模拟基本的逻辑电路功能。这表明感知机不仅仅是一个简单的分类器,还能执行基本的逻辑运算。这种能力使得感知机成为研究人工智能和计算机科学中逻辑处理的有用工具。我们使用的方法展示了如何通过调整参数,让简单的模型执行多种逻辑任务,类似于演员在不同角色间转换。这种灵活性是感知机在实现复杂功能时的重要基础。

第三章:感知机的实现

下面使用Python来实现基本的逻辑门感知机,从而进一步理解感知机的工作原理。我们将首先实现一个简单的与门(AND gate),然后扩展到与非门(NAND gate)和或门(OR gate),展示如何通过修改参数来调整感知机的行为。

3.1 简单的与门实现

让我们开始实现一个基本的与门。我们将定义一个接收两个参数x1和x2的函数,并使用固定的权重和阈值来判断输出:

def AND(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1 * w1 + x2 * w2
    if tmp <= theta:
        return 0
    else:
        return 1

这个函数使用了简单的条件判断来模拟感知机的阈值激活特性。下面是测试这个函数的代码,用以确认其表现符合与门的真值表:

print(AND(0, 0))  # 输出 0
print(AND(1, 0))  # 输出 0
print(AND(0, 1))  # 输出 0
print(AND(1, 1))  # 输出 1

3.2 导入权重和偏置

在之前的实现中,我们使用了阈值 θ \theta θ 来控制感知机的激活。为了更接近现代神经网络的实现方式,我们将修改感知机的定义,使用偏置 b b b 替代阈值,从而采用更通用的形式。这种修改不仅有助于理解感知机的行为,还能更好地与其他机器学习模型进行对比。

将原来的阈值 θ \theta θ 转换为偏置 b b b,感知机的行为可以用下面的数学公式表示:
y = { 0 if  ( b + w 1 x 1 + w 2 x 2 ≤ 0 ) 1 if  ( b + w 1 x 1 + w 2 x 2 > 0 ) y = \begin{cases} 0 & \text{if } (b + w_1 x_1 + w_2 x_2 \leq 0) \\ 1 & \text{if } (b + w_1 x_1 + w_2 x_2 > 0) \end{cases} y={01if (b+w1x1+w2x20)if (b+w1x1+w2x2>0)
此处, b b b 称为偏置,而 w 1 w_1 w1 w 2 w_2 w2 继续作为权重。感知机将计算输入信号和权重的乘积和,加上偏置后,根据结果是否大于零来确定输出。

接下来,我们将使用 Python 和 NumPy 库来实现这一修改后的感知机模型。首先,我们定义感知机的权重和偏置,然后使用这些参数计算输出:

import numpy as np

# 定义输入
x = np.array([0, 1])

# 权重和偏置
w = np.array([0.5, 0.5])
b = -0.7

# 计算加权输入和偏置的总和
weighted_sum = np.sum(w * x) + b

# 输出结果 -0.2
print("Output:", 1 if weighted_sum > 0 else 0)

在这个例子中,我们首先将权重与输入相乘,然后加上偏置。这个总和决定了感知机的输出。

3.3 使用权重和偏置的实现

实现与门

与门要求所有输入都为1时,输出才为1。通过调整权重和偏置,我们可以如下实现与门:

def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w * x) + b
    if tmp <= 0:
       return 0
    else:
       return 1

在这里,偏置 b b b 被设置为 − 0.7 -0.7 0.7,而权重 w 1 w_1 w1 w 2 w_2 w2 都是 0.5 0.5 0.5。这意味着只有当两个输入都为1时,感知机的输出才为1。偏置 b b b 和权重 w 1 w_1 w1, w 2 w_2 w2 的作用是不同的。权重控制输入信号的重要性,而偏置则调节神经元被激活的难易度。例如,如果 b b b − 0.1 -0.1 0.1,则相对较容易激活神经元;若 b b b − 20.0 -20.0 20.0,则需要更大的输入信号总和才能激活神经元。

实现与非门和或门

与非门和或门的实现也采用了类似的方法,只是权重和偏置有所不同:

def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])  # 权重与AND门相反
    b = 0.7
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.2
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

在这些实现中,与门、与非门和或门的构造基本相同,区别仅在于权重和偏置的设置。这种方法展示了如何通过简单的参数调整,让感知机执行不同的逻辑功能。


下一节:从简单逻辑到复杂计算:感知机的进化与其在现代深度学习和人工智能中的应用(下)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信公众号 点击显示答案 操作步骤

1、右键进入检查模式 2、ctrlf查找html元素 3、添加答案区域代码 添加答案区域代码后&#xff0c;可以直接在页面进行格式调整 <!-- 此处height控制显示区域高度 --> <section style"height: 1500px;overflow-x: hidden;overflow-y: auto;text-align: center;b…

博客网站SpringBoot+Vue项目练习

博客网站SpringBootVue简单案例 前言 学了vue后一直没用找到应用的机会&#xff0c;在Github上找到了一个看起来比较友好的项目&#xff08;其实具体代码我还没看过&#xff09;。而且这个项目作者的readme文档写的也算是比较好的了。 项目链接&#xff1a;https://github.c…

基于 Linux 自建怀旧游戏之 - 80 款 H5 精品小游戏合集

1&#xff09;简介 最近又找到了一款宝藏游戏资源分享给大家&#xff0c;包含 80 款 H5 精品小游戏&#xff0c;都是非常有趣味耐玩的游戏&#xff0c;比如 植物大战僵尸、捕鱼达人、贪吃蛇、俄罗斯方块、斗地主、坦克大战、双人五子棋、中国象棋 等等超级好玩的 H5 小游戏&…

ai续写软件哪个好?盘点3款经典好用的!

随着科技的不断发展&#xff0c;AI续写软件逐渐成为了许多内容创作者、学生、研究人员等的得力助手。这类软件能够通过机器学习和自然语言处理技术&#xff0c;为用户提供高质量的文本续写服务。但市场上众多的AI续写软件让人眼花缭乱&#xff0c;那么&#xff0c;究竟哪款AI续…

0506_IO1

思维导图&#xff1a; 练习&#xff1a; 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; }; 申请该结构体数组&#xff0c;容量为…

AVL树浅谈

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;本篇文章给大家介绍AVL树。 基本概念 AVL树&#xff08;Adelson-Velsky和Landis树&#xff09;是一种自平衡的二叉搜索树&#xff0c;得名于其发明者G. M. Adelson-Velsky和E. M. Landis。在AVL树中&#xff0c;任何节点的…

活动回放 | 如何进行全增量一体的异构数据库实时同步

以 AI领域为代表的新技术不断涌现&#xff0c;新的应用风口也逐渐清晰。为了加紧跟上技术发展的步伐&#xff0c;越来越多的企业开始着手&#xff0c;对仍以传统关系型数据库为主的应用后端进行现代化升级。 这就涉及到如何在不影响并保持现有业务系统正常运转的前提下&#xf…

专注 APT 攻击与防御—基于UDP发现内网存活主机

UDP简介&#xff1a; UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接的协议&#xff0c;在第四层-传输层&#xff0c;处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点&#xff0c;也就是说&#xff0c;当报文发送之后&#xf…

Android 状态栏WiFi图标的显示逻辑

1. 状态栏信号图标 1.1 WIFI信号显示 WIFI信号在状态栏的显示如下图所示 当WiFi状态为关闭时&#xff0c;状态栏不会有任何显示。当WiFi状态打开时&#xff0c;会如上图所示&#xff0c;左侧表示有可用WiFi&#xff0c;右侧表示当前WiFi打开但未连接。 当WiFi状态连接时&#x…

SpringBoot整合rabbitmq使用案例

RocketMQ&#xff08;二十四&#xff09;整合SpringBoot SpringBoot整合rabbitmq使用案例 一 SpringBoot整合RocketMQ实现消息发送和接收消息生产者1&#xff09;添加依赖2&#xff09;配置文件3&#xff09;启动类4&#xff09;测试类 消息消费者1&#xff09;添加依赖2&…

python 中如何匹配字符串

python 中如何匹配字符串&#xff1f; 1. re.match 尝试从字符串的起始位置匹配一个模式&#xff0c;如果不是起始位置匹配成功的话&#xff0c;match()就返回none。 import re line"this hdr-biz 123 model server 456" patternr"123" matchObj re.matc…

iconfont_vue小程序中使用

1.前三步就是简单下载&#xff0c;详细可看这篇 vue管理系统导航中添加新的iconfont的图标-CSDN博客 2.引用有点区别&#xff1a;在App中引用 3.uni-icons写法 <uni-icons custom-prefix"iconfont" type"icon-zhengjian" size"23"></un…

情感视频素材怎么来的?8个视频素材库免费下载安装

在今天这个视觉内容对于连接和影响观众至关重要的时代&#xff0c;选择适合的视频素材变得极为关键。优质的视频素材可以极大提升您的内容质量&#xff0c;无论是在增加社交媒体的吸引力、提升商业广告的效果&#xff0c;还是丰富教育材料的表现力。以下是一些全球顶级的视频素…

基于 Llama-Index、Llama 3 和 Qdrant,构建一个 RAG 问答系统!

构建一个使用Llama-Index、Llama 3和Qdrant的高级重排-RAG系统 尽管大型语言模型&#xff08;LLMs&#xff09;有能力生成有意义且语法正确的文本&#xff0c;但它们面临的一个挑战是幻觉。 在LLMs中&#xff0c;幻觉指的是它们倾向于自信地生成错误答案&#xff0c;制造出看似…

Stateflow基础知识笔记

01--Simulink/Stateflow概述 Stateflow是集成于Simulink中的图形化设计与开发工具&#xff0c;主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真&#xff0c;或者说&#xff0c; Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用&#…

一个年薪30w软件测试员的职业规划,献给还在迷茫中的朋友

先抛出一个观点 &#xff0c; 那些&#xff0c;担心30岁后&#xff0c;35岁后&#xff0c;40岁后&#xff0c;无路可走的&#xff1b;基本属于能力不够、或者思维太局限 。 总之&#xff0c;瞎担心 / 不长进 。 具体&#xff0c;见下面正文 。 曾经&#xff0c;在16年&#xff…

开发环境待

一 web开发环境搭建 1 web开发环境概述 所谓web开发,指的就是从网页中向后端程序发送请求.与后端程序进行交互. 流程图: 1,Web服务器是指驻留于因特网上某种类型计算机的程序. 2, 可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界 浏览…

JWK和JWT 学习

JWK和JWT 介绍 JWK (JSON Web Key) 和 JWT (JSON Web Token) 是现代Web应用程序中用于安全通信的两个重要概念。它们都是基于JSON的&#xff0c;并且是OAuth 2.0和OpenID Connect等协议的核心组成部分。 官方文档 JWT官方网站 JWK和JWK Set的RFC文档 JWT的RFC文档 JWK (JS…

16_Scala面向对象编程_函数

文章目录 1.声明Scala函数2.访问伴生对象3.空对象直接用的方法4.构造对象--通过object获取单例对象--直接new--scala独有apply()方式--scala有参构造--scala构造方法两大类使用辅构造如下上述代码主构造为辅助构造方法甚至可以多个多个辅助构造形参内容不能重不使用辅助构造和使…

【ACM出版】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09; 2024 4th International Conference on Control and Intelligent Robotics 2024年6月21日-23日 | 中国-广州 官网&#xff1a;www.ic-cir.org EI、Scopus双检索 投稿免费参会、口头汇报及海报展示 四…