Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow:如何找到好的神经网络结构/超参数?_Tensorflow_Data Science - Fatal编程技术网

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

Tensorflow:如何找到好的神经网络结构/超参数?,tensorflow,data-science,Tensorflow,Data Science,我一直在使用tensorflow来处理各种各样的事情,我想这些天来这些事情被认为是相当容易的。验证码破解,基本OCR,我在大学接受人工智能教育时记得的事情。它们是相当大的问题,因此不适合有效地试验不同的NN体系结构 你可能知道,乔尔·格鲁斯在《tensorflow》中以嘶嘶声出场。TLDR:从一个数字的二进制表示(即12位编码数字)学习到4位(其他数字中没有一位,可被3整除,可被5整除,可被15整除)。对于这个玩具问题,您可以快速比较不同的网络 所以我一直在尝试一个简单的前馈网络,并编写了一个程

我一直在使用tensorflow来处理各种各样的事情,我想这些天来这些事情被认为是相当容易的。验证码破解,基本OCR,我在大学接受人工智能教育时记得的事情。它们是相当大的问题,因此不适合有效地试验不同的NN体系结构

你可能知道,乔尔·格鲁斯在《tensorflow》中以嘶嘶声出场。TLDR:从一个数字的二进制表示(即12位编码数字)学习到4位(其他数字中没有一位,可被3整除,可被5整除,可被15整除)。对于这个玩具问题,您可以快速比较不同的网络

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

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


现在,考虑到实际问题,我无法实际地对不同的体系结构进行此类研究,有没有办法保证好的体系结构能够正常工作?

你可能会发现Yoshua Bengio的论文有助于进一步了解超参数及其设置

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

有些人也不鼓励使用像sigmoid()和tanh()这样的非线性,因为它们会遇到消失梯度问题