Python 在机器学习中有不可训练的参数可以吗?
在建立机器学习模型时,是否可以使用不可训练的参数?或者这会在模型中产生错误吗?我不清楚什么是不可训练的参数,以及如何基于此修正模型。通常,不可训练的参数并不意味着某些权重,您可以为这些权重分配随机或预定义的值(因为它们取决于其他权重值,所以无法知道正确的值) 它意味着一些您事先做出的架构决策。例如,在神经网络中,这些参数是层的数量和每层的节点数量。这些可以通过有根据的猜测来决定,或者通常通过反复试验(交叉验证)来决定 拥有这样的不可训练参数不仅是可以的,而且对于大多数训练算法来说是不可避免的。编辑:正如评论中提到的,问题可能是指KERA中的不可训练参数,而不是一般的不可训练参数(超参数) KERA中的不可培训参数如中所述 …模型的不可训练参数是指您在训练期间不会更新和优化的参数,并且必须在 先验的,或作为输入传递的 此类参数的示例如下:Python 在机器学习中有不可训练的参数可以吗?,python,machine-learning,keras,hyperparameters,Python,Machine Learning,Keras,Hyperparameters,在建立机器学习模型时,是否可以使用不可训练的参数?或者这会在模型中产生错误吗?我不清楚什么是不可训练的参数,以及如何基于此修正模型。通常,不可训练的参数并不意味着某些权重,您可以为这些权重分配随机或预定义的值(因为它们取决于其他权重值,所以无法知道正确的值) 它意味着一些您事先做出的架构决策。例如,在神经网络中,这些参数是层的数量和每层的节点数量。这些可以通过有根据的猜测来决定,或者通常通过反复试验(交叉验证)来决定 拥有这样的不可训练参数不仅是可以的,而且对于大多数训练算法来说是不可避免的。编
及其他
通用机器学习理论的答案: 非训练参数(不专门用于KERA)称为超参数 他们的目标是使算法适应您的特定要求 例如如果你正在训练一个简单的
逻辑回归
,你有一个参数C
,它代表正则化
,它基本上影响你将要做的事情
“惩罚”是错误答案的算法
您可能希望很难对算法进行惩罚,以推广更多(但您也可以欠拟合
),或者您可能不希望对错误进行高惩罚(这也可能导致过拟合
)
这是你无法从数据中学到的东西-这是你可以根据自己的特殊需要进行调整的东西。我不明白为什么它不好。你已经在神经网络中有了一个偏差单元,而不是训练它。我想你们也可以有其他的,只是把它排除在训练之外。@Chrispresso-bias单位是经过训练的……你们不训练它是什么意思?如果你们特别指“NN”或“多层NN”,不要说“机器学习”。如果您指的是NN,您是指单个图层尺寸、连通性(全部/部分)、激活功能吗?或者梯度增强树中的超参数,比如学习率,正则化?回归或随机森林中的固定效应或混合效应建模?还是别的什么?还是所有这些?(我将该超参数标记为猜测,但如果不适用,请编辑该超参数)该答案忽略了模型中某些层可能被冻结的可能性,就像迁移学习中的情况一样。根据定义,这些层的权重是不可训练的参数。事实上,Keras将向您显示您有多少个参数是可训练的和不可训练的。当Keras输出“不可训练参数”时,它实际上并没有告诉您模型有多少超参数。它指的是那些冻结的图层。@enumaris谢谢你指出这一点!我认为这个问题不是针对Keras和NN的(因为这个问题通常是“在机器学习中”)。但你是对的,值得一提。我将很快更新我的答案,以回应你的评论。是的,我正在字里行间阅读,因为当你做一个model.summary()时,OP标记的Keras和Keras有一个“可训练参数与不可训练参数”输出,所以我觉得这就是OP所问的。@enumaris我编辑了这个问题。如果我在一个新答案中的某个地方错了,请随时纠正我。我想实际上,你所联系的问题的第二个答案(有5张赞成票的那一个),而不是你所指的被接受的答案,是针对我所说的上下文的答案。不过,我还是在字里行间读。完全有可能OP并不是指Keras中的“不可训练的参数”。