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

文章目录

  • 第一章:感知机的局限性
    • 1.1 异或门的挑战
    • 1.2 线性与非线性问题
  • 第二章:多层感知机
    • 2.1 已有门电路的组合
    • 2.2 实现异或门
  • 第三章:从与非门到计算机

文章文上下两节

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

第一章:感知机的局限性

在前几章中,我们已经看到了感知机如何有效地实现基本的逻辑门,如与门、与非门和或门。然而,当我们尝试用感知机实现更复杂的逻辑门,例如异或门(XOR gate),我们遇到了一些困难。本章将探讨感知机的这些局限性,并解释为什么它们存在。

1.1 异或门的挑战

异或门是一种逻辑电路,只有当其中一个输入为1时,输出才为1。这种操作在逻辑中被称为"异或"(XOR),意味着两个输入不同时才为真。以下是异或门的真值表,展示了其输出行为:

在这里插入图片描述

实际上,用基本的单层感知机模型无法实现这个异或门。为什么可以用感知机实现与门和或门,但不能实现异或门呢?我们可以通过画图来探索这一问题。

假设我们试图使用以下感知机公式来模拟或门的行为,其参数为 b = − 0.5 b=−0.5 b=0.5 w 1 = 1.0 w_1=1.0 w1=1.0 w 2 = 1.0 w_2=1.0 w2=1.0
y = { 0 if  ( − 0.5 + x 1 + x 2 ≤ 0 ) 1 if  ( − 0.5 + x 1 + x 2 > 0 ) y = \begin{cases} 0 & \text{if } (-0.5 + x_1 + x_2 \leq 0) \\ 1 & \text{if } (-0.5 + x_1 + x_2 > 0) \end{cases} y={01if (0.5+x1+x20)if (0.5+x1+x2>0)
这个感知机会产生一个决策边界,如下图所示,这条直线将输入空间分为两部分:一部分输出0,另一部分输出1。下面的直线即为 − 0.5 + x 1 + x 2 = 0 −0.5+x_1+x_2=0 0.5+x1+x2=0,灰色区域是感知机输出0的区域,这个区域与或门的性质一致。对于或门,当输入为 (0,0) 时输出为 0;而当输入为 (1,0),(0,1),或 (1,1) 时,输出为 1。下图显示了这些点和决策边界,其中圆圈表示输出0,三角形表示输出1。

在这里插入图片描述

如果我们尝试使用类似的方法来解决异或问题,我们会发现没有单条直线能完美地分离输出为1和输出为0的点。以下是异或操作的可视化,显示了无法仅用一条直线来分割输出1和输出0的区域。

在这里插入图片描述

这说明基本的单层感知机无法处理异或问题,这是因为异或是一个非线性问题,而单层感知机只能解决线性可分问题。这展示了单层感知机的一个主要局限性:它无法解决非线性问题。

1.2 线性与非线性问题

在上面我们看到,无论如何尝试,用一条直线都无法完美地区分所有的○和△符号。这突显出了单层感知机处理复杂逻辑函数,如异或(XOR)函数的局限性。

异或门的输出不能通过单层感知机处理,因为它要求非线性的决策边界。如下图所示,一个可能的解决方案是使用曲线来分隔输出为1和输出为0的区域。这样的曲线无法通过单层感知机来实现,因为单层感知机的决策边界总是线性的(即由直线描述)。

在这里插入图片描述

在机器学习中,线性空间和非线性空间的区别极为关键。线性模型,如单层感知机,只能解决线性可分问题,即那些可以通过一个平面或直线分隔的问题。然而,许多实际问题,如异或问题,是非线性的,需要通过更复杂的模型如多层感知机来解决。

第二章:多层感知机

感知机不能表示异或门让人深感遗憾,但也无需悲观。实际上,感知机的绝妙之处在于它可以“叠加层”(通过叠加层来表示异或门是本节的要点)。这里,我们暂且不考虑叠加层具体是指什么,先从其他视角来思考一下异或门的问题。

2.1 已有门电路的组合

异或门的制作方法有很多,其中之一就是组合我们前面做好的与门、与非门、或门进行配置。下图展示了与门、与非门、或门的符号表示。图中与非门前端的圆圈表示反转输出的意思。

在这里插入图片描述

要实现异或门的话,需要如何配置与门、与非门和或门呢?

在这里插入图片描述

严格地讲,感知机的局限性应该描述为“单层感知机无法表示异或门”或者“单层感知机无法分离非线性空间”。但通过组合感知机(叠加层)就可以实现异或门。

异或门可以通过下图所示的配置来实现。这里, x 1 x_1 x1 x 2 x_2 x2 表示输入信号, y y y 表示输出信号。 x 1 x_1 x1 x 2 x_2 x2 是与非门和或门的输入,而与非门和或门的输出则是与门的输入。

在这里插入图片描述

这里把 s 1 s_1 s1 作为与非门的输出,把 s 2 s_2 s2 作为或门的输出,填入真值表中。结果如下图所示,观察 x 1 x_1 x1 x 2 x_2 x2 y y y,可以发现确实符合异或门的输出。

在这里插入图片描述

2.2 实现异或门

下面我们试着用Python来实现异或门。使用之前定义的AND函数、NAND函数、OR函数,可以像下面这样实现。

def XOR(x1, x2):s1 = NAND(x1, x2)s2 = OR(x1, x2)y = AND(s1, s2)return y

这个XOR函数会输出预期的结果。

  • XOR(0, 0) 输出 0
  • XOR(1, 0) 输出 1
  • XOR(0, 1) 输出 1
  • XOR(1, 1) 输出 0

这样,异或门的实现就完成了。下面我们试着用感知机的表示方法(明确地显示神经元)来表示这个异或门,结果如下图所示。异或门是一种多层结构的神经网络。这里,将最左边的一列称为第0层,中间的一列称为第1层,最右边的一列称为第2层。

在这里插入图片描述

上图中的感知机总共由3层构成,但是因为拥有权重的层实质上只有2层(第0层和第1层之间,第1层和第2层之间),所以称为“2层感知机”。不过,有的文献认为上图的感知机是由3层构成的,因而将其称为“3层感知机”。

在上图所示的2层感知机中,先在第0层和第1层的神经元之间进行信号的传送和接收,然后在第1层和第2层之间进行信号的传送和接收,具体如下所示:

  1. 第0层的两个神经元接收输入信号,并将信号发送至第1层的神经元。
  2. 第1层的神经元将信号发送至第2层的神经元,第2层的神经元输出 y y y

这种2层感知机的运行过程可以比作流水线的组装作业。第1段(第1层)的工人对传送过来的零件进行加工,完成后再传送给第2段(第2层)的工人。第2层的工人对第1层的工人传过来的零件进行加工,完成这个零件后出货(输出)。

像这样,在异或门的感知机中,工人之间不断进行零件的传送。通过这样的结构(2层结构),感知机得以实现异或门。这可以解释为“单层感知机无法表示的东西,通过增加一层就可以解决”。也就是说,通过叠加层(加深层),感知机能进行更加灵活的表示。

第三章:从与非门到计算机

多层感知机展示了其在实现复杂电路方面的强大能力,不仅限于基本逻辑门,如与门或或门,甚至可以扩展到更复杂的功能,例如加法器和编码器。这些设备通常需要多步骤的逻辑处理,通过感知机模型,我们可以构建这些复杂的逻辑函数。

计算机与感知机的相似性

感知机的基本工作原理 —— 接收输入,处理数据后输出结果 —— 在很大程度上模仿了计算机的操作。这种简单的对比帮助我们理解,即使是最复杂的计算机系统,其核心也依赖于基础的逻辑处理单元。

与非门的强大作用

在数字电路设计中,与非门的重要性不容小觑。事实上,仅仅使用与非门,就可以构建任何其他的逻辑门,进而实现完整的计算机处理能力。这种从简到繁的能力展示了感知机在逻辑设计中的潜力。

感知机与计算机架构

尽管理论上两层感知机就足以模拟任何计算功能,实际上要通过这种方式实现一个高效的计算机架构是非常困难的。例如,创建一个使用激活函数的多层感知机来精确模拟ALU或CPU的行为,这在理论上是可行的,但在实践中可能需要极其复杂的网络结构和精细的权重调整。

分阶段实现的逻辑复杂性

在实际的硬件设计中,构建一个计算机通常涉及多个阶段,每个阶段完成特定功能的组件,如逻辑门、加法器、算术逻辑单元(ALU),最终组合成完整的CPU。这种分阶段的方法可以为感知机的实用应用提供框架,即通过分层逐步增加网络的复杂性来逼近所需的功能。

总结

尽管多层感知机理论上可以模拟复杂的计算机系统,但实际应用中,它们更常见于模拟具体功能或处理特定类型的数据。感知机的这种适用性和灵活性,使其在现代计算和机器学习领域中成为了一个宝贵的工具。同时,了解感知机如何模拟基本计算机操作也对深入理解计算机运作和优化现有技术架构提供了洞见。


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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

DigitalOcean 应用托管平台级更新:应用端到端运行时性能大幅改进

DigitalOcean 希望可以为企业提供所需的工具和基础设施,以帮助企业客户加速云端的开发,实现业务的指数级增长。为此 DigitalOcean 在 2020 年就推出了App Platform。 App Platform(应用托管) 是一个完全托管的 PaaS 解决方案&…

代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 解题思路: 确定dp数组含义…

火山引擎数据飞轮携手美宜佳 探索拓店营销新思路

在刚刚过去的 3 月,美宜佳又交出了门店增长的高分答卷。 最新数据显示,美宜佳在全国的连锁店数已经超过 35000 家,每年净增 3000-4000 家店,月均服务顾客超 2 亿人次;同时,在中国连锁经营协会(CCFA)近日发布…

有哪些方式可以有效地评估精益生产咨询公司的能力?

在寻求精益生产咨询服务的过程中,评估咨询公司的能力至关重要。这不仅关乎企业精益生产转型的成功与否,更直接影响到企业未来的竞争力和发展。那么,有哪些方式可以有效地评估精益生产咨询公司的能力呢? 首先,了解咨询公…

Linux网络-PXE高效批量网络装机(命令+截图详细版)

目录 一.部署PXE远程安装服务 1.PXE概述 1.1.PXE批量部署的优点 1.2.要搭建PXE网络体系的前提条件 2.搭建PXE远程安装服务器 2.1.修改相关网络配置(仅主机模式) 2.2.关闭防火墙(老规矩) 2.3.保证挂载上 2.4.准备好配置文…

语音识别--声音位置与起始位置检测

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

代码随想录最后一天!

这是长达63天的最后一天一年的六分之一,我跟着卡哥完成了代码随想录的所有打卡。每天都写下了一篇关于自己做题的小博客。其中有的写的精细,有的潦草,但是都是我一路走来的脚步。 虽然有的题目还是不太理解,但是我依旧自信昂首&am…

Freeswitch-mod开发

文章目录 一、Freeswitch-mod开发1.1 介绍1.2 实战1.2.1 新建一个mymod.c或者mymod.cpp1.2.2 新建一个Makefile1.2.3 编译 二、Freeswitch-mod-自定义Dialplan模块2.1 介绍2.2 实战2.2.1 改造mymod.c(代码是完整的,自己做区别看一下)2.2.2 编…

淘宝数据分析——Python爬虫模式♥

大数据时代, 数据收集不仅是科学研究的基石, 更是企业决策的关键。 然而,如何高效地收集数据 成了摆在我们面前的一项重要任务。 本文将为你揭示, 一系列实时数据采集方法, 助你在信息洪流中, 找到…

突然断电,瀚高数据库启动失败

服务器临时断电后,数据库启动不起来 ps -ef|grep postgres 进到数据库的data目录下看下ls 看下 查看临时文件: ls -la /tmp 把这两个5866的文件改个名字张老师 加个bak就行 改完了pg_ctl start起一下

AUTOSAR中EcuM、ComM和CanNm的关联

ComM的内外部唤醒 ComM可以通过NM保持网络的唤醒,同时也可以通过SM激活通信,总之就像一个通信的总管。 下面通过两种唤醒源来解释ComM的状态机。 1、内部唤醒 ① 当ComM上电初始化时会首先进入NO COMMUNICATION状态,在该状态下ComM会持续循…

口感与风味的完善结合:精酿啤酒的多样风格

啤酒的世界是丰富多彩的,不同的啤酒有着各自与众不同的口感和风味。而Fendi club啤酒,作为精酿啤酒的代表,以其多样化的风格和卓着的口感,吸引了无数啤酒爱好者的目光。 Fendi club啤酒的多样风格,首先体现在其原料的选…

吴恩达深度学习笔记:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13-1.14

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第一周:深度学习的 实践层面 (Practical aspects of Deep Learning)1.13 梯度检验&#…

element-plus el-cascader 懒加载实现-省市区街道选择及回显

大概思路: 准备一个接口可以通过父Id,查询到下一级省市区街道的信息;如下方的getRegionListOne确定后端的数据结构,需要在created里边处理数据回显逻辑el-cascader接收的数据格式是[‘’,‘’,‘’];后端的数据格式多为[{provinceId: ‘’, …

Postman轻松签名,让SHA256withRSA保驾护航!

前言 在接口测试中,我们经常需要对请求进行签名,以保证数据的安全性。而SHA256withRSA是一种较为常见的签名算法,它可以使用私钥对数据进行签名,使用公钥进行验签。 但是,实现该算法签名可能会涉及到一些繁琐的操作&…

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求,在 2023 年 Gartner AI 炒作周期中,生成式 AI 达到预期值达到顶峰后,三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求?在预定义算法的驱动下,IT 服务交付和管理中…

如何把一个PDF文档每两页合并为一页?跟我学,5秒搞定!

想要将两张PDF的内容合并到一张A4纸上显示。 这需要用到PDF编辑软件,在迅捷PDF编辑器中的“打印”功能里进行设置。 下面给大家演示一下具体怎么操作: 01.打开迅捷PDF编辑器,导入PDF文件,找到左上角【打印】功能。 02.在弹出…

服务器2080ti驱动的卸载与安装

服务器2080ti驱动的卸载与安装 前言1、下载驱动2、驱动卸载与安装2.1 卸载原来驱动2.2 安装新驱动 3、查看安装情况 前言 安装transformers库,运行bert模型时出错,显示torch版本太低,要2.0以上的,所以更新显卡驱动,重…

黑马点评项目总结

登录 基于session登录 短信验证码登录 配置登录拦截器 向 Spring MVC 框架中添加拦截器,LoginInterceptor 是一个自定义的拦截器,用于拦截用户的登录请求。 excludePathPatterns这一句是设置拦截器需要放行的请求路径列表。 "/user/code", …

Java | Leetcode Java题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; class Solution {public String addBinary(String a, String b) {StringBuffer ans new StringBuffer();int n Math.max(a.length(), b.length()), carry 0;for (int i 0; i < n; i) {carry i < a.length() ? (a.charAt(a.leng…