深度学习入门(一)之感知机

news2025/1/24 14:47:59

文章目录

  • 前言
  • 什么是感知机
  • 简单的逻辑电路
    • 与门
    • 与非门和或门
  • 感知机的实现
    • 简单的实现
    • 导入权重和偏置
  • 感知机的局限性
    • 异或门
    • 线性和非线性
  • 多层感知机
    • 已有门电路的组合
    • 异或门的实现
  • 代码合集

前言

感知机是由美国学者1957年提出来,作为神经网络的起源算法。因此学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。

严格的来讲,感知机因该称为人工神经元或者朴素感知机。

什么是感知机

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

介绍一个接收两个输入信号的感知机的例子

x1、x2是输入信号,y是输出信号,w1、w2是权重。图中的⭕成为“神经元”。输入信号被送到神经元时,乘固定的权重(w1x1、w2x2)。神经元会计算传送过来的信号的总和,只有总和超过某个界限制时,才会输出1,也成为“神经元被激活”。界限值称为阈值,使用符号θ

在这里插入图片描述

感知机的运行原理只有这些!!!

公式表达:

y = { 0 , ( w 1 x 1 + w 2 x 2 ) ≤ θ 1 , ( w 1 x 1 + w 2 x 2 ) > θ y=\begin{cases} 0,(w1x1+w2x2)\leq\theta\\ 1, (w1x1+w2x2)\gt\theta\end{cases} y={0(w1x1+w2x2)θ1(w1x1+w2x2)>θ
感知机的多个输入信号都有各自的权重值,这些权重发挥着控制各个信号的重要性,权重越大,对应的信号就越强烈!!!!

接下来用感知机来解决简单问题……

简单的逻辑电路

与门

与门仅在两个输入均为1时输出1,其他情况为0。

x1x2y
000
010
100
111

下面考虑使用感知机实现。需要做的就是能满足上表。

实际上,满足上表中的条件需要参数的选择,参数的选择有无数个,比如当(w1,w2,θ)=(1.0,1.0,1.0)时可以满足与门的条件。

与非门和或门

与非门就是颠倒了与门的输出,仅当x1和x2同时为1时输出0,其他情况为1。

x1x2y
001
011
101
110

与非门的参数组合?其实就是把与门的参数符号取反就可以。

如当(w1,w2,θ)=(-1.0,-1.0,-1.0)时可以满足与非门的条件。

或门只要有一个输入信号是1时,输出就为1

x1x2y
000
011
101
111

这里决定感知机参数的并不是计算机,而是我们人,真值表中的数据类似于“训练数据”,我们想到参数的值。但是在机器学习中这个参数的决定是由计算机自动进行学习是确定合适参数的过程,而人要做的是思考感知机的构造模型,把训练数据交给计算机。

与门、与非门、或门的感知机构造是一样的,只是需要合适的调整参数

感知机的实现

简单的实现

定义一个接收参数的AND函数,在函数内初始化参数w1、w2、theta,当输入的加权总和超过阈值时返回1, 否则返回0。

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
result = AND(0, 1)
print(result)

导入权重和偏置

修改为另外一种实现形式,把θ换成-b,于是形成一种公式
y = { 0 , ( b + w 1 x 1 + w 2 x 2 ) ≤ 0 1 , ( b + w 1 x 1 + w 2 x 2 ) > 0 y=\begin{cases} 0,(b+w1x1+w2x2)\leq0\\ 1, (b+w1x1+w2x2)\gt0\end{cases} y={0(b+w1x1+w2x2)01(b+w1x1+w2x2)>0
虽然符号不相同,但是内容完全相同,b成为偏置,w1和w2称为权重,感知机会计算输入信号和权重的乘积,再加上偏置。

import numpy as  np
x = np.array([0,1]) # [0 1]
w = np.array([0.5,0.5])
b = -0.7
print(np.sum(w*x)+b)

在NumPy数组的乘法运算中,当两个数组的元素个数相同时, 各个元素分别相乘

因此wx的结果就是它们的各个元素分别相乘([0, 1] * [0.5, 0.5] => [0, 0.5]),之后,np.sum(wx)再计算相乘后的各个元素的总和。

这里把**-θ叫为偏置为b**,注意偏置和权重w1,w2的作用不一样。具体的说w1和w2是控制输入信号的重要参数,而偏置是调整神经元被激活的容易程度的参数。比如b为-0.1时,则只需要输入信号的加权总和超过0.1,神经元就会被激活。偏置的值决定了神经元被激活的容易程度。

感知机的局限性

异或门

x1和x2二者不一样时输出1

x1x2y
000
011
101
110

实际上,前面介绍的感知机是无法实现这个异或门的。

为什么可以使用感知机实现与门,与非门和或门,但是无法实现异或门的

再或门的情况下,权重(b,w1,w2)=(-0.5,1.0,1.0)时,此时感知机可用下面表示
y = { 0 , ( − 0.5 + x 1 + x 2 ) ≤ 0 1 , ( − 0.5 + x 1 + x 2 ) > 0 y=\begin{cases} 0,(-0.5+x1+x2)\leq0\\ 1, (-0.5+x1+x2)\gt0\end{cases} y={0(0.5+x1+x2)01(0.5+x1+x2)>0
在这里插入图片描述

由直线-0.5+x1+x2=0分割开的两个空间。一个空间输出1,一个空间输出0。如果制作或门,需要用直线将上图的○和△分开。实际上,直线就将这四个点正确分开了。

在这里插入图片描述

想要用一条直线是无法将○和△分开

线性和非线性

在异或门中,无法用一条直线分开,但是如果将这个“直线”限制条件去除。

感知机的局限性就在于只能由一条直线分割的空间,下图的曲线无法用感知机表示。

**直线分割的空间称为线性空间。曲线分割的为非线性空间。**线性、非线性在机器学习领域中很常见

在这里插入图片描述

多层感知机

实际上,感知机可以进行叠加,在单层感知机中,不能对异或进行表示,但是多层感知机可以进行表示。

已有门电路的组合

要实现异或门,要对与门,与非门,或门进行配置。

在这里插入图片描述

严格的来讲,单层感知机无法表示异或门或者无法分离非线性空间,接下来我们可以通过多层感知机来实现异或门

在这里插入图片描述

通过与门,与非门,或门组合进行表示异或门。

在这里插入图片描述

异或门的实现

# 异或门的实现
def XOR(x1, x2):
    s1 = OR(x1, x2)
    s2 = NAND(x1, x2)
    return AND(s1, s2)
result = XOR(1,1)
print(result)

异或门是一种多层结构的神经网络。最左边的从第0层开始,前面介绍的与门,与非门,或门为单层感知机,异或门为多层感知机。

在这里插入图片描述

在上图中的两层感知机中,现在第0层和第1层的神经元之间进行信号的传送和接收,然后再第1层和第2层进行信号的传送和接收。

1.在第0层的两个神经元接收输入信号,并将信号发送到第1层的神经元。

2.第1层的神经元将信号发送到第2层,第二层的神经元输出y

感知机的叠加能够进行非线性的表示

代码合集

# 与门的实现
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


# 或门的实现
def OR(x1, x2):
    w1, w2, theta = 1, 1, 0  # 初始化参数
    tmp = x1 * w1 + x2 * w2
    if tmp <= theta:
        return 0
    else:
        return 1


# 与非门的实现
def NAND(x1, x2):
    w1, w2, theta = -0.5, -0.5, -0.7  # 初始化参数
    tmp = x1 * w1 + x2 * w2
    if tmp <= theta:
        return 0
    else:
        return 1


# 异或门的实现
def XOR(x1, x2):
    s1 = OR(x1, x2)
    s2 = NAND(x1, x2)
    return AND(s1, s2)
result = XOR(1,1)
print(result)

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

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

相关文章

基于jsp+ssm+springboot的高校校园点餐系统【毕业论文+源码】

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

非技术背景项目经理如何发展?

非技术背景的项目经理在现代企业中扮演着重要的角色&#xff0c;他们负责协调和管理项目的各个方面&#xff0c;确保项目按时、按预算和按质量要求完成。对于没有技术背景的项目经理来说&#xff0c;他们需要通过一些特定的方法和策略来发展自己的职业生涯。 首先&#xff0c;…

七大排序的顶级理解(近万字详解)

目录 1. 排序的概念及引用 2.常见的排序算法 2.1直接插入排序 2.2希尔排序( 缩小增量排序 ) 2.3选择排序 2.4堆排序 2.5冒泡排序 2.6快速排序 2.6.1Hoare版 2.6.2挖坑法 2.6.3前后指针 2.7快速排序优化 2.7.1递归优化 2.7.2非递归实现快速排序 2.8归并排序 …

k8s-19 资源限制与监控

资源限制 上传镜像 limitrange 创建pod 自动添加限制 limitrage 是给所有的pod 都加range 自定义限制的pod也需要在limitrange定义的区间内 资源限制 创建的ResourceQuota对象将在default名字空间中添力头下限制:每个容器必须设置内存请求(memory request)&#xff0c;内存限…

苹果手机视频误删怎么恢复?这3个方法分享给大家!

在手机相册中&#xff0c;除了照片&#xff0c;其余占据空间最多的便是视频了。视频和照片一样&#xff0c;都是我们用来记录生活的一种方式。在这个盛行短视频的时代&#xff0c;越来越多小伙伴喜欢在各个平台分享自己的生活。 对于他们或者是一些职业博主来说&#xff0c;视…

模拟IIC通讯协议(stm32)(硬件iic后面在补)

一、IIC基础知识总结。 &#xff08;1&#xff09;IIC通讯需要两条线就可以&#xff0c;SCL、SDA。 &#xff08;2&#xff09;IIC的数据传输的速率&#xff0c;不同的ic是不同的&#xff0c;根据电平维持的延时函数的时间来确定IIC数据传输的速率. &#xff08;3&#xff09;I…

16603/16604系列噪声源

仪器仪表苏州新利通 16603/16604系列噪声源 16603/16604 series noise sources 噪声源是一种能产生随机连续频谱信号的装置 国产思仪噪声源 01 产品综述 噪声源是一种能产生随机连续频谱信号的装置&#xff0c;良好的噪声源应在规定的频带内具有稳定的输出噪声功率和均匀的功…

QT10_16

X-mind #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(536,412);this->setWindowTitle(" 坤坤之家");this->setWindowIcon(QIcon("D:/Ubuntushare/preview.gif"));this->setWindowFlag…

工业机器视觉系统构成及功能

工业机器视觉系统构成及功能 工业机器视觉系统由光源、光学传感器、图像采集设备、图像处理设备、机器视觉软件、辅助传感器、控制单元和执行机构等组件构成。 光源提供光线以辅助图像获取。 光学传感器将外部场景转换为电信号。 图像采集设备将信号转换为图像数据&#xf…

F. Minimum Maximum Distance Codeforces Round 903 (Div. 3)

Problem - F - Codeforces 题目大意&#xff1a;有一棵n个点的树&#xff0c;其中有k个标记点&#xff0c;令点i到所有标记点的最远距离为fi&#xff0c;问所有点中fi的最小值是多少 1<k<n<2e5 思路&#xff1a;我们首先考虑取得最小值的点在哪&#xff0c;我们假设…

MatrixOne Logtail 设计解析

Logtail 是 CN&#xff08;Computation Node&#xff09;与 TN&#xff08;Transaction Node&#xff09;之间的一种日志同步协议&#xff0c;是 CN 和 TN 协同工作的基础。本文将介绍 logtail 协议的基本定位&#xff0c;协议内容和产生过程&#xff0c;也会提及一些遇到的挑战…

银河麒麟服务器x86安装qemu虚拟机

安装虚拟机 桌面右键&#xff0c;选择在终端中打开 输入下面的脚本 yum install -y virt-viewer virt-v2v libvirt* qemu* virt-manager 等待安装完成 安装成功 打开虚拟机软件 新建虚拟机&#xff0c;以windows server 2019为例 选择镜像 点击前进 点击&#xff1a;是 设置…

springboot实战(十)之全网最全RabbitMQ集成

序言 首先我要抛出几个问题让大家思考一下&#xff1a;为什么你的项目中要用MQ呢&#xff1f;使用MQ为你解决了什么问题&#xff1f;当然解决问题的同时它又有哪些弊端值得注意&#xff1f; 如果你不太清楚或者你根本没有考虑过&#xff0c;那么请往下看你会找到你想要的答案。…

安科瑞预付费电能管理系统在学生公寓的应用与分析

安科瑞 崔丽洁 摘要&#xff1a;论文设计了适用于学生公寓的自助式预付费控电控水管理系统&#xff0c;采用多种智能功能&#xff0c;可以监测和显示漏电现象&#xff0c;通过短路、跳线、零线接地等方式防范和记录用户的偷电行为&#xff0c;通过报警和拉闸防止事故的发生。预…

天洑参展第三十五届中国仿真大会

2023年10月14日&#xff0c;由安徽省政府、中国仿真学会主办的第三十五届中国仿真大会在安徽合肥召开。中国仿真大会自1989年起每年举办一次&#xff0c;是国内仿真领域规模最大、综合性和影响力最强的大型综合性学术会议。本届学术会以“数字经济、仿真发展”为主题&#xff0…

家电商城小程序制作的流程和好处

在当今的数字化时代&#xff0c;拥有一个自己的家电商城小程序对于家电销售商来说是必不可少的。它不仅可以帮助你扩大市场覆盖范围&#xff0c;还可以提高销售额和客户满意度。那么&#xff0c;如何制作一个家电商城小程序呢&#xff1f;以下是详细的流程和好处。 首先&#x…

【动态规划】1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

提示&#xff1a;努力生活&#xff0c;开心、快乐的一天 文章目录 1143. 最长公共子序列&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4bb;代码实现&#x1f3af;题目总结 1035. 不相交的线&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4bb;代码实现&#…

HBase:大数据中的NoSQL

HBase概述 Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;用于存储海量的结构化或者半结构化&#xff0c;非结构化的数据&#xff0c;底层上的数据是以二进制流的形式存储在 HDFS 上的数据块中的 HBase应用场景 写密集型应用&#xff0c;每天写入…

E055-web安全应用-File Inclusion文件包含漏洞初级

课程名称&#xff1a; E055-web安全应用-File Inclusion文件包含漏洞初级 课程分类&#xff1a; web安全应用 实验等级: 中级 任务场景: 【任务场景】 小王接到磐石公司的邀请&#xff0c;对该公司旗下网站进行安全检测&#xff0c;经过一番检查发现了该论坛的某个页面存…

强烈推荐!超低温冰箱监控教程

超低温冰箱监控是在医疗、科研和工业领域中至关重要的技术&#xff0c;被用于储存和保护生物样本、药物、疫苗以及其他温度敏感的物品。有效的监控系统可以确保这些贵重物品在极端低温条件下的安全性和稳定性。 客户案例 医疗研究院 广东某医疗研究院需要存储大量的生物样本和…