机器学习中是否可以使用不可训练的参数?

stu*_*t17 2 python machine-learning hyperparameters keras

在构建机器学习模型时,是否可以使用不可训练的参数?或者这会在模型中产生错误吗?我对实际上不可训练的参数是什么以及如何基于此修复模型感到困惑.

Teo*_*tic 5

编辑:正如enumaris在评论中提到的,问题可能是指Keras中的非训练参数,而不是一般的非训练参数(超参数)

回答这个问题描述了Keras中的非训练参数.

...模型的不可训练参数是那些在训练期间不会更新和优化的参数,必须先验地定义,或作为输入传递.

这些参数的例子是:

  1. 隐藏层数
  2. 每个隐藏层上的节点
  3. 每个单独层上的节点
    和其他节点

这些参数是"不可训练的",因为您无法使用训练数据优化其值.

解决您的问题:

有不可训练的参数可以吗?

是的,没关系,如果您正在构建NN或其他机器学习模型,实际上是不可避免的.

这是否会在模型中产生错误?

它默认不会创建错误,它决定了神经网络的架构.

但是有些架构比其他架构更适合您的数据和任务.

因此,如果您选择次优的非训练参数,您可以并且将会对您的数据不合适

优化不可训练的参数是另一个相当广泛的主题.


一般机器学习理论的答案:

非训练参数(不是专门针对Keras)称为超参数.

他们的puprose是根据你的具体要求调整算法.

例如,如果你正在训练一个简单的Logistic Regression,你有一个参数C,它代表regularization,这基本上影响了你将"惩罚"多少错误答案的算法.

您可能希望非常难以对算法进行惩罚(但也可以underfit),或者您可能希望不会因为错误而被罚高(这也可能导致overfitting)

这是你无法从数据中学到的东西 - 这是你可以调整以适应你的特殊需要的东西.

  • 这个答案忽略了模型中某些层可以被冻结的可能性,就像转移学习中的情况一样.根据定义,这些层的权重是不可训练的参数.事实上,Keras将向​​您展示您可以训练多少参数,而不是可训练的参数.当Keras输出"不可训练的参数"时,它实际上并没有告诉你模型有多少超参数.它指的是那些冷冻层. (3认同)