当前位置:  开发笔记 > 人工智能 > 正文

了解多层感知器网络

如何解决《了解多层感知器网络》经验,为你挑选了2个好方法。

我正在努力了解如何训练多层; 但是,我在确定如何确定合适的网络架构时遇到了一些麻烦 - 即网络每层中的节点/神经元数量.

对于特定任务,我有四个输入源,每个输入源可以输入三种状态之一.我猜这意味着四个输入神经元会触发0,1或2,但据我所知,输入应保持二进制?

此外,我有一些问题选择隐藏层中的神经元数量.任何评论都会很棒.

谢谢.



1> user19511..:

我在几点上不同意道格的答案.

您有4个离散(3路分类)输入.你应该(除非你有充分的理由不这样做)将这两个二进制输入表示为四个概念输入中的每一个使用1-of-3编码.因此,如果您输入的是[2,0,1,1],那么您的网络应该被给出:0 0 1 1 0 0 0 1 0 0 1 0如果您的网络实现需要手动偏置,那么您应该另外添加另一个对于偏见,但大多数明智的神经网络实现并不需要这样做.

尝试几个不同数量的隐藏单位.您不需要将自己限制为小于输入图层大小的隐藏图层大小,但是如果您将其设置得更大,则应该小心定期调整您的权重,可能使用L2或L1重量衰减,甚至可能提前停止在培训中(当您在保持的验证集上的错误停止改进时停止培训).



2> doug..:

确定多层感知器的可接受网络结构实际上是直截了当的.

    输入层:数据中有多少个特征/维度 - 即每个数据行中有多少列.添加一个(对于偏置节点),这是第一个(输入层)的节点数.

    输出层:你的MLP是在"机器"模式还是"回归"模式下运行(在机器学习中使用"回归"而不是统计意义) - 即,我的MLP是否返回类别标签或预测值?如果是后者,则输出层有一个节点.如果是前者,那么您的输出层与类标签具有相同数量的节点.例如,如果您想要的结果是将每个实例标记为"欺诈"或"非欺诈",那么这是两个类标签,因此,输出层中有两个节点.

    隐藏层:在这两者之间(输入和输出)显然是隐藏层.始终以单个隐藏层开始.那么H \节点多少?这是一条经验法则:将隐藏层的(初始)大小设置为某些节点数,这些节点数略大于输入层中的节点数.与具有比输入层更少的节点相比,这种过剩的容量将有助于您的数值优化例程(例如,梯度下降)收敛.

总而言之,从网络架构的三层开始; 第一个(输入)和最后一个(输出的大小分别由您的数据和模型设计确定.隐藏层略大于输入层几乎总是一个好的设计开始.

所以在你的情况下,一个合适的网络结构将是:

输入层:5个节点 - > 隐藏层:7个节点 - > 输出层:3个节点

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有