感知机实现与、或、与非门和异或门

机器学习-感知机【perceptron】

    • what is 感知机
    • 单层感知机运用实例
    • 多层感知机

what is 感知机

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

接收两个信号的感知机,如下图:

在这里插入图片描述

x1与x2是输入信号;y是输出信号;

w1与w2是权重。圆圈O代表”神经元”或者”节点”。

神经元被激活:当x1w1+x2w2超过某个界限值时,y才会输出1。

阈值:这里将界限值称为阈值,用θ符号表示。

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

由此可以得到感知机的一种数学表示方法:

在这里插入图片描述

感知机的另一种数学表示方法:

在这里插入图片描述

上式的b称为偏置。感知机计算输入信号和权重的乘积,然后加上偏置,这个值大于0则输出1,否则输出0。

单层感知机运用实例

使用感知机可以实现与、或、与非门。

首先与门,两个都是1,才输出1:

import numpy as npdef AND(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])b = -0.7tmp = np.sum(w*x) + bif tmp <= 0:return 0else:return 1if __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

然后是或门,两个输入只要有一个是1,就输出1.

import numpy as npdef OR(x1, x2):x = np.array([x1, x2])w = np.array([0.5, 0.5])b = -0.2tmp = np.sum(w*x) + bif tmp <= 0:return 0else:return 1if __name__ == '__main__':for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:y = OR(xs[0], xs[1])print(str(xs) + " -> " + str(y))

输出结果:

(0, 0) -> 0
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 1

最后是与非门,就是把与的结果取反:

import numpy as npdef NAND(x1, x2):x = np.array([x1, x2])w = np.array([-0.5, -0.5])b = 0.7tmp = np.sum(w*x) + bif tmp <= 0:return 0else:return 1if __name__ == '__main__':for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:y = NAND(xs[0], xs[1])print(str(xs) + " -> " + str(y))

输出结果:

(0, 0) -> 1
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 0

由上面的例子我们可以看出,与、或、与非门是具有相同构造的感知机,区别只在于权重w和偏置b的值不同。

多层感知机

首先来看一下异或逻辑的真值表:

输入x1输入x2输出Y
000
011
101
110

将他们标在平面坐标系中可发现,任何直线也不能把两类样本分开。

在这里插入图片描述

单层感知机的数学表示方法如下:

在这里插入图片描述

它的几何意义:w2x1+w2x2+b=0是一条直线,这条直线分割开两个空间,其中一个空间输出1,另一个空间输出0 。

也就是说通过单层感知机,无法把异或逻辑的两类样本分开。

单层感知机只能表示由一条直线分割的空间;非线性空间:曲线分割成的空间。

之前已经用单层感知机实现了与门、与非门、或门,那么实现异或门的话,可以把前面那几个门叠加起来。

x1,x2表示输入,s1表示与非门的输出,s2表示或门的输出,y表示与门的输出

在这里插入图片描述

通过观察x1、x2、y的值,发现,符合异或门的输出。

实现异或门的代码:

from and_gate import AND
from or_gate import OR
from nand_gate import NANDdef XOR(x1, x2):s1 = NAND(x1, x2)s2 = OR(x1, x2)y = AND(s1, s2)return yif __name__ == '__main__':for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:y = XOR(xs[0], xs[1])print(str(xs) + " -> " + str(y))

输出结果:

(0, 0) -> 0
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 0

由上述可知,通过叠加层,感知机能进行更加灵活的表示。如果说通过组合与非门可实现计算机,那么通过组合感知机也可以表示计算机。

已有研究证明,2层感知机可以表示任意函数,但是不容易设计合适的权重和构造。通常用小模块叠加的方法来构造,就比如上面的先实现与门、或门、与非门,再叠加起来实现异或门。

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

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

相关文章

神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现what is 激活函数激活函数的python实现python实现阶跃函数python实现sigmoid函数python实现ReLU函数激活函数的特点what is 激活函数 感知机的网络结构如下&#xff1a; 左图中&#xff0c;偏置b没有被画出来&#xff0c;如果要表示出b&…

下载MNIST数据集并使用python将数据转换成NumPy数组(源码解析)

下载MNIST数据集并使用python将数据转换成NumPy数组首先来分析init_mnist函数接下来继续分析load_mnist函数实现数据集转换的python脚本的代码显示MNIST图像并确认数据下载MNIST数据集并将数据转换成NumPy数组的Python脚本里面最重要的就是load_mnist函数&#xff0c;其他项目想…

使用python构建三层神经网络、softmax函数

【机器学习】使用python手写三层神经网络输入层到第一层的传递表示第一层到第二层的传递表示第二层到第三层的传递表示全过程传递表示代码输入层到第一层的传递表示 首先看输入层到第一层的第一个神经元的信号传递过程&#xff1a; 可以用数学式子表示第一层的第一个神经元的值…

使用python对数据集进行批处理

【机器学习】使用python对数据集进行批处理 只输入一张图像数据过程和一次性处理100张图像数据过程中&#xff0c;数组形状变换如下图所示&#xff1a; 这些数组形状可以在代码中输出出来&#xff1a; def get_data():(x_train, t_train), (x_test, t_test) load_mnist(norm…

损失函数、python实现均方误差、交叉熵误差函数、mini-batch的损失函数

损失函数what is 损失函数均方误差交叉熵误差计算mini-batch学习的损失函数why 损失函数what is 损失函数 神经网络学习目标是找到各层合适的权重参数w和偏置b&#xff0c;使得最终的输出结果能够与实际结果更加接近。那神经网络的这些权重参数是如何得到的&#xff1a;靠损失…

梯度、梯度法、python实现神经网络的梯度计算

【机器学习】梯度、梯度法、python实现神经网络的梯度计算一、python实现求导的代码&#xff1a;二、what is 梯度三、使用梯度法寻找神经网络的最优参数四、神经网络的梯度计算一、python实现求导的代码&#xff1a; 导数含义也就是&#xff1a;变量x一个微小的变化将导致f(x…

使用反向传播算法计算参数的梯度并用python实现加法和乘法节点的反向传播

使用反向传播算法计算参数的梯度并用python实现加法和乘法节点的反向传播一、what is 反向传播二、乘法节点的反向传播三、加法节点的反向传播四、加法层和乘法层混合应用一、what is 反向传播 误差反向传播法是一种高效计算权重参数的梯度的方法。所谓的反向传播&#xff0c;…

结合反向传播算法使用python实现神经网络的ReLU、Sigmoid、Affine、Softmax-with-Loss层

结合反向传播算法使用python实现神经网络的ReLU、Sigmoid激活函数层 这里写目录标题一、ReLU层的实现二、Sigmoid层的实现三、实现神经网络的Affine层四、Softmax-with-Loss层实现一、ReLU层的实现 正向传播时的输入大于0&#xff0c;则反向传播会将上游的值原封不动地传给下游…

神经网络的SGD、Momentum、AdaGrad、Adam最优化方法及其python实现

神经网络的SGD、Momentum、AdaGrad、Adam最优化方法及其python实现一、SGD二、Momentum-动量三、AdaGrad四、Adam一、SGD 右边的值更新左边的值&#xff0c;每次更新朝着梯度方向前进一小步。 class SGD:"""随机梯度下降法&#xff08;Stochastic Gradient Des…

关于神经网络权重初始值的设置的研究

关于神经网络权重初始值的设置的研究一、权重初始值二、权重初始值会影响隐藏层的激活值分布三、Xavier初始值四、He初始值五、基于MNIST数据集的权重初始值的比较一、权重初始值 权值衰减—抑制过拟合、提高泛化能力。 所谓权值衰减&#xff0c;即&#xff0c;以减小权重参数…

使用权值衰减算法解决神经网络过拟合问题、python实现

使用权值衰减算法解决神经网络过拟合问题、python实现一、what is 过拟合二、过拟合原因三、权值衰减四、实验验证4.1制造过拟合现象4.2使用权值衰减抑制过拟合一、what is 过拟合 过拟合指只能拟合训练数据&#xff0c;但不能很好拟合不包含在训练数据中的其他数据的状态。 …

解决神经网络过拟合问题—Dropout方法、python实现

解决神经网络过拟合问题—Dropout方法一、what is Dropout&#xff1f;如何实现&#xff1f;二、使用和不使用Dropout的训练结果对比一、what is Dropout&#xff1f;如何实现&#xff1f; 如果网络模型复杂&#xff0c;L2范数权值衰减方法就难以对付过拟合。这种情况下&#…

神经网络如何调参、超参数的最优化方法、python实现

神经网络如何调参、超参数的最优化方法、python实现一、what is 超参数二、超参数优化实验一、what is 超参数 超参数是什么&#xff0c;其实就是&#xff0c;各层神经元数量、batch大小、学习率等人为设定的一些数。 数据集分为训练数据、测试数据、验证数据。 用测试数据评…

卷积神经网络的整体结构、卷积层、池化、python实现

卷积神经网络的整体结构、卷积层、池化、python实现一、整体结构二、卷积层三、池化层四、python实现卷积层、池化层一、整体结构 神经网络相邻层所有神经元之间都有连接&#xff0c;称为全连接。前面用Affine层实现了全连接。 举个例子 全连接神经网络结构&#xff1a; 卷积…

基于随机梯度下降法的手写数字识别、epoch是什么、python实现

基于随机梯度下降法的手写数字识别、epoch是什么、python实现一、普通的随机梯度下降法的手写数字识别1.1 学习流程1.2 二层神经网络类1.3 使用MNIST数据集进行学习注&#xff1a;关于什么是epoch二、基于误差反向传播算法求梯度的手写数字识别2.1 学习流程2.2 实现与结果分析一…

基于卷积神经网络的手写数字识别、python实现

一、CNN网络结构与构建 参数&#xff1a; 输入数据的维数&#xff0c;通道&#xff0c;高&#xff0c;长 input_dim(1, 28, 28)卷积层的超参数&#xff0c;filter_num&#xff1a;滤波器数量&#xff0c;filter_size&#xff1a;滤波器大小&#xff0c;stride&#xff1a;步幅…

基于深度学习的手写数字识别、python实现

基于深度学习的手写数字识别、python实现一、what is 深度学习二、加深层可以减少网络的参数数量三、深度学习的手写数字识别一、what is 深度学习 深度学习是加深了层的深度神经网络。 二、加深层可以减少网络的参数数量 加深层的网络可以用更少参数获得与没有加深层同等水…

二极管的结构、特性、参数、稳压管的特性和参数

二极管的结构、特性、参数、稳压管的特性和参数本文介绍的定义一、半导体类型二、PN结的结构与单向导电性三、二极管的伏安特性四、二极管的参数五、稳压管本文介绍的定义 本文介绍的定义&#xff1a;半导体、本征半导体、空穴、载流子、杂质半导体、N型半导体、P型半导体、PN…

双极结型三极管的结构、特性曲线、参数、lceda仿真

双极结型三极管的结构、特性、参数本文介绍的定义一、三极管结构二、三极管特性曲线三、三极管参数本文介绍的定义 硅平面管、锗合金管、发射区、基区&#xff0c;集电区、发射极、基极、集电极、发射结、集电结、发射、发射极电流、复合和扩散、基极电流、收集、集电极电流、…

结型场效应管的结构、特性、参数

结型场效应管的结构、特性、参数本文介绍的定义一、N沟道结型场效应管结构二、N沟道结型场效应管特性曲线本文介绍的定义 场效应管、结型场效应管、N沟道结型场效应管的结构、耗尽层、栅极、源极、漏极、N沟道结型场效应管、夹断电压、预夹断、输出特性、可变电阻区、恒流区、…