从支持向量机到神经网络(反向传播)
Posted
技术标签:
【中文标题】从支持向量机到神经网络(反向传播)【英文标题】:Moving from support vector machine to neural network (Back propagation) 【发布时间】:2014-04-09 04:02:36 【问题描述】:我正在处理文本识别,目前我正在使用支持向量机方法。我也想尝试使用神经网络。我阅读了一些关于神经网络如何工作的文件,但理论很重,我不知道它究竟如何适用于我的案例。所以如果有人能帮我说清楚就好了,尤其是神经网络的架构。
目前,在 SVM 中,我有 200 个特征(分为 4 个主要 类别),用于识别文本。如果我转向神经 网络,有 200 个特征,是不是意味着我在输入层会有 200 个中子? 有 200 个特征,这将如何导致神经网络的架构 网络(根据数字层(隐藏层)和 中子)? 在 SVM 中,我有一类分类(基本上是真假)和多类分类(标签),这种差异将如何应用于神经网络的输出层?我还有一些一般性问题:
什么有助于确定隐藏层数和每个隐藏层内的中子数? 隐藏层数与准确率有关吗?我是神经网络的新手,所以如果你能以一种不太稳定的方式向我解释,那就太好了。 :) 非常感谢。
【问题讨论】:
【参考方案1】:第 1 点 - 它将是 200 个输入神经元,其中每个神经元被输入一个二进制数或浮点数(最好在 -1 到 1 的范围内归一化)。
第 2/4 点 - 大多数问题都通过单个隐藏层解决。当然,如果您从神经网络开始,您应该坚持使用一个隐藏层。我还建议从少于 200 个输入神经元开始,尝试 5 或 10 个。在复杂问题中使用多个隐藏层,例如,第一个隐藏层学习狗、猫、马等宏观特征,下一个隐藏层学习得更好眼睛、鼻子、耳朵等特征。
没有确定隐藏神经元数量的确定程序。问题越复杂,理论上它需要的隐藏神经元就越多。如果你有 10 个输入神经元,从 20 个隐藏神经元开始。如果它不起作用,则其他地方可能有问题。如果它确实有效,您可以减少隐藏神经元的数量,直到它失败。 你也可以从低处开始,然后努力工作。
第 3 点 - 对于真假分类,使用单个输出神经元,并使用 0 或 1 对其进行训练。对于 n 个类别,使用 n 个编码中的 1 个。
第 5 点 - 不。准确性是通过网络的泛化能力来衡量的——即,它如何处理以前从未见过的数据。一般来说,更多的训练数据 = 更准确。
【讨论】:
嗨,例如,如果我有 200 个特征(02 个类别,每个类别包含 100 个特征)并且我想使用 2 个隐藏层。所以输入层将有 200 个中子,那么根据您的建议,每个隐藏层应该以 200 或 400 个中子开始?谢谢以上是关于从支持向量机到神经网络(反向传播)的主要内容,如果未能解决你的问题,请参考以下文章
机器学习——支持向量机:线性可分支持向量机到非线性支持向量机