当前位置: 首页 > news >正文

【深度学习入门】- 用电路思想解释感知机

🤖🤖🤖🤖 欢迎浏览本博客 🤖🤖🤖🤖
😆😆😆😆😆😆😆大家好,我是:我菜就爱学😆😆😆😆
😆😆😆一名刚刚入行小白👻👻
👻👻从事方向:计算机视觉
🔔🔔我菜就爱学,分享有误,欢迎大佬指出🔔🔔
🌏🌏🌏本篇介绍:单层感知机、多层感知机


文章目录

      • 1 感知机是什么
      • 2 简单逻辑电路
        • 2.1 与门
        • 2.2 与非门
        • 2.3 或门
      • 3 感知机的实现
        • 3.1 简单的实现
        • 3.2 导入权重和偏置
      • 4 感知机的局限性
        • 4.1 异或门
        • 4.2 线性和非线性
      • 5 多层感知机
        • 5.1 用已有门路组成异或门
        • 5.2 异或门代码实现

1 感知机是什么

感知机接收多个输入信号,输出一个信号。感知机信号只有“流/不流(0/1)"两种取值。0对应“不传递信号”,1对应“传递信号”

如下:是一个接收两个输入信号的感知机例子。x1,x2是输入信号,y是输出信号,w1、w2是权重。O为神经元或者节点。输入信号被送往神经元时,会被分布乘以相对的权重(权重越大,对该权重的信号越重要)。然后神经元计算传送过来的总和,当总和超过某个界限时,输出1,该种情况也叫“神经元激活。

在这里插入图片描述

2 简单逻辑电路

2.1 与门

说明:与门是有两个输入和一个输出的门电路。真值表如下。满足真值表的w1、w2、θ的取值如: (w1, w2,θ)=(0
.5,0.5,7)或者(0.5, 0.5,0.8)。仅x1和x*2同时为1,信号的加权总和才会超过给定的阈值 θ 。

在这里插入图片描述

2.2 与非门

说明:与非门就是颠倒了与门的输出。真值表如下。(w1, w2, θ)=(−0.5,0.5,
0
.7)

在这里插入图片描述

2.3 或门

说明:或门是只要有一个输入信号是1,输出就是1。真值表如下。

在这里插入图片描述

3 感知机的实现

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
    else:
        return 1

print(AND(0,0))
print(AND(1,0))
print(AND(0,1))
print(AND(1,1))
'''
0
0
0
1
'''

3.2 导入权重和偏置

说明:把上面的θ换成b,b作为偏置,w1和w2依然函数权重。感知机会计算输入信号和权重的乘积,然后加上偏置。如果这个值大于0则输出1,否则输出0。具体的说:w1和w2是控制输入信号的重要性的参数,而偏置是调整神经元被激活的容易程度(输出信号为1)的参数。比如,若b=-0.1,则输入信号的权重超过0.1,神经元就会被激活。但如果b=-20.0,则输入信号的加权超过20才会被激活。

在这里插入图片描述

#	Numpy数组的乘法中,当两个数组的元素个数相同时,各个元素分布相乘。
x=np.array([0,1])   #x1=0,x2=1
w=np.array([0.5,0.5])#  w1=0.5 w2=0.5
b=-0.7
y=np.sum(w*x)+b
print(y)
# -0.19999999999999996

1)使用权重和偏置实现与门

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

AND()
# 0

4 感知机的局限性

4.1 异或门

说明:用上面介绍的感知机对应异或门的话是无法实现的。如下是异或门的真值表。

在这里插入图片描述

假设权重参数设置为:(b, w1, w2)=(0.5, 1.0,1.0),用或门限量解释,在(x1,x2)=(0,0)时输出0,在(x1,x2)=(0,1)或者(1,0)或者(1,1)时输出1。

如果变成异或门的话,(x1,x2)=(1,1)时输出0,此时无法做到一条线把0和1分割开。

4.2 线性和非线性

说明:感知机的局限性就是在于它只能表示由一条直线分割的空间。若用如下的分割方法,由曲线分割而成的空间为非线性空间,上面或门由直线分割的而形成的空间称为线性空间。

5 多层感知机

说明:虽然感知机不能表示异或门,但是它有叠加层的特性。可以通过叠加层的特性来表示异或门。

5.1 用已有门路组成异或门

如下:分别表示与门、与非门和或门

在这里插入图片描述

然后,组合成为异或门

在这里插入图片描述

在这里插入图片描述

5.2 异或门代码实现

说明:代码实现了异或门,异或门是一种多层结构的神经网络。也叫2层感知机。

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

def NAND(x1,x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])
    b = 0.7
    tmp = np.sum(x * w) + 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(x * w) + b
    if tmp<=0:
        return 0
    else:
        return 1
def XOR(x1,x2):
    s1=NAND(x1,x2)
    s2=OR(x1,x2)
    y=AND(s1,s2)
    return y
print(XOR(0,0))
print(XOR(0,1))
print(XOR(1,0))
print(XOR(1,1))
'''
输出:
0
1
1
0
'''

相关文章:

  • 文字生成图片
  • HTTPS的原理浅析与本地开发实践(下)
  • java-多态
  • 一、CSS文本样式[文本基础、文本样式、段落控制]
  • Nginx网络服务的配置
  • m基于随机接入代价的异构网络速率分配算法matlab仿真(包括matlab仿真录像)
  • 【VUE的Form表单】使用v-if切换控件时,表单校验不生效
  • EnumWindowsProc
  • SSL安全证书:免费的SSL证书申请渠道有哪些?
  • SQL语言---数据的查询
  • 建模杂谈系列162 APIFunc: 可靠的复杂函数开发3
  • nslookup命令的常见用法
  • 如果你也想在linux中删除指定行
  • 掩码和反掩码的使用场景
  • QT案例实战1 - 从零开始编写一个OCR工具软件 (3)创建项目
  • [译]Python中的类属性与实例属性的区别
  • 【笔记】你不知道的JS读书笔记——Promise
  • AHK 中 = 和 == 等比较运算符的用法
  • emacs初体验
  • export和import的用法总结
  • express + mock 让前后台并行开发
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Leetcode 27 Remove Element
  • Logstash 参考指南(目录)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue总结
  • Wamp集成环境 添加PHP的新版本
  • WebSocket使用
  • 半理解系列--Promise的进化史
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 工作中总结前端开发流程--vue项目
  • 蓝海存储开关机注意事项总结
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 区块链技术特点之去中心化特性
  • 设计模式 开闭原则
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 为什么要用IPython/Jupyter?
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • (4)STL算法之比较
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (笔试题)合法字符串
  • (二)学习JVM —— 垃圾回收机制
  • (原創) 未来三学期想要修的课 (日記)
  • (转)socket Aio demo
  • .aanva
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NetCore项目nginx发布
  • .net流程开发平台的一些难点(1)
  • .net图片验证码生成、点击刷新及验证输入是否正确