在机器学习中,超参数是用来控制学习过程的参数。
如果我们使用参数和参数有什么区别?中参数的定义,那么超参数本身就不会被认为是一个值。相反,它将是这个值的规范(例如,这个值是一个学习率,或者这个值是一个辍学)。这似乎也符合人们在交流中使用“超参数”的方式。
有很多时候,我想要区分超参数的特定值。通过我所联系的问题,我可以说一些类似于夸张的话。例如,超参数0.001与超参数0.01不同,尽管它们在相同的超参数下(假设学习速率)。这就是我在自己的变量名称代码库中所做的工作。例如,如果我有这个dict:
hyperarguments = {
"learning_rate": 0.001,
"dropout": 0.25,
}我会像这样反复地重复:
for hyperparameter, hyperargument in hyperarguments.items():
...是否有更常见的术语来强调这种价值观的区别?
发布于 2020-08-10 08:08:45
TLDR:基本上,你用维基百科的引语回答了你的问题:常用的术语是“值”。
您引用的关于SE的问题从软件开发的角度讨论了术语。但是,在软件开发和机器学习中使用“参数”一词是有区别的。维基百科是如何从软件开发的角度定义参数的:
在计算机程序设计中,参数或形式参数是一种特殊的变量,在子程序中用于引用作为子例程输入的一段数据。这些数据段是要调用/调用子例程的参数(通常称为实际参数或实际参数)的值。参数的有序列表通常包含在子例程的定义中,这样,每次调用子例程时,都会计算该调用的参数,并将结果值分配给相应的参数。
让我们举一个例子:
n_estimators = 100
model = RandomForestRegressor(n_estimators=n_estimators)从软件开发的角度来看,n_estimators是参数,100是参数的值,n_estimators=n_estimators是参数。
然而,在机器学习术语中,您会认为n_estimators是一个超参数,而100则是它的值。回到你的例子,我会做这样的事情:
hyperparameter_dict = {
"learning_rate": 0.001,
"dropout": 0.25,
}和
for hyperparameter, value in hyperparameter_dict.items():
...引入机器学习中不常见的新术语(如“超级参数”)只会造成混乱,不会使代码或通信更加清晰。
https://datascience.stackexchange.com/questions/80045
复制相似问题