首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow:如何找到好的神经网络架构/超参数?

Tensorflow:如何找到好的神经网络架构/超参数?
EN

Stack Overflow用户
提问于 2016-05-31 12:27:37
回答 1查看 207关注 0票数 1

我一直在断断续续地使用tensorflow来做各种事情,我想这些天来我认为这些事情相当容易。验证码破解,基本的OCR,我在大学接受AI教育时记得的事情。它们是相当大的问题,因此不适合在不同的NN体系结构中进行有效的实验。

正如您可能知道的,Joel Grus在tensorflow中推出了FizzBuzz。TLDR:从数字的二进制表示中学习(即。12位)编码为4位(none_of_the_others,可被3整除,可被5整除,可被15整除)。对于这个玩具问题,您可以快速比较不同的网络。

因此,我一直在尝试一个简单的前馈网络,并编写了一个程序来比较各种架构。比如一个2隐层的前馈网络,然后是3层,不同的激活函数,...大多数架构,嗯,都很烂。它们的成功率接近50-60,并保持在那里,与你做了多少训练无关。

有几个人表现得很好。例如,一个有23个神经元的乙状结肠激活的双隐藏层工作得很好(经过2000次训练后,准确率为89-90%)。不幸的是,任何接近它的东西都是相当糟糕的。从第二层或第一层中取出一个神经元,它的正确率会下降到30%。把它从第一层中拿出来也是一样的…单个隐藏层,20个神经元的tanh激活也做得很好。但大多数人的表现只有一半多一点。

现在,考虑到对于实际问题,我不能实际地对不同的体系结构进行这些类型的研究,有没有方法可以保证好的体系结构工作?

EN

回答 1

Stack Overflow用户

发布于 2016-05-31 19:54:13

您可能会发现Yoshua Bengio在Practical Recommendations for Gradient-Based Training of Deep Architectures上的论文有助于您了解有关超参数及其设置的更多信息。

如果您特别要求设置具有更多保证成功的设置,我建议您阅读有关批处理规范化的内容。我发现它降低了学习率和权重初始化的错误选择的失败率。

有些人还不鼓励使用像sigmoid()和tanh()这样的非线性函数,因为它们受到梯度消失问题的困扰。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37536833

复制
相关文章

相似问题

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