首页 文章

神经网络和反向传播,在MATLAB中删除constantrows的理由

提问于
浏览
1

我想知道,MATLAB有一个removeconstantrows函数,应该应用于前馈神经网络输入和目标输出数据 . 此函数从数据中删除常量行 . 例如,如果5输入神经网络的一个输入向量是[1 1 1 1 1],则将其移除 .

谷歌搜索,我能找到的最好的解释是(释义)“不需要恒定的行,可以通过适当调整输出层的偏差来代替” .

有人可以详细说明吗?

谁做了这个调整?

从我的书中,简单梯度下降的重量调整是:

Δweight_i= learning_rate * local_gradient * input_i

这意味着第一隐藏层的神经元的所有权重都被调整为相同的量 . 但他们已经调整好了 .

1 回答

  • 1

    我认为存在误导 . “行”不是输入模式,而是一个特征,即所有模式中的第i个组件 . 很明显,如果某些功能在所有数据集上没有很大的差异,它就不会提供有 Value 的信息,也不会对网络培训起到明显的作用 .

    与偏差的比较是可行的(虽然我不同意,这适用于输出层(仅),因为它取决于找到常量行的位置 - 如果它在输入数据中,那么它也适用于第一个隐藏层,imho) . 如果你记得的话,建议反向传播网络中的每个神经元都有一个特殊的偏置权重,连接到1个恒定信号 . 例如,如果训练集包含一行全1,那么这与附加偏差相同 . 如果常量行具有不同的值,则偏差将具有不同的效果,但在任何情况下,您都可以简单地消除此行,并将行的常量值添加到现有偏差中 .

    免责声明:我不是Matlab用户 . 我在神经网络中的背景完全来自编程领域 .

相关问题