神经网络入门①多层感知器如何解决异或问题?

news2024/11/28 7:44:55

文章目录

  • 1. 多层感知器
  • 2. BP算法
  • 参考文献

1. 多层感知器


感知机(perceptron)早在20世纪50年代就提出来了1,但直到近几年深度学习的崛起,神经网络才再次走入大众的视野,并且成为了当下最热门的研究方向之一。

一个单层的感知器只能解决线性问题,而要解决如“异或”等非线性问题,则需要引入多层感知器

其原理是通过叠加多个线性的单元,构成非线性的网络

首先考虑一个简单的“与”运算

Y = A & B Y=A\&B Y=A&B

其真值表如下

ABYC
0000
0101
1001
1112

只有当 A A A B B B都为1的时候 Y Y Y才为1,表中 C C C A A A B B B的数学运算值,即

C = A + B C=A+B C=A+B

将真值表转化为图的形式,其中横坐标 A B AB AB表示 A A A B B B组成的2比特的数。例如:当 A = 1 A=1 A=1 B = 0 B=0 B=0时, A B = 10 ( 二进制 ) = 2 ( 十进制 ) AB=10(二进制)=2(十进制) AB=10(二进制)=2(十进制)
在这里插入图片描述

观察 C C C的取值与 Y Y Y的关系,可以得到,当 A A A B B B的线性加和大于1.5时,可以认为 A & B A\&B A&B为1,小于等于1.5时则为0

因此通过引入一个非线性激活函数,可以将数学运算值转化为“与”运算,该运算可以描述为:

s g n ( A + B − 1.5 ) sgn(A+B-1.5) sgn(A+B1.5)

其中 s g n sgn sgn表示符号函数

因此一个具有“与”运算功能的神经网络可以表示为

在这里插入图片描述

一个“或”运算问题如下

Y = A ∣ B Y=A|B Y=AB

通过上述方式可以得到一个具有“或”运算功能的神经网络可以表示为

在这里插入图片描述

同理可得到具有“非”运算功能的神经元

Y = A ˜ Y=\~A Y=A˜
在这里插入图片描述

考虑一个“异或”问题:

Y = A ⊕ B Y=A⊕B Y=AB

这是一个非线性对应关系,无法用一个简单的神经元表示

但是从逻辑上分析,一个“异或”问题可以转化为“与”和“或”问题的组合,即

Y = A ⊕ B = ( A ∣ B ) & ( A ˜ ∣ B ˜ ) Y=A⊕B=(A|B)\&(\~A|\~B) Y=AB=(AB)&(A˜B˜)

则其对应的神经网络可以表示为

在这里插入图片描述
检验一下真值表

ABYC1C2CY
000-0.51.5-0.50
0110.50.50.51
1010.50.50.51
1101.5-0.5-0.50

可以看到多层感知器可以解决“异或”问题

2. BP算法


待续

参考文献


  1. Rosenblatt, F., 1958. The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), p.386. ↩︎

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

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

相关文章

MybatisPlus的save方法

当我前端传递的是一个整合的数据模型Dto,需要同时插入俩张表,并且其中一张表的属性需要得到另一张表的id,如何实现呢?这个时候MP封装好的插入方法:save就起了很好的作用 public R<String> SaveNewDish(DishDto dishdto) { // 1. 保存菜品基本信息log.info("前…

MySQL优化--覆盖索引,超大分页查询

目录 覆盖索引 MYSQL超大分页处理 面试回答 大纲 回答 覆盖索引 覆盖索引是指查询使用了索引&#xff0c;并且需要返回的列&#xff0c;在该索引中已经全部能够找到 。 MYSQL超大分页处理 在数据量比较大时&#xff0c;如果进行limit分页查询&#xff0c;在查询时&#…

一步一步教你如何使用MMSelfSup框架【1】

介绍 任务介绍 自监督学习(Self-supervised learning, SSL)是一种极具潜力的学习范式&#xff0c;它旨在使用海量的无标注数据来进行表征学习。在SSL中&#xff0c;我们通过构造合理的预训练任务&#xff08;可自动生成标注&#xff0c;即自监督&#xff09;来进行模型的训练…

C#探索之路(8):初探.Net中官方文档OpCode的格式

C#探索之路(8)&#xff1a;初探.Net中官方文档OpCode的格式 文章目录 C#探索之路(8)&#xff1a;初探.Net中官方文档OpCode的格式1 前提2 疑惑1&#xff1a;Opcode格式是什么&#xff1f;3 答疑1&#xff1a;4 验证方式&#xff1a;5 总结 1 前提 最近在尝试了解学习这个OpCod…

使用ChatGPT最新版实现批量写作,打造丰富多彩的聚合文章

随着人工智能的迅猛发展&#xff0c;ChatGPT最新版作为一种自然语言处理模型&#xff0c;可以为我们提供强大的文本生成能力。在这篇文章中&#xff0c;我们将探讨如何利用ChatGPT最新版来实现批量写作&#xff0c;从而打造丰富多彩的聚合文章。 一、ChatGPT最新版简介 Chat…

使用mpi并行技术实现快排Qsort()

快排基本原理&#xff1a; 快速排序可以说是最为常见的排序算法&#xff0c;冒泡排序时间复杂度达到了O&#xff08;N2&#xff09;&#xff0c;而桶排序容易造成浪费空间。快排&#xff08;Quicksort&#xff09;就成为了不错的选择。 1、原理&#xff1a;快排需要找一个数作…

基于 JavaScript 中的 Date 类型实现指定日期和天数的加减运算

文章目录 Intro基本方法构造方法--如何初始化一个Date对象&#xff1f;Date 对象的天数加减法 【工具方法封装】最后 Intro 刚才突然想到&#xff0c;我还有多久就要过27岁的生日了呢。 年近三十&#xff0c;一事无成。 以下基于 JavaScript 中的 Date 对象封装一些方法。 基…

CAS、AtomicInteger和LongAdder原理

目录 一、CAS 1、介绍 2、CAS与volatile 3、为什么无锁效率高 4、总结 二、原子整数 三、原子引用 1、介绍 2、ABA问题 3、AtomicStampedReference 4、AtomicStampedReference 四、原子累加器 1、介绍 2、LongAdder重要关键域 CAS锁 原理之伪共享 3、LongAdde…

Java性能权威指南-总结15

Java性能权威指南-总结15 堆内存最佳实践对象生命周期管理弱引用、软引用与其他引用 小结 堆内存最佳实践 对象生命周期管理 弱引用、软引用与其他引用 在Java中&#xff0c;弱引用和软引用也支持对象重用&#xff0c;不过作为开发者&#xff0c;并不会经常从重用的角度看待…

【C语言进阶】文件操作

目录 &#x1f945;什么是文件&#xff1a; &#x1f3d1;程序文件&#xff1a;&#x1f3d1;数据文件&#xff1a; &#x1f3d1;文件名&#xff1a; &#x1f945;文件的打开和关闭&#xff1a;&#x1f3d1;文件指针&#xff1a; &#x1f3d1;fopen和fclose&#xff1a; &a…

基于matlab使用先导校准来补偿阵列不确定性(附源码)

一、前言 此示例说明如何使用先导校准来提高天线阵列在存在未知扰动时的性能。 原则上&#xff0c;可以轻松设计理想的均匀线性阵列&#xff08;ULA&#xff09;来执行阵列处理任务&#xff0c;例如波束成形或到达方向估计。在实践中&#xff0c;没有理想的阵列。例如&#xff…

io.netty学习(二)Netty 架构设计

目录 前言 Selector 模型 SelectableChannel Channel 注册到 Selector SelectionKey 遍历 SelectionKey 事件驱动 Channel 回调 Future 事件及处理器 责任链模式 责任链模式的优缺点 ChannelPipeline 将事件传递给下一个处理器 总结 前言 上一篇文章&#xff…

1.react路由的基本使用

第一步 首先打开index.js&#xff0c;在里面引入BrowserRouter或者HashRouter&#xff0c;启用全局路由模式。 BrowserRouter与HashRouter的区别 // index.js import React from react; import ReactDOM from react-dom/client; import ./index.css; import App from ./App;…

P31[10-1]软件模拟IIC通信协议(使用stm32库函数)(内含:实物连接+IIC时序解释+硬件电路+IIC基本时序单元(起始 终止 发送接收 ))

IIC通讯分为硬件读写IIC和软件IIC,以下为软件读写IIC 实物连接如下: 解释: 软件IIC通讯,对MPU6050芯片内部的寄存器进行读写操作,。写入配置寄存器,即可对外挂模块进行配置。。读出数据寄存器,即可获取外挂模块的数据。。。 OLED第一行为设备ID号(固定,有些可能不同)…

基于Springboot+mybatis+mysql+html图书管理系统2

基于Springbootmybatismysqlhtml图书管理系统2 一、系统介绍二、功能展示1.用户登陆2.用户主页3.图书查询4.还书5.个人信息修改6.图书管理&#xff08;管理员&#xff09;7.学生管理&#xff08;管理员&#xff09;8.废除记录&#xff08;管理员&#xff09; 三、数据库四、其它…

8.compute部署neutron服务

compute节点 安装软件包 yum -y install openstack-neutron-linuxbridge ebtables ipset 修改配置文件&#xff1a;/etc/neutron/neutron.conf #查看文件属性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron ... /etc/neutron/neutron.conf #备份配置文件 cp /e…

C语言:将一句话的单词进行倒置,标点不倒置。

题目&#xff1a; 将一句话的单词进行倒置&#xff0c;标点不倒置。&#xff08;字符数组长度不超过100&#xff09; 比如&#xff1a;I like beijing. 经过函数后变为&#xff1a;beijing. like I 思路&#xff1a; 总体思路&#xff1a; &#xff08;可以把两步顺序调换&am…

chatgpt赋能python:Python中寻找不重复字符的方法

Python中寻找不重复字符的方法 Python是一种著名界面友好、易学易用且功能强大的编程语言&#xff0c;广泛应用于各种需求中。在本篇文章中&#xff0c;我们将会讨论如何使用Python编程语言来寻找一个字符串中的不重复字符。我们将简单介绍如何实现这个过程以及为什么这个过程…

Python小白如何利用GPT4快速开发一个网站!

这个是一个全栈的项目&#xff0c;麻雀虽小&#xff0c;五脏俱全&#xff01;全程都是利用gpt4进行辅助编程搞定的。第一版其实非常快&#xff0c;大概30分钟就搞定了&#xff0c;后续就是不断的添砖加瓦&#xff0c;增加功能和优化UI。 其实很多小白都在说要学Python&#xff…

chatgpt赋能python:Python扩展库需要导入吗?重要性与结论解析

Python扩展库需要导入吗&#xff1f;重要性与结论解析 作为业内最受欢迎的编程语言之一&#xff0c;Python在数据科学、人工智能、Web开发等领域拥有大量的应用。在Python开发过程中&#xff0c;扩展库的使用是不可避免的。本文将介绍Python扩展库的重要性以及是否需要导入的问…