感知机
感知机基础知识
感知机是神经网络(深度学习)的起源算法。
感知机可以接收多个输入信息,输出一个信号。
感知机的信号只有“流/不流”(1/0)两种取值。
接收两个信号的感知机,如下图:
x1与x2是输入信号;y是输出信号;
w1与w2是权重。圆圈O代表”神经元”或者”节点”。
输入信号被送往神经元时,会被分别乘以固定的权重(w1 x1, w2 x2)。神经元会计算传送过来的信号总和,只有当这个总和超过某个界限值时,才会输出1,这称为“神经元被激活”。这里将界限值称为阈值,用θ符号表示。
权重越大,对应该权重的信号的重要性就越高。
简单逻辑电路
用感知机实现简单的逻辑电路。
满足条件的(w1,w2, θ)有很多,如(0.5,0.5,0.7)
与非门(NAND gate)
NAND 表示not AND,即将与门结果颠倒。
可以用(w1,w2, θ) =(-0.5,-0.5,-0.7)实现.
或门(OR gate)
NAND 表示not AND,即将与门结果颠倒。
可以用(w1,w2, θ) =(0.5,0.5,0.2)实现
结论:
1)构造相同,只是参数(权重和阈值)不同实现3个不同的电路;
2)w1与w2时控制输入信号的重要参数,偏置是调整神经元被激活的容易程度(输出为1)的参数。
3)有时也将w1与w2,b统称为权重。
感知机局限性
异或门 (XOR gate)
单层感知机只能表示线性空间。
线性空间:直线分割成的空间;
非线性空间:曲线分割成的空间。
或门的输出
异或门的输出
异或门的输出,无法用线性切割。与门、与非门、或门均可用线性切分。
多层感知机实现异或门
代码实现:
异或门是一种多层神经网络,如下图:
注:有人称这为3层感知机;也有称2层感知机,因为只有2层有权重。
结论:
1)单层感知机只能表示线性空间,多层感知机可以表示多层空间;
2)多层感知机在理论上可以表示计算机.
如果喜欢作者,欢迎关注公众号:‘阿旭算法与机器学习’,共同学习交流。