Py学习  »  机器学习算法

机器学习中有不可训练的参数可以吗?[关闭]

student17 • 5 年前 • 1336 次点击  

建立机器学习模型时,是否可以使用不可培训的参数?或者这会在模型中产生错误?我很困惑什么是不可培训的参数,以及如何修复你的模型的基础上。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32510
 
1336 次点击  
文章 [ 2 ]  |  最新文章 5 年前
blue_note
Reply   •   1 楼
blue_note    5 年前

通常, 不可训练参数 并不意味着您分配随机或预定义值的某些权重(因为它们依赖于其他权重值,所以无法知道正确的值)。

这意味着你已经做出了一些先验的建筑决策。例如,在神经网络中,这样的参数是层数和每层的节点数。这些可以通过有根据的猜测来决定,或者通常通过试验和错误(交叉验证)来决定。

这样的不可训练参数不仅可以,而且在大多数训练算法中是不可避免的。

Teoretic
Reply   •   2 楼
Teoretic    5 年前

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

Keras中的不可训练参数如所述。 answer to this question .

…一个模型的不可训练参数是那些在训练期间您不会更新和优化的参数,并且必须定义一个 先验的,或作为输入传递的。

这些参数的示例如下:

  1. 隐藏层的数目
  2. 每个隐藏层上的节点
  3. 每个层上的节点
    及其他

这些参数是“不可培训的”,因为您无法优化 培训数据的价值。

要解决您的问题:

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

是的,这是可以的,事实上,如果你正在建立一个神经网络或其他机器学习模型是不可避免的。

这会在模型中产生错误吗?

默认情况下,它不会产生错误,它决定了神经网络的结构。

但有些架构对您的数据和任务的性能比其他架构要好。

因此,如果您将选择次优的不可训练参数,您可以并且将在您的数据上下溢。

优化不可训练参数是另一个非常广泛的课题。


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

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

他们的小狗是为了 使算法适应您的特定需求 .

例如 如果你正在训练一个简单的 Logistic Regression ,您有一个参数 C ,代表 regularization ,这基本上影响了你将 “惩罚”是一种错误答案的算法。

你可能想惩罚你的算法,但是你可以 underfit 或者你可能不想因为犯错而被罚得很高(这也会导致 overfitting )

这就是 你不能从数据中学习 -这是你可以根据自己的特殊需要进行调整的事情。