如何在完全投入之前评估神经网络的有效性?

时间:2018-04-11 01:51:02

标签: python tensorflow neural-network keras

作为一名做爱编码的学生,我的计算能力非常有限。当我尝试构建和训练神经网络时,这尤其成问题。

在适度的计算机上训练一个功能强大的网络需要几个小时甚至几天。如果我想比较两种不同的体系结构的有效性,我将需要等待大量的时间才能测试出其中任何一种。

例如,假设我想构建用于制作音乐的生成神经网络,我想确定是使用LSTM还是偶然卷积。网络生成有意义的结果(而非随机笔记)需要8个小时。我将不得不等待16个小时来测试这两种架构,然后才能继续进行最终设计。

虽然明显的答案是获得更好的硬件,但随着培训数据和模型复杂性的增加,问题仍然存在。

问题是:

  

他们是否能够在没有完全接受培训的情况下快速判断神经网络的未来效果?

2 个答案:

答案 0 :(得分:2)

这些天我在网上做了很多工作,而悲伤的答案是没有一般的经验法则。只是得让他们扯掉。

您可以通过两种方式加快测试周期:

1)在小型数据集上对您的架构进行基准测试。在短暂的训练周期后计算一些有关网络性能的统计数据,然后测试网络变化对这些统计数据的影响(同样在小数据集上)。对于音乐的生成网络来说,这可能很难,因为我不确定哪些统计数据表明会有更好的表现。

2)您是学生,这可能意味着您可以访问资源。当我还是本科生时,我通过学校获得了几百美元的AWS学分,并用它们在EC2实例上训练网络。您可以尽可能多地启动,并且可以同时使用多个实例来并行尝试。

祝你好运。

答案 1 :(得分:1)

你应该根据自己的情况研究一下所谓的课程学习。以下是有关该主题的原始论文(如有必要,您可以在付费专区外找到谷歌搜索)。

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.149.4701

这种方法提供了一种最有效地排序数据的方法,使您可以最快速地学习。虽然没有灵丹妙药可以确定特定模型是否表现良好,但如果你应用课程学习,你至少应该加快学习过程,并在此过程中尽早获得最大比例的收益。

我可能还会注意到批量标准化的正确应用已经显示出收敛速度的显着提高。