1700537800
1700537801
0
1700537802
1700537803
回顾逻辑回归的公式
1700537804
1700537805
Z=sigmoid(AX+BY+C) ,
1700537806
1700537807
(9.1)
1700537808
1700537809
其中Sigmoid激活函数是单调递增的:当AX+BY+C的取值增大时,Z的取值也增大;当AX+BY+C的取值减少时,Z的取值也减小。而AX+BY+C对于X和Y的变化也是单调的,当参数A为正数时,AX+BY+C以及Z的取值随X单调递增;当A取负数时,AX+BY+C和Z随X单调递减;当参数A为0时,Z的值与X无关。观察异或运算的真值表,当Y=0时,将X的取值从0变到1将使输出Z也从0变为1,说明此时Z的变化与X是正相关的,需要设置A为正数;而当Y=1时,将X的取值从0变为1将导致输出Z从1变为0,此时Z与X是负相关的,需要设置A为负数,与前面矛盾。因此,采用逻辑回归(即不带隐藏层的感知机)无法精确学习出一个输出为异或的模型表示。
1700537810
1700537811
然后,我们再考虑具有一个隐藏层的情况。事实上,通用近似定理告诉我们,一个前馈神经网络如果具有线性输出层和至少一层具有任何一种“挤压”性质的激活函数的隐藏层,当给予网络足够数量的隐藏单元时,可以以任意精度近似任何从一个有限维空间到另一个有限维空间的波莱尔可测函数。对通用近似定理的证明并不在面试的要求范围,不过可以简单认为我们常用的激活函数和目标函数是通用近似定理适用的一个子集,因此多层感知机的表达能力是非常强的,关键在于我们是否能够学习到对应此表达的模型参数。
1700537812
1700537813
在这里,我们还并不涉及模型参数的学习,而是通过精心设计一个模型参数以说明包含一个隐含层的多层感知机就可以确切地计算异或函数,如图9.1所示。图中有Z1和Z2两个隐藏单元。在隐藏单元Z1中,X和Y的输入权重均为1,且偏置为1,等同于计算H1=X+Y−1,再应用ReLU激活函数max(0,H1),其真值表如表9.2所示。同理,隐藏单元Z2的输入权重均为−1,偏置为−1,真值表如表9.3所示。可以看到,第一个隐藏单元在X和Y均为1时激活,第二个隐藏单元在X和Y均为0时激活,最后再将两个隐藏单元的输出做一个线性变换即可实现异或操作,如表9.4所示。
1700537814
1700537815
1700537816
1700537817
1700537818
图9.1 可以进行异或运算的多层感知机
1700537819
1700537820
表9.2 隐层神经元Z1的真值表
1700537821
1700537822
X
1700537823
1700537824
Y
1700537825
1700537826
H1 = X+Y−1
1700537827
1700537828
Z1 = max(0, H)
1700537829
1700537830
0
1700537831
1700537832
0
1700537833
1700537834
−1
1700537835
1700537836
0
1700537837
1700537838
0
1700537839
1700537840
1
1700537841
1700537842
0
1700537843
1700537844
0
1700537845
1700537846
1
1700537847
1700537848
0
1700537849
[
上一页 ]
[ :1.7005378e+09 ]
[
下一页 ]