首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何区分通信中超参数的不同值?

如何区分通信中超参数的不同值?
EN

Data Science用户
提问于 2020-08-10 04:24:31
回答 1查看 28关注 0票数 0

来自维基百科维基百科

在机器学习中,超参数是用来控制学习过程的参数。

如果我们使用参数和参数有什么区别?中参数的定义,那么超参数本身就不会被认为是一个值。相反,它将是这个值的规范(例如,这个值是一个学习率,或者这个值是一个辍学)。这似乎也符合人们在交流中使用“超参数”的方式。

有很多时候,我想要区分超参数的特定值。通过我所联系的问题,我可以说一些类似于夸张的话。例如,超参数0.001与超参数0.01不同,尽管它们在相同的超参数下(假设学习速率)。这就是我在自己的变量名称代码库中所做的工作。例如,如果我有这个dict

代码语言:javascript
复制
hyperarguments = {
    "learning_rate": 0.001,
    "dropout": 0.25,
}

我会像这样反复地重复:

代码语言:javascript
复制
for hyperparameter, hyperargument in hyperarguments.items():
    ...

是否有更常见的术语来强调这种价值观的区别?

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-08-10 08:08:45

TLDR:基本上,你用维基百科的引语回答了你的问题:常用的术语是“值”。

您引用的关于SE的问题从软件开发的角度讨论了术语。但是,在软件开发和机器学习中使用“参数”一词是有区别的。维基百科是如何从软件开发的角度定义参数的:

在计算机程序设计中,参数或形式参数是一种特殊的变量,在子程序中用于引用作为子例程输入的一段数据。这些数据段是要调用/调用子例程的参数(通常称为实际参数或实际参数)的值。参数的有序列表通常包含在子例程的定义中,这样,每次调用子例程时,都会计算该调用的参数,并将结果值分配给相应的参数。

让我们举一个例子:

代码语言:javascript
复制
n_estimators = 100
model = RandomForestRegressor(n_estimators=n_estimators)

从软件开发的角度来看,n_estimators是参数,100是参数的值,n_estimators=n_estimators是参数。

然而,在机器学习术语中,您会认为n_estimators是一个超参数,而100则是它的值。回到你的例子,我会做这样的事情:

代码语言:javascript
复制
hyperparameter_dict = {
    "learning_rate": 0.001,
    "dropout": 0.25,
}

代码语言:javascript
复制
for hyperparameter, value in hyperparameter_dict.items():
    ...

引入机器学习中不常见的新术语(如“超级参数”)只会造成混乱,不会使代码或通信更加清晰。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/80045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档