XOR函数,直接应用原始输入额线性模型不能实现XOR函数,【0,0】== 0、【0,1】== 1、【1,0】== 1、【1,1】== 0
1.1 XOR背景
XOR 对于【0,0】、【0,1】、【1,0】、【1,1】中出现1的输出结果为1,导致出现了【0、1】和【1、0】的结果都是1,
但线性模型里 x1 == 0 时,输出必须是随x2 的增大而增大,当 x1 == 1 时,输出必须时随 x2 的增大而减小; 直接应用于原始输入的线性模型,不能实现 XOR 函数。
1.2 解决办法
示例的解决方案中将 输出为1的两个点折叠到了一个点上,换句话说,非线性特征将 x = [1, 0] , x = [0, 1] 都映射到 h = [1, 0] 中。
这时模型可以将函数描述为【0,0】、【1,0】、【1,0】、【2,1】
1.3 怎么解决
【1,0】、【1,0】 -> 【1,0】可以通过乘以单位矩阵,变成【1,1】再做一个偏置,减1即可,【1,0】
但是此时将是线性变化,导致原来的【0,0】->【0,-1】,【1,1】->【2,1】,
在这样一个样本空间里,所有的样本都处于一条斜率为1的直线上,
此时加 Relu即可变成:
【0,0】、【1,0】、【1,0】、【2,1】,最后乘上权重矩阵,结果就是 【0,1, 1, 0】
权重矩阵【0.5, 0.5, -0.5, -1】
网友评论