我正在为我在网上找到的这个示例数据拟合一个神经网络: 机器学习存储库
我正在交叉验证 1 到 10 个隐藏单元(仅在 1 层中),并且我有 10 个隐藏单元的最小误差。然而,当我只为 3 个输入变量(红色、绿色和蓝色的级别)引入 10 个隐藏单元时,我以某种方式考虑了线性相关的设计矩阵。
这种担心是否合理,还是我可以在这里只使用 10 个隐藏单元?也许(sigmoid)转换可以避免线性依赖?
我正在为我在网上找到的这个示例数据拟合一个神经网络: 机器学习存储库
我正在交叉验证 1 到 10 个隐藏单元(仅在 1 层中),并且我有 10 个隐藏单元的最小误差。然而,当我只为 3 个输入变量(红色、绿色和蓝色的级别)引入 10 个隐藏单元时,我以某种方式考虑了线性相关的设计矩阵。
这种担心是否合理,还是我可以在这里只使用 10 个隐藏单元?也许(sigmoid)转换可以避免线性依赖?
不,不需要担心这一点,因为非线性变换意味着隐藏层神经元生成的特征空间可以比输入空间具有更高的维度,而不是线性相关的。
考虑 Ripley 的合成基准数据集,它由两个类组成,每个类由两个高斯集群表示,如下所示:

通过在每个集群上放置一个径向基函数,然后对这四个隐藏单元的输出使用线性判别式,可以获得一个好的解决方案。您应该发现(甚至)线性回归的正规方程在数值上是良好的,这表明线性相关性不是问题。非线性变换确实是造成这种情况的原因。
请注意,如果您使用正则化(我会推荐用于任何 MLP 应用程序),那么线性依赖无论如何都不是问题。