要入门神经网络,首先要搞清楚什么是感知机,先上一张图,
感知机其实就是一个算法,它能接收一个或多个输入信息,经过一定的处理,产生一个或多个输出,上图中,有两个输入x1和x2,其中w1是x1的权重,w2是x2的权重,y是输出,
- 当w1 * x1 + w2 * x2 + b <= 0 时, y = 0
- 当w1 * x1 + w2 * x2 + b > 0 时, y = 1
感知机到底有啥用呢?感知机其实是一个通用的算法表示形式,只要我们知道w1, w2 和 b,就确定了这个算法,举个例子,我们可以用感知机表示与的逻辑,即当且仅当x1和x2都等于1时,y等于1,其它时候都等于0,
通过输出和输入,我们可以肉眼看出多个解,比如:
- w1 = 1,w2 = 1,b = 1
- w1 = 0.5,w2 = 0.5,b = 0.6
感知机是有局限的,假设你要用感知机实现异或逻辑,即如果x1和x2相同,则y=1,如果1,如果x1和x2不同,则y=0。
试试看,你能解出w1,w2 和 b吗?答案是无解,这时需要2层感知机,如下图所示:
对应的数值表如下图所示,先用x1和x2通过与非逻辑算出 s1,再利用x1和 x2通过或逻辑算出 s2,最后再利用s1和s2通过与逻辑算出 y 。
不要小看两层感知机,两层感知机就可以构建一个计算机了。