首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法过度适应使用MLP

无法过度适应使用MLP
EN

Data Science用户
提问于 2018-05-07 19:53:53
回答 1查看 700关注 0票数 3

我正在用私有数据集构建一个5类分类器。每个数据样本有67个特征,大约有40000个样本。特定类的样本被复制以克服类不平衡问题(因此有40000个样本)。

使用一个vs-一个多类支持向量机,我在验证集上的准确率为79%。特征标准化,准确率达79%。如果不进行标准化,我得到的准确度为72%。类似的结果,当我尝试50倍交叉验证。

接下来是MLP结果,

Exp 1:

  • 网络体系结构:67 40 5
  • 优化者:亚当
  • 学习率:基学习率的指数衰减
  • 验证精度:~45%
  • 观察:训练的准确性和验证的准确性都停止提高。

例2:具有批规范层的重复Exp 1

  • 验证精度:~50%
  • 观察:准确度提高5%。

Exp 3:

为了适应过度,增加了MLP的深度。Exp 1网络的更深层版本

  • 网络体系结构:67 40 40 5
  • 优化者:亚当
  • 学习率:基学习率的指数衰减
  • 验证精度:~55%

关于可能发生的事情的想法?

EN

回答 1

Data Science用户

发布于 2018-05-07 20:24:53

有些事情可能会发生:

  1. 隐藏层中没有足够的参数可供学习。尝试像67 512 5这样的东西,或者用67,1024,256,5这样的东西进行更深入的扩展。其想法是,您的隐藏层可能太小,无法捕获属性之间的交互,给定您拥有的培训数据量。

见过的经验法则是:

代码语言:javascript
运行
复制
Nh=Ns/(α∗(Ni+No))

Nh = number of hidden neurons.
Ni = number of input neurons.
No = number of output neurons.
Ns = number of samples in training data set.
α = an arbitrary scaling factor usually 2-10.

在你的例子中,这会让你喜欢5000个神经元,但既然你对你的类进行了过度采样,我也建议你用欠采样代替,这可能会让你达到1024左右,这是相当标准的。67 512 5构型为纯肠道反应。

  1. 学习率太高了。试着从较低的LR开始(比如10e-5)。有时候这对亚当有用。
  2. 重量初始化:再次检查您是否使用了Xavier。
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/31343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档