《深度学习入门:基于python的理论与实现》chap2感知机

news2024/12/23 9:56:23

文章目录

  • 2.1 什么是感知机
  • 2.2 简单逻辑电路 &2.3 感知机的实现
    • 引入偏置
    • 与门 And gate
    • 与非门(NAND gate)
    • 或门 OR gate
  • 2.4 感知机的局限性(单层感知机无法分离非线性空间)
    • 2.4.1 异或门
    • 2.4.2 线性和非线性
  • 2.5 多层感知机(multi-layered perception)
    • 2.5.1 已有门电路的组合
    • 2.5.2 异或门的实现
  • 2.6 从与非门到计算机
  • 2.7 小结

入坑AI的时候就是看的这本书,当时比较粗略地看到了第六章,没有记笔记,现在来重温一下,力求建立自己的知识体系

本chap学习感知机(perceptron)这一算法并利用感知机解决一些简单的问题。感知机是由美国学者Frank Rosenblatt在1957年提出来的。

严格地讲,本章中所说的感知机应该称为“人工神经元”或“朴素感知机”,但是因为很多基本的处 理都是共通的,所以这里就简单地称为“感知机”。

2.1 什么是感知机

既然是再次看这本书,就尝试自己总结和概况

  • 我觉得学习计算机要实时秉持输入经过某个function得到输出的观念,感知机,从字面上看,感知一些东西,经过某个function,做出反应,那么感知的东西就是输入,作出的反应就是输出

  • 那么输入是什么呢?
    • 感知机会接收信号,这里的信号取值是0或1
      • 0对应不传递信号
      • 1对应传递信号
  • function是什么?
    • 使得每个输入信号乘以其固定的权重(weight)再相加
  • 输出是什么?
    • 这些信号分别与他们的权重相乘之后再相加的结果,也作为一个信号输出,也是0或1
    • 那么什么情况会输出1(称为“神经元被激活”),什么时候输出0呢
      • 前面说的相加的结果,也就是信号的总和,会和一个界限值进行比较,这个界限值称为阈值(threshold)

  • 图示和数学表达式
    • 图示

      在这里插入图片描述

    • 数学表达式

      在这里插入图片描述


2.2 简单逻辑电路 &2.3 感知机的实现

引入偏置

把前面的式子变一变,这里把−θ命名为偏置b,偏置的值决定了神经元被激活的容易程度。

在这里插入图片描述

w1和w2是控制输入信号的重要性的参数,而偏置是调整神经元被激活的容易程度(输出信号为1的程度)的参数

比如,若b为 −0.1,则只要输入信号的加权总和超过0.1,神经元就会被激活。但是如果b 为−20.0,则输入信号的加权总和必须超过20.0,神经元才会被激活。

哈哈 在数电里面学过了这些gates,那这里就记录一些英文表达

与门 And gate

  • 我们尝试找一个能实现与门功能的感知机,与门的输入输出我们知道了,那就是要找剩下的几个参数,两个权重和一个阈值

  • 书上给的这个例子 0.5,0.5,0.7

    tmp那里是把前面的数学公式右边减到左边来了,当且仅当x1=1,x2=1时,0.5x1+0.5x1>0.7

    # 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))
    
    (0, 0)->0
    (1, 0)->0
    (0, 1)->0
    (1, 1)->1
    

    有无数组参数都可以做到,比如

        w = np.array([0.6, 0.5])
        b = -0.95
    
  • 回忆一下数电,输入的0表示低电平,1表示高电平,输出也是两种情况,低电平or高电平

    • 中间也是经历了一些计算,不过那个涉及模电了,不是这种简单的感知机

与非门(NAND gate)

NAND ,即Not AND

  • 与非门就是颠倒了与门的输出

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

  • 代码实现

    # 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))
    

或门 OR gate

  • 我们来思考一下参数, 根据或或门的特点,w1和w2都要比θ大,然后θ>=0即可

    也就是 0<=θ< min[w1,w2]

    θ=-b(代码里面)

  • code

    # 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 异或门

  • 异或门也被称为逻辑异或电路,x1和x2相同时,输出0,不同时输出1

哈哈哈我记得大一学C语言的时候,异或和同或总是傻傻分不清🤣😓😓😓

  • 前面的感知机能否实现这个异或门呢

  • 之前在凑前几个参数的具体值的时候,我是将00,y ;01,y;10,y;11,y四种情况代入进去分析的

  • 再来看看书上是如何分析的

    • 将或门的动作形象化。或门的情况下,当权重参数 (b, w1, w2) = (−0.5, 1.0, 1.0)时可满足真值表

      • 感知机会生成由直线−0.5 + x1 + x2 = 0分割开的两个空 间。其中一个空间输出1,另一个空间输出0

        • 或门在(x1, x2) = (0, 0)时输出0,在(x1, x2)为(0, 1)、(1, 0)、(1, 1)时输 出1。图2-6中,○表示0,△表示1
        • 如果想制作或门,需要用直线将图2-6中的○和△分开。实际上,刚才的那条直线就将这4个点正确地分开了
    • 换成异或门还能找条直线来分开吗?

      其实和我前面推导的式子来理解也一样,直线的斜率一会儿大于0,一会儿小于0,分不开的

2.4.2 线性和非线性

  • 图2-7中的○和△无法用一条直线分开,但是如果将“直线”这个限制条件去掉,就可以实现了。比如,我们可以像图2-8那样,作出分开○和△的空间。
  • 感知机的局限性就在于它只能表示由一条直线分割的空间。图2-8这样弯曲的曲线无法用感知机表示。另外,由图2-8这样的曲线分割而成的空间称为 非线性空间,由直线分割而成的空间称为线性空间。线性、非线性这两个术语在机器学习领域很常见,可以将其想象成图2-6和图2-8所示的直线和曲线。

2.5 多层感知机(multi-layered perception)

  • 虽然无法利用一个感知机直接实现异或门,但是我们能不能叠加多层来实现呢?Yes
    • 异或门的制作方法有很多,其中之一就是组合我们前面做好的与门、与 非门、或门进行配置
  • 实际上,与门、或门是单层感知机,而异或门是2层感知机。叠加了多 层的感知机也称为多层感知机(multi-layered perceptron)

2.5.1 已有门电路的组合

  • 书上给了这种做法

    (与非)和(或)再与

2.5.2 异或门的实现

  • code

    # coding: utf-8
    from and_gate import AND
    from or_gate import OR
    from nand_gate import NAND
    
    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))
    

2.6 从与非门到计算机

  • 与非门可以使用感知机实现。也就是说,如果通过组合与非门可以实现计算机的话,那么通过组合感知机也可以表示计算机(感知机的组合可以通过叠加了多层的单层感知机来表示)。

  • 感知机通过叠 加层能够进行非线性的表示,理论上还可以表示计算机进行的处理

2.7 小结

感知机是神经网路的基础

  • 感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值
  • 感知机将权重和偏置设定为参数
  • 使用感知机可以表示与门和或门等逻辑电路
  • 异或门无法通过单层感知机来表示,可以使用2层感知机来表示
  • 单层感知机只能表示线性空间,而多层感知机可以表示非线性空间
  • 多层感知机(在理论上)可以表示计算机

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

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

相关文章

Git 工具原理及使用 -- 基本使用

Git 工具原理及使用 – 基本使用 文章目录 Git 工具原理及使用 -- 基本使用1.创建本地仓库2.配置本地仓库3.认识工作区、暂存区、版本库4.添加文件 -- 场景一5.查看.git文件6.添加文件 -- 场景二7.修改文件8.版本回退9.撤销修改**情况一&#xff1a;对于工作区的代码&#xff0…

【哈士奇赠书活动 - 28期】- 〖产品经理就业实战〗

文章目录 ⭐️ 赠书 - 《产品经理就业实战》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《产品经理就业实战》 ⭐️ 内容简介 本书专门为想要入行从事产品经理相关工作的零基础就业人员而编写&#xff0c;涵盖了在产品准备阶段、产品开发阶…

TipDM数据挖掘建模平台产品功能特点

TipDM数据挖掘建模平台是可视化、一站式、高性能的数据挖掘与人工智能建模服务平台&#xff0c;致力于为使用者打通从数据接入、数据预处理、模型开发训练、模型评估比较、模型应用部署到模型任务调度的全链路。平台内置丰富的机器学习、深度学习、人工智能算法&#xff0c;可覆…

桥接模式(Bridge)

定义 桥接是一种结构型设计模式&#xff0c;可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构&#xff0c;从而能在开发时分别使用。 前言 1. 问题 假如你有一个几何形状&#xff08;Shape&#xff09;类&#xff0c; 从它能扩展出两个子类&#xff1a…

2023最强免费的AI生成图像工具其1

Midjourney虽然很强&#xff0c;但是要钱.Stable Diffusion也很强&#xff0c;但是对于小白来说部署起来也是很麻烦。我们整理了一些已经上线了的&#xff0c;可以直接访问和使用的AI生成图像的工具网站集合。 收录到 2023 最强免费AI生成图像工具集合系列https://www.webhub1…

STM32速成笔记—RTC

文章目录 一、RTC简介二、STM32的RTC2.1 主要特性2.2 RTC框图介绍 三、访问后备区域步骤四、RTC配置步骤五、RTC程序配置5.1 RTC结构体定义5.2 RTC初始化函数5.3 设置年月日&#xff0c;时分秒5.4 判断闰年函数5.5 获取当前年月日&#xff0c;时分秒5.6 获取星期几5.7 中断服务…

【②MySQL 】:测试数据准备、SQL语句规范与基本操作

前言 欢迎来到小K的MySQL专栏&#xff0c;本节将为大家准备MySQL测试数据、以及带来SQL语句规范、数据库的基本操作的详细讲解~✨文末送书&#xff0c;小K赠书活动第二期 目录 前言一、准备测试数据二、SQL语句规范三、数据库的基本操作四、总结&#xff1a;文末赠书 一、准备测…

智能应急疏散系统在大型建筑中的的功能与应用

安科瑞 华楠 摘 要&#xff1a;随着经济的不断发展和城市化进程的推进,城市建筑逐渐发展为高层化、大型化和功能综合化,大空间的建筑物增多。为了实现以人为本,坚持可持续发展理念,保证城市建设系统的正常运行,安全防灾系统在建筑中必不可少,而火患是一项重要的防范内容,要不断…

使用RabbitMQ死信队列关闭未支付的订单

一、什么是RabbitMQ死信队列 RabbitMQ死信队列&#xff08;Dead-Letter Exchange&#xff0c;简称DLX&#xff09;是一种特殊类型的交换机&#xff0c;用于处理在队列中无法被消费的消息。当消息无法被消费时&#xff0c;它会被转发到死信队列中&#xff0c;以便进一步处理。 …

7-WebApis-1

Web APIs - 1 掌握DOM属性操作&#xff0c;完成元素内容设置&#xff0c;元素属性设置&#xff0c;控制元素样式 DOM简介获取DOM元素操作元素内容操作元素属性定时器-间隔函数综合案例 描述属性/方法效果获取DOM对象document.querySelector()获取指定的第一个元素document.que…

nuxt 设置i18n后多语言文件不会动态更新

nuxt 设置i18n后多语言文件不会动态更新 昨天遇到的一个问题&#xff0c;然后研究了一整天&#xff0c;今天才得到解决 nuxt 设置i18n多语言时多语言文件不会动态更新 我的原始代码如下&#xff1a; {modules: [nuxtjs/i18n,],i18n: {locales: [{code: en,iso: en-US,name:…

构建可靠软件的关键步骤之单元测试

引言&#xff1a;在当今快节奏的软件开发环境中&#xff0c;构建可靠的软件是至关重要的。单元测试作为软件开发过程中的关键步骤之一&#xff0c;能够帮助开发者发现和解决代码中的错误&#xff0c;确保代码的正确性。本文将详细介绍单元测试的概念、重要性以及如何有效地进行…

impala远程连接失败排查

周一开发反馈在本地电脑上连接impala失败&#xff0c;怀疑是服务问题。测试后发现服务正常&#xff0c;故障也恢复了&#xff0c;就没追究&#xff0c;第二天又出现相似的故障。服务依然正常。怀疑是网络问题。联系网络同事排查。telnet通。网络负载也不是很高&#xff0c;搁置…

档案库房温湿度标准及措施【档案八防十防解决方案】

档案馆库房温湿度调控标准及相应的措施方案 档案库房是档案保管的基本条件&#xff0c;档案库房温湿度与保护档案&#xff0c;延长档案寿命有很大关系。 档案库房适宜温湿度标准为&#xff1a;温度14℃—24℃&#xff0c;相对湿度45&#xff05;一60 一、库房温湿度对档案的影响…

基于Arduino单片机超声波测距仪设计

文章目录 摘 要 1.课程设计任务 1.1课程设计题目 1.2设计的要求 2.设计总体方案 2.1初步设计方案 2.2各个单元电路的设计要求 2.3主要性能指标 2.4总体方案 3.单元模块设计 3.1显示模块 3.2超声波测距模块 3.3蜂鸣器模块 3.4电机模块 3.5 LED二极管模块 4.软件…

【三维编辑】Editing Conditional Radiance Fields 编辑条件辐射场

Editing Conditional Radiance Fields&#xff08;ICCV 2021&#xff09; 作者单位&#xff1a;Steven Liu, Xiuming Zhang, Zhoutong Zhang, Richard Zhang MIT, Adobe Research, CMU 代码地址&#xff1a;https://github.com/stevliu/editnerf 文章目录 摘要前言一、相关工作…

避雷器带电监测仪

一、产品特点&#xff1a; 本机采用大屏幕液晶显示&#xff0c;全中文菜单操作&#xff0c;使用简便高精度采样、处理电路&#xff0c;先进的付里叶谐波分析技术&#xff0c;确保数据更加可靠 仪器采用独特的高速磁隔离数字传感器直接采ji输入的电压、电流信号&#xff0c;保证…

HTML 全面入门教程:从基础到高级

目录 一、基本结构和标签1. HTML 文档结构2. 常用标签 二、表单和输入元素1. 表单标签&#xff08;<form>&#xff09;2. 输入元素3.实例 三、样式和布局1. 内联样式2. 内部样式表3. 外部样式表 四、多媒体和嵌入内容1. 图像2. 音频和视频3. 嵌入内容 五、语义化标签语义…

胎压计PCBA方案设计

汽车的出现极大的方便了人们的交通出行&#xff0c;随着经济社会的发展&#xff0c;人们生活水平显著提高&#xff0c;不少家庭都购买了汽车。但是车主们不仅要知道开车&#xff0c;更需要知道检测汽车胎压。气压计也称为胎压计&#xff0c;是一种检测胎压的测量仪器。电子产品…

RabbitMQ学习笔记6(小滴课堂)路由,主题模式

我们去修改我们的生产者代码&#xff1a; 我们去修改我们的消费者&#xff1a; 第一个节点&#xff1a; 我们还要去创建其它更多的节点&#xff1a; 这里第二个节点我们只绑定一个交换机队列。 我们去分别启动消费者和生产者&#xff1a; 我们可以看到第一个交换机只绑定了一…