苏州网站开发公司兴田德润优惠吗,在线网页代理浏览免费,深圳保障性住房可以买卖吗,基层建设 网站机器学习-感知机【perceptron】what is 感知机单层感知机运用实例多层感知机what is 感知机
感知机接收多个输入信号#xff0c;输出一个信号。
接收两个信号的感知机#xff0c;如下图#xff1a; x1与x2是输入信号#xff1b;y是输出信号#xff1b;
w1与w2是权重。圆…
机器学习-感知机【perceptron】what is 感知机单层感知机运用实例多层感知机what is 感知机
感知机接收多个输入信号输出一个信号。
接收两个信号的感知机如下图 x1与x2是输入信号y是输出信号
w1与w2是权重。圆圈O代表”神经元”或者”节点”。
神经元被激活当x1w1x2w2超过某个界限值时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输出Y000011101110
将他们标在平面坐标系中可发现任何直线也不能把两类样本分开。 单层感知机的数学表示方法如下 它的几何意义w2x1w2x2b0是一条直线这条直线分割开两个空间其中一个空间输出1另一个空间输出0 。
也就是说通过单层感知机无法把异或逻辑的两类样本分开。
单层感知机只能表示由一条直线分割的空间非线性空间曲线分割成的空间。
之前已经用单层感知机实现了与门、与非门、或门那么实现异或门的话可以把前面那几个门叠加起来。
x1x2表示输入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层感知机可以表示任意函数但是不容易设计合适的权重和构造。通常用小模块叠加的方法来构造就比如上面的先实现与门、或门、与非门再叠加起来实现异或门。