【发布时间】:2016-05-31 04:27:36
【问题描述】:
我一直在使用 tensorflow 来处理各种我认为这些天被认为相当容易的事情。 Captcha 破解,基本的 OCR,我在大学的 AI 教育中记得的东西。它们是相当大的问题,因此并不适合有效地尝试不同的 NN 架构。
您可能知道,Joel Grus 在 TensorFlow 中推出了 FizzBuzz。 TLDR:从数字的二进制表示(即 12 位编码数字)学习为 4 位(none_of_the_others,可被 3 整除,可被 5 整除,可被 15 整除)。对于这个玩具问题,您可以快速比较不同的网络。
所以我一直在尝试一个简单的前馈网络并编写了一个程序来比较各种架构。像一个 2 层隐藏层前馈网络,然后是 3 层,不同的激活函数,......大多数架构,嗯,很烂。他们获得接近 50-60 的成功率并保持在那里,与您进行多少培训无关。
一些表现非常好。例如,每个具有 23 个神经元的 sigmoid 激活双隐藏层工作得非常好(在 2000 个训练时期后正确率为 89-90%)。不幸的是,任何接近它的东西都非常糟糕。从第二层或第一层中取出一个神经元,它的正确率下降到 30%。将其从第一层中取出也是如此……单个隐藏层,20 个激活的 tanh 神经元也做得很好。但大多数都只有一半多一点的性能。
现在考虑到对于实际问题,我实际上无法对不同架构进行这类研究,有没有办法让好的架构保证正常工作?
【问题讨论】: