神经网络首先找到最佳的超电流计或架构

时间:2019-04-25 10:13:10

标签: python tensorflow neural-network

我正在实现我的第一个用于图像分类的神经网络。

我想知道是否应该先找到最佳的超参数,然后再尝试修改我的神经网络架构(例如层数,辍学...)或架构,然后再修改超电流表?

2 个答案:

答案 0 :(得分:2)

首先,您应该确定一种体系结构,然后尝试使用超参数。为了比较不同的超参数,具有相同的基础(架构)很重要。

当然,您也可以尝试使用该体系结构(层,节点等)。但是,我认为这里更容易在线搜索体系结构,因为通常已经解决了相同或相似的问题,或者在教程/博客中进行了介绍。

辍学也是(训练)超参数,不是体系结构的一部分!

答案 1 :(得分:1)

答案一如既往:取决于

您要实现什么目标? 如果您希望通过反复试验使图像分类器成为世界上最好的图像分类器,那么您可能想问自己,是否认为自己比现有的人拥有更多的计算能力。对于一个真正好的分类器,tensorflow / keras附带了几个分类器,可以轻松实现。如果您无所事事并学习编码,那么我建议您使用其他体系结构,因为这将教给您更多的功能。如果您有一个数据集,那么您认为现有的解决方案不能很好地进行分析,并且确实需要最佳的网络来对它们进行分类,那么不幸的是,它仍然取决于...

如何决定: 首先,确定总体参数计数(模型具有的参数的字面数量)的大致数量级。对于给定数量的参数,体系结构可能会在代表性超参数选择之间产生最大的结果差异(不要将您的网络压缩到中间的单个神经元,并期望它代表该体系结构)。 比较每个参数的粗略性能很重要,这样您就不会为网络提供更大的过拟合能力。您无需使用所有培训数据甚至无需培训就可以完成培训,大多数情况下,您会发现更好的网络学习得更快,学习得更好(主要是)。过去,我已经在每个点上进行了多次尝试的网格搜索,使用了明显减少的数据,然后通过考虑网格搜索的梯度来优化具有最大潜力的体系结构。有趣的事实:有足够的时间,您可以对超参数使用梯度下降方法来找到局部最小值。您可能会发现有许多类似的性能最高的模型,您应该对其进行调整,直到明确的赢家出现为止。