神经网络中哪些超参数可以被用户调整

人工智能 激活函数 超参数 权重 预训练模型
2021-11-05 04:26:12

我是神经网络的新手,我的问题仍然非常基础。我知道大多数神经网络允许甚至要求用户选择超参数,例如:

  • 隐藏层数
  • 每层的神经元数量
  • 投入和产出的数量
  • batches 和 epochs 步骤以及一些与反向传播和梯度下降相关的东西

但随着我继续阅读和 youtube,我了解到还有另一个重要的“小参数”,例如:

  • 激活函数类型

  • 激活函数微调(例如 sigmoid 的移位和斜率) sigmoid 微调的类型

  • 输出中是否有激活函数

  • 权重范围(它们是从零到一还是从-1到1或-100到+100或任何其他范围)

  • 权重是正态分布的还是只是随机的

等等...

其实问题是:

第一部分:

我是否理解正确,只要您使用“现成”解决方案,大多数神经网络都不允许更改那些“小参数”?换句话说,如果我想访问那些“小参数”,我需要自己编程整个神经网络,或者有“半成品”

B 部分:(已编辑) 对于使用神经网络作为日常工具来解决问题的人(如数据科学家),这些人处理微调事物的频率和频率如何,我称之为“小参数”?或者这些参数通常由创建 pytorch、tensorflow 等框架的神经网络开发人员调整?

非常感谢你

1个回答

通常,您提到的许多参数都称为超参数。所有超参数在训练阶段都是用户调整(或用户编程)的。一些超参数是:

  • 学习率,
  • 批量大小,
  • 时代,
  • 优化器,
  • 层,
  • 激活函数等

为了回答您问题的(a)部分,有很多框架和库,例如在 python 中;TensorFlow、pytorch 等。您可能永远不会从一开始就创建网络;也许只是为了理解前向和反向传播算法。当我们从 scatch 网络调用时,我们的意思是这些网络是从头开始训练的,具有可学习的权重和选择的超参数;没有迁移学习。

为了回答您问题的(b)部分,我可以从中理解您的意思是当网络足够好时。当然,根据您的数据,神经网络已经足够好,只要它经过充分的训练。也就是说,您应该了解过度拟合拟合,以及您尝试使用其所有参数和超参数训练的模型。

由于您刚开始学习机器学习,因此我建议您阅读一些书籍,以便在数学和计算机科学方面获得所需的一切。