parity function是来自n位向量的函数,如果和为奇数则输出1,否则输出0。这可以被视为分类任务,其中n输入是特征。
是否有任何能够学习此功能的机器学习算法?显然随机决策森林不会成功,因为任何严格的特征子集都没有预测能力。此外,我相信没有固定深度的神经网络会成功,因为计算奇偶校验函数不在复杂性类AC0中。
答案 0 :(得分:2)
多项式SVM可以做到这一点。 将零编码为1,将1编码为-1。 对于n个变量(位),需要一个n阶的多项式内核。 在计算内核时,它还隐式计算值x1 * x2 * ... * xn(其中xi是第i个输入变量)。 如果结果为-1,则您具有奇数个,否则您将具有偶数个。
如果我没弄错的话,神经网络也应该能够计算它。据我记忆,具有2个隐藏层和sigmoid单元的神经网络能够学习任意函数。
答案 1 :(得分:0)
高斯过程分类怎么样?您可以通过n维输入向量和1维奇偶校验位输出来训练模型。然后,对于任何测试输入,您可以要求预测。你可以查看这本在线书籍
http://www.gaussianprocess.org/gpml/chapters/
第3章解决了分类问题。
答案 2 :(得分:-1)
神经网络可以用单个隐藏层表示和学习奇偶校验功能,而隐藏层具有与输入相同数量的神经元。奇偶校验功能不在AC0中这一事实是关于布尔门电路的事实,但是多层感知器(通常使用)可以具有实值权重,这会带来很大的不同。
下面是一个显式解决方案的示例,假设有n
个输入,n
个隐藏单元和一个符号激活函数(例如在[1]中描述):
k
个1,则第一个k
隐藏单元将向输出发送1,其余的为零。这解决了奇偶校验问题。
您正在询问有关可以学习该功能的机器学习算法。根据[2]中的“奇偶校验”部分,答案是至少对于小型n
,在单层神经网络上进行反向传播可以学习该功能,实际上,它实际上是在学习一个网络。与上述非常相似。
[1]佛朗哥,莱昂纳多和塞尔吉奥·坎纳斯。 “模块化网络的通用属性:实现奇偶校验功能。”神经网络上的IEEE事务12.6(2001):1306-1313。
[2] Rumelhart,David E.,Geoffrey E. Hinton和Ronald J. Williams。通过错误传播学习内部表示。编号ICS-8506。加州大学圣地亚哥分校拉霍亚认知科学研究所,1985年。