0%

神经网络能否直接判断奇偶数

神经网络判断奇偶数

拥有神经网络的深度学习比机器学习的一大特点是,深度学习的非线性转换能够实现一定程度上的特征提取和特征组合。但是,当你传入一批自然数进入模型中训练,想要预测奇偶性的时候,你会发现,这个任务有点难。但是,如果你将这些数值转为二进制的时候,这个任务又变得可行。可以看出,深度学习也需要我们做一下数据的预处理工作。当然,也侧边看出了神经网络并非万能。

1. 神经网络如何针对当前的任务建立模型
比如检测,分割,分类等问题。这些问题都有一个共同点,同一个类别的目标在高维空间里也在同一个区域。这样在高维空间里,我们的神经网络将这些空间分割成多个块,每个块预测出一个类别,就能达到很高的指标。

2. 神经网络为什么无法直接通过自然数数据直接构建特征预测奇偶性

作者:王赟 Maigo(Facebook 研究科学家)

机器学习里面有一个「没有免费午餐」定理(No Free Lunch Theorem):任意一种算法,如果对于某些类型的问题效果好,必然对于另一些类型的问题效果差。各种模型都有自己的先验假设,如果数据分布符合这个先验假设,学习效果就好,否则就差。比如很多模型都假设数据是线性可分的,对于线性不可分的数据效果就不好。

不平滑的输入导致难以拟合
机器学习适合处理的问题,一般都有这么一个特点:在特征空间中相近的输入,对应的输出一般也相近(暂且称为「平滑性」)。这是机器学习能够把从训练数据中学到的知识推广(generalize)到新数据上的前提。如果一个问题不「平滑」,也就是说,输入稍微变一点儿,输出往往都会有巨大的变化,那么机器学习一般就会表现得惨不忍睹。

比如,如果直接输入自然数0,1,2,3,…n(n很大),这就是一个典型的「不平滑」问题:输入稍微变动一点儿(从2变成相邻数3),输出就会有很大变动(从一个标签转为另一个标签)。还有一个例子是,输入是若干个布尔特征,输出是它们的异或。那么,输入中有一个布尔值发生了变化,就会导致输出发生翻天覆地的变化。在自然语言处理中,也会存在一个字的改变,导致整个句子的语义发生改变,所以给模型加入了先验,使用了word embedding 来刻画单词之间的距离和位置关系。

激活函数的影响
奇偶判断的核心规律是周期性,与relu是完全违背的,这些激活函数都没有太多的转折,不会像周期性函数cos/sin把特征空间切得很碎,relu可以看作只有两段区域。强行使用relu会使得神经网络需要拟合数轴上的每个数,无法完成任何泛化。当然,如果以后让激活函数具有周期性,那么也许也可以解决这类周期性的问题。但是损失函数的问题又会出现,这类崎岖的损失曲面将会很难找到全局最优解。

信息论解释
从信息论也可以理解,一个所有符号出现概率均等的系统,将无法对符号进行压缩。一个问题的解空间,可以用符号表示,如果对其中特征完全不了解,可以认为所有符号出现的概率均等,也将无法对解空间进行压缩,也就不存在一种相对高效的解法。

3. 为什么转为二进制之后,神经网络就可以工作了
这是因为通过设计合适的特征,把问题转化成一个【平滑】的问题。从信息论的角度来说,奇偶性的信息就藏在二进制的最后一位,信息就在那里,可是神经网络竟然无法捕获它。如果我们把输入数值转换成二进制,每一位作为一个布尔特征,一般的机器学习方法都会很容易地学习到个位特征就对应着答案,而其它特征与答案无关。通过最后一位是0还是1就可以直接判断label, 这是典型的data leakage.

参考

https://www.zhihu.com/question/364113452

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道