第二章---感知机

news2024/11/15 1:41:28

🌞欢迎来到深度学习的世界 
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

🌟本文由卿云阁原创!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

2.1感知机是什么

2.2 简单逻辑电路

2.3 感知机的实现

2.4 感知机的局限性

2.5 多层感知机


2.1感知机是什么

     感知机接收多个输入信号,输出一个信号。

2-1 是一个接收两个输入信号的感知机的例子。
  • x1x2是输入信号, y是输出信号,
  • w1w2权重
  • 图中的○称为“经元”。
输入信号被送往神经元时,会被分别乘以固定的权重(w 1x1 w2x2 )。神经元会计算传送过来的信号的总和,只有当这个总和超过 了某个界限值时,才会输出1 。这也称为“神经元被激活”。这里将这个界限值称为阈值 ,用符号 θ 表示。

有两个输入的感知机

感知机的运行原理只有这些!把上述内容用数学式来表示

权重越大,对应该权重的信号的重要性就越高 通过 信号就越大

2.2 简单逻辑电路

2.2.1 与门(A&&B必须同时为1才输出为1)

 2-2的真值表

满足 2-2 的条件的参数的选择方法有无数多个。比如,当 (w 1, w2, θ) = (0.5, 0.5, 0.7) 时,可以满足 2-2 的条件。

2.2.2 或门(或 A || B,有一个为1输出为1)

的真值表

2.2.3 与非门    !(A&&B)

 真值表

要表示与非门,可以用(w 1, w2, θ) = (0.5, 0.5, 0 .7)这样的组合(其 他的组合也是无限存在的)。实际上,只要把实现与门的参数值的符号取反, 就可以实现与非门。

2.3 感知机的实现

2.3.1 简单的实现
def AND(x1, x2):
   w1, w2, theta = 0.5, 0.5, 0.7
   tmp = x1*w1 + x2*w2
   if tmp <= theta:
     return 0
   elif tmp > theta:
     return 1
print("---真值表---")
print("X1是{1},  X2是{1},  y是{2}".format(1,1,AND(1, 1)))
print("X1是{1},  X2是{0},  y是{2}".format(1,0,AND(1, 0)))
print("X1是{0},  X2是{1},  y是{2}".format(0,1,AND(0, 1)))
print("X1是{0},  X2是{0},  y是{2}".format(0,0,AND(0, 0)))

果然和我们预想的输出一样!这样我们就实现了与门。按照同样的步骤,也可以实现与非门和或门,不过让我们来对它们的实现稍作修改。

2.3.2 导入权重和偏置

b 称为 偏置 w1w2 称为 权重 感知机会计算输入信号和权重的乘积,然后加上偏置,如果这个值大于0 则输出 1 ,否则输出 0。 w1w2是控制输入信号的重要性的参数,而偏置是调
整神经元被激活的容易程度(输出信号为1的程度)的参数。
import numpy as np
x = np.array([0, 1]) # 输入
w = np.array([0.5, 0.5]) # 权重
b = -0.7 # 偏置
print("w*x={0}".format(w*x))
print("------")
print("w1*x1+w2*x2={0}".format(np.sum(w*x)))
print("------")
print("w1*x1+w2*x2+ b={0}".format(np.sum(w*x) + b))
2.3.3 使用权重和偏置的实现
# coding: utf-8
import numpy as np
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
if __name__ == '__main__':
    for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
        y = AND(xs[0], xs[1])
        print(str(xs) + " -> " + str(y))
# coding: utf-8
import numpy as np
def NAND(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
if __name__ == '__main__':
    for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
        y = NAND(xs[0], xs[1])
        print(str(xs) + " -> " + str(y))

# coding: utf-8
import numpy as np
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

if __name__ == '__main__':
    for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
        y = OR(xs[0], xs[1])
        print(str(xs) + " -> " + str(y))

2.4 感知机的局限性

2.4.1  异或门

两个输入不同–>输出1, 输入相同–>输出0

 实际上,用前面介绍的感知机是无法实现这个异或门的。感知机的局限性就在于它只能表示由一条直线分割的空间。弯曲的曲线无法用感知机表示。


2.5 多层感知机

2.5.1  已有门电路的组合

异或门可以通过图 所示的配置来实现。这里, x 1 x 2 表示输入信号, y 表示输出信号。 x 1 x 2 是与非门和或门的输入,而与非门和或门的输出则 是与门的输入。
# coding: utf-8
def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y

if __name__ == '__main__':
    for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
        y = XOR(xs[0], xs[1])
        print(str(xs) + " -> " + str(y))

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

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

相关文章

centos各个版本jenkins部署

目录 官网安装方法 安装java&#xff0c;**注意java版本&#xff0c;新版本jenkins只支持jdk11及以上 安装jenkins Jenkins启动失败的七个问题 jenkins 部署脚本 Nginx转发jenkins服务 官网安装方法 Redhat Jenkins Packages (jenkins-ci.org)https://mirrors.jenkins-c…

微信朋友圈怎么定时发送?微信朋友圈定时发送有什么优势?

刷朋友圈已经成为大部分人日常中不可缺少的一件事&#xff0c;同时也是企业用来触达客户的重要渠道。下面一起来了解一下微信朋友圈定时发送的优势有哪些&#xff0c;还有怎么定时发朋友圈吧。 定时发朋友圈的优势有哪些&#xff1f; 1、让企业能够更好地管理自己的宣传信息 …

HttpRunner 接口自动化测试框架实战,打造高效测试流程

简介 2018年python开发者大会上&#xff0c;了解到HttpRuuner开源自动化测试框架&#xff0c;采用YAML/JSON格式管理用例&#xff0c;能录制和转换生成用例功能&#xff0c;充分做到用例与测试代码分离&#xff0c;相比excel维护测试场景数据更加简洁。在此&#xff0c;利用业…

Tree of Thoughts: Deliberate Problem Solving with Large Language Models

思维树&#xff1a;用大模型深思熟虑的解决问题 Tree of Thoughts: Deliberate Problem Solving with Large Language Models概述&#xff1a;核心思想&#xff1a;背景&#xff1a;IO promptingCoTCoT-SC 算法流程&#xff1a;主要实验对象&#xff1a;24点游戏创意写作填字游…

Linux5.3 Haproxy搭建Web群集

文章目录 计算机系统5G云计算第四章 LINUX Haproxy搭建Web群集一、Keepalived 概述1. HAProxy的主要特性2.常见的 Web 集群调度器3.HAProxy负载均衡策略4.LVS、Nginx、HAproxy的区别 二、Haproxy搭建 Web 群集 Keepalived部署高可用集群1.haproxy 服务器部署&#xff0c;配置负…

Linux shell脚本命令记录

1、cut cut 命令可以从一个文本文件或者文本流中提取文本列。 选项与参数&#xff1a; -d &#xff1a;后面接分隔字符。与 -f 一起使用&#xff1b; -f &#xff1a;依据 -d 的分隔字符将一段信息分割成为数段&#xff0c;用 -f 取出第几段的意思&#xff1b; -c &#x…

如何进行App性能测试?iTest工具助力你轻松实现!

目录 引言 功能简介 基本功能使用说明 其它功能 iTest数据上传功能 iTest使用注意事项 引言 如何使用iTest工具进行App性能测试。 在如今这个高度竞争的移动应用市场中&#xff0c;用户对于应用程序的体验需求越来越高&#xff0c;而良好的性能表现则是实现这一目标的关…

CleanMyMac X 4.13.4 Mac系统老牌清洁工具大测评-功能、优缺点盘点

CleanMyMac X 4.13.4 for Mac 是一款可靠且功能强大的Mac清洁工具工具&#xff0c;他可以让你随时检查Mac电脑的健康情况&#xff0c;并删除电脑中的垃圾文件&#xff0c;来腾出存储空间&#xff0c;保持Mac系统的整洁。至问世以来&#xff0c;CleanMyMac 系统倍受国内外用户推…

SpringBoot 源码分析刷新应用上下文(3)-refreshContext

一&#xff1a;入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link ApplicationContext}*/public ConfigurableAp…

高阶复杂网络重建:从时间序列中重建高阶网络

论文链接&#xff1a;https://www.nature.com/articles/s41467-022-30706-9 一、为什么要研究高阶网络&#xff1f; 复杂网络跟我们生活息息相关&#xff0c;例如社交网络的信息传播&#xff0c;疾病的感染扩散和基因调控网络的相互作用等。越来越多的研究突破了传统网络中两…

SSH暴力破解

Linux是开源系统&#xff0c;系统本身因漏洞造成的攻击相对比较少&#xff0c;主要集中在SSH攻击&#xff1b; SSH所采用的加密机制&#xff0c;可以防止数据传输过程中信息泄露&#xff1b; SSH基于用户名密码的身份验证&#xff0c;容易遭受密码暴力破解攻击&#xff1b; S…

上海交通大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 上海交通大学&#xff08;A&#xff09;考研难度&#xff08;☆☆☆☆☆&#xff09; 上海交通大学电子信息与电气工程学院的前身可溯源至1908年的电机专科&#xff0c;享有中国电气工程师“摇篮”的美称&#xff0c;…

远程线程注入之突破Session0隔离会话

前言 当我们使用远程线程注入将dll注入至系统服务进程中往往会失败&#xff0c;这是因为大多数系统服务都是在Session0中运行的 "Session 0"是Windows操作系统中的一个特殊的会话&#xff0c;专门用于运行系统服务和其他在用户登录之前就需要运行的程序。从Windows…

卷积神经网络CNN(第三次组会)

卷积神经网络 1. 为什么用卷积2. 两个原则3. 参数理解4. 理解卷积 1. 为什么用卷积 2. 两个原则 3. 参数理解 4. 理解卷积

Proteus仿真之IIC通信(AT24C02)

1.IIC通信简介&#xff1a;IIC是一种利用时钟线SCL和数据线SDA进行数据传输的通信协议。IIC的时序图如下所示&#xff1a; 我们需要看懂时序图中开始信号、数据传输、应答信号和停止信号。 开始信号&#xff1a;SCL为高电平时&#xff0c;SDA出现下降沿信号。 数据传输&#…

c++类和对象(封装)

4、类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如: 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重...&#xff0c;行为有走、跑、跳、吃饭、唱歌...车也可以作为对象&#xff0c;属性…

python带你制作自动点赞小程序,让我看看谁还在呆呆的手动点赞

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 知识点: 动态数据抓包 requests发送请求 开发环境: 代码所使用软件工具&#xff1a; python 3.8 >>>>>> 运行代码 pycharm 2022.3 >>>>>> 辅助敲代码 需下载的第三方模块&a…

【微信公众平台对接】有关上传pdf到微信

1、微信文档说明 ps:有关微信的一些文档说明我真的是服了&#xff0c;这个文档&#xff0c;抛出来看的人真的是一头雾水&#xff0c;算了&#xff0c;我也不做过多评判&#xff1b;下面看我调用的示例代码 2、示例代码 /*** 上传pdf* https://api.weixin.qq.com/card/invoice…

HTML+CSS实训——Day13——学习MySQL

前言 已经过去三周了&#xff0c;现在是第四周&#xff0c;之前所有的数据都是在本地的&#xff0c;还没有学到数据库&#xff0c;这周开始使用数据库了。 我自用的是navicat 连接服务器 我们新建一个连接&#xff0c;写上主机和端口号&#xff0c;再写上用户名和密码就可以…

【新版】系统架构设计师 - 计算机系统基础知识【补充】

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 计算机系统基础知识【补充内容】计算机语言多媒体系统工程霍尔的三维结构切克兰德方法并行工程方法综合集成法WSR&#xff08;物理-事理-人理&#xff09;系统方法系统工程生命周期7阶段生命周期方…