什么是深度学习中的权重和偏差?

数据挖掘 机器学习 深度学习 张量流
2021-09-15 22:07:34

我开始从 Tensorflow 网站学习机器学习。我对深度学习程序遵循的流程有了非常非常基本的理解(这种方法让我学得更快,而不是阅读书籍和大文章)。

我遇到了一些令人困惑的事情,其中​​两个是:

  1. 偏见
  2. 重量

在 TensorFlow 网站上的 MNIST 教程中,他们提到我们需要偏差和权重来找到图像中存在特定模式的证据。我不明白的是,偏差和权重的值在哪里以及如何确定?

我们是否必须提供这些值,或者 TensorFlow 库是否会根据训练数据集自动计算这些值?

此外,如果您能就如何加快我在深度学习方面的步伐提供一些建议,那就太好了!

TensorFlow 初学者教程

3个回答

从数学上讲,想象你是一个模型(不!不是那种,图 8)。

偏见只是你有多偏见。如果你是尼日利亚人,当你被问到“哪个国家的女人最漂亮”时,你可能会说尼日利亚女士。我们可以说这是因为你有偏见。所以你的公式是Y=WX+nigerian.

那你明白什么?有偏见的是像你这样的模型中的预先假设。

至于重量,从逻辑上讲,重量是你的梯度(如线性代数)。

什么是渐变?这是线性函数的陡度。

是什么让线性梯度非常陡峭(高正值)?

这是因为 X(输入)的微小变化导致 Y 轴(输出)的巨大差异。所以你(不再是一个模型,而是一个杰出的数学家(你的另一个自我))或你的计算机试图找到这个梯度,你可以称之为重量。不同之处在于您使用铅笔和图表来查找此内容,但黑匣子通过寄存器执行电子魔术。

在机器学习过程中,计算机或您,尝试在数据点上绘制许多直线或线性函数。

你为什么要画很多直线?

因为在您的图表/计算机内存中,您正在尝试查看适合的线。

我或计算机如何知道合适的线路?

在我的中学,我被教导在数据点之间画一条线,目视检查在所有数据点中间完美穿过的线。(忘记那些人工智能炒作,我们的大脑只需盯着事物就可以计算) . 但是对于计算机,它会尝试每条线对数据点的标准偏差和方差。选择偏差最小的线(有时我们称之为误差函数)。

凉爽的!所以会发生什么

计算那条线的梯度,假设学习问题的权重是计算的。

那是机器学习的基本理解和高中生在他/她的图表中绘制图表。

我同意您对您应该研究一门课程的评论,也许是Andrew Ng 在 Coursera 上的机器学习,这是一门备受推崇的免费入门课程。这是一个关于机器学习基础的基本问题。因此,我没有在这个答案中涵盖数学,你可以从很多地方得到,包括那门课程。

偏差和权重的值在哪里以及如何确定?

权重和偏差是模型的可学习参数。与神经网络一样,它们在线性回归等相关模型中以相同的名称出现。大多数机器学习算法都包含一些像这样的可学习参数。

这些参数在学习开始之前的值是随机初始化的(这会阻止它们全部收敛到一个值)。然后,当在训练期间呈现数据时,将它们调整为具有正确输出的值。

我们是否必须提供这些值,或者 TensorFlow 库是否会根据训练数据集自动计算这些值?

您不需要在训练之前提供值,尽管您可能想要决定诸如应该有多少参数(在由每一层的大小控制的神经网络中)之类的事情。TensorFlow 在训练期间自动计算这些值。当你有一个已经训练过的模型并想要重新使用它时,你会想要直接设置值,例如通过从文件中加载它们。

本教程中处理权重和偏差更改的具体代码如下:

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

还有这个:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

第一行定义了如何更改权重和值。您几乎可以将其解读为“定义一个使用梯度下降优化器来减少所提供数据的交叉熵的训练函数”。

第二行使用特定数据调用该函数。每次运行第二行时,都会调整权重和偏差值,以便神经网络输出y 值更接近每个的正确关联 x 价值。

重量- 重量是连接的强度。如果我增加输入,那么它对输出有多大影响。

接近零的权重意味着改变这个输入不会改变输出。许多算法会自动将这些权重设置为零以简化网络。

偏差- 意味着我们的预测与实际值相差多远。通常,参数算法具有较高的偏差,使其学习速度快且易于理解,但通常不太灵活。反过来,它们对无法满足算法偏差的简化假设的复杂问题的预测性能较低。

低偏差建议对目标函数的形式进行较少的假设。

High-Bia s:对目标函数的形式提出更多假设。