【原创】深度学习第3弹:神经元的极限


一、前文回顾

上一节我们通过神经元模拟了逻辑与,非,或门。你会发现他们的构造其实一样的,都是一个神经元,不同的是权重值不一样,那么同样的方法我们来模拟一下另外一个逻辑电路:异或门XOR


二、异或门是什么?

 XOR门就是对于两个输入信号x1或者x2,相同则输出0,相异则输出1的一种逻辑电路。如下表所示:

x1x2y
000
101
011
111

 那么神经元也可以通过人工设定权重来实现XOR门吗?很肯定的告诉你:不行!!

三、线性与非线性

1.线性

 我们先回顾一下或门。当权重参数(w1,w2,b)=(1.0,1.0,-0.5)的时候,我们就可以用神经元来构造一个或门。
在这里插入图片描述

 为了更直观的了解它,我们用二维坐标图来看一下。上图神经元所表示的其实就是用一条x1+x2-0.5=0的直线把二维平面分割成两部分,一边的值为0,一边的值为1。正如下图点虚线把二维平面分割为两部分,灰色部分为0,另外一边为1。
在这里插入图片描述

 因为当(x1,x2)=(0,0)的时候或门输出为零,其余输出为1,所以在二维坐标里面我们用▲代表1,●代表0。你会发现我们的这条直线很完美的把0和1都分开了。这就是线性。

2.非线性

 那么在回头再看看XOR门,同样的在二维坐标用▲和●标出0和1的值。你会发现无论你怎么画,都不可能画出一条完美的把0和1区域分开的直线(如下图所示,只有曲线可以划分)。这就是非线性。
在这里插入图片描述

四、神经元的极限

 神经元可以模拟与,或,非门,但是却无法模拟异或门,这便是神经元的极限。所以我们要换个思路来思考:把神经元组合起来试试(下图所示),看能不能解决异或门这个难题。
在这里插入图片描述

 x1和x2分别代表初始输入信号,s1代表非门(NAND)的输出,s2代表或门(OR)的输出,s1和s2又分别作为与门(AND)的输入,y是与门的输出。
※整理一下真理值表

x1x2s1=(x1 NAND x2)s2=(x1 OR x2)y=(s1 AND s2)
00100
10111
01111
11010

和本文一开始的真理值表结果完全一致。
用Python来验证一下。

def calculate(x1, opt, x2, ):
    if opt is "AND":
        # 与门的权重参数
        w1, w2, b = 0.5, 0.5, -0.7
    elif opt is "NAND":
        # 非门的权重参数
        w1, w2, b = -0.5, -0.5, 0.7
    elif opt is "OR":
        # 或门的权重参数
        w1, w2, b = 0.5, 0.5, -0.2
    else:
        return -1
    # 输入信号*权重+偏置值
    sum = x1 * w1 + x2 * w2 + b
    if sum <= 0:
        return 0
    else:
        return 1

def xor_gate(x1, x2):
    # s1= x1 NAND x2
    s1 = calculate(x1, "NAND", x2)
    # s1= x1 OR x2
    s2 = calculate(x1, "OR", x2)
    # y = s1 AND s2
    y = calculate(s1, "AND", s2)
    return y

打印结果:


print("x1 = 0, x2 = 0, y =", xor_gate(0, 0))
print("x1 = 1, x2 = 0, y =", xor_gate(1, 0))
print("x1 = 0, x2 = 1, y =", xor_gate(0, 1))
print("x1 = 1, x2 = 1, y =", xor_gate(1, 1))
#↓↓↓↓↓↓↓↓↓↓↓output↓↓↓↓↓↓↓↓↓↓↓↓
x1 = 0, x2 = 0, y = 0
x1 = 1, x2 = 0, y = 1
x1 = 0, x2 = 1, y = 1
x1 = 1, x2 = 1, y = 0

OK,和真理表值完全一致。

五、总结

 因为异或门在二维平面不可以被直线分割(也可以称为非线性),所以神经元无法模拟异或门,但是通过三个其他神经元(与门,或门,非门)的组合便可以完美解决这个问题。而这三兄弟的组合我们就可以称为一个神经网络。
 为了庆祝这个神经网络的诞生,我给他取了一个霸气的名字:小D。所以下节的主题便是【小D的诞生】。

※关注个人微信公众号:DeepVisionZero
 获取更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeepVisionZero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值