我同意您对课程的看法,您应该看一门课程,也许是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})
第一行定义权重和值的更改方式。您几乎可以将其理解为“定义使用梯度下降优化器来减少所提供数据的交叉熵的训练函数”。
第二行使用特定的数据段调用该函数。每次运行第二条线时,都会调整权重和偏差值,以便神经网络输出ÿ 每个值都更接近正确的关联 X 值。