1. 感知机的基本原理
关于感知机的知识,需要了解的是激活是什么?输入、输出又是什么?权重、偏置又是什么?下面结合一张图说明一下
图中○代表一个神经元,当输入信号传递到神经元时,会被乘以固定的权重值,即,神经元会求取传递到该神经元的所有的和,即, 当所求Sum超过一定阈值时,称神经元被激活,若用数学公式表述如下:
若将上述的移到左边,并用b表示,则b称为偏置,则表达式如下:
2. 感知机表示与门 或门 非门 异或门
以或门为例,它的真值表如下:
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
当输入 (0或者1)与适当的权重配合后,能够实现一个表示或门的感知机,下面用Python代码进行演示:
import numpy as np
# x传入的是numpy类型的向量
def OR_Gate(X):
#w1,w2 = 0.5,0.5, 定义如下
W = np.array([[0.5], [0.5]])
b = 0.2
y = np.dot(X, W) - b
if y > 0:
return 1
else:
return 0
if __name__ == '__main__':
X = np.array([1, 1])
val = OR_Gate(X)
print(val)
与门 或门 非门都可以用以上方法进行生成,只是权重和偏置不同,但是异或门却无法用单层感知机实现,原理如下图:
但是异或门可以由与非门 与门 或门三者实现(代码略),也就是多层感知机能够表示非线性问题
以上就是简单的感知机原理及其实现一些简单的逻辑门电路的方法。