【问题标题】:Are weights 1-D or 2-D in softmax Regression?softmax回归中的权重是一维还是二维?
【发布时间】:2018-02-19 16:33:05
【问题描述】:

我学过 ML,并且一直在 Andrew N.G 的 coursera 课程中学习 DL,每次他谈到线性分类器时,权重只是一维向量。 即使在分配过程中,当我们将图像滚动到一维向量(像素 * 3)时,权重仍然是一维向量。

我现在已经开始阅读 O'Reilly 的“Learning TensorFlow”一书,并且遇到了第一个示例。 tensorflow 中的权重初始化有点不同。

这本书是这样说的(第 14 页):

“由于此时我们不打算使用空间信息,因此我们将把图像像素展开为单个长向量,记为 x(图 2-2)。然后 $xw^0 = ∑x_i w^0_i$ 将是包含数字 0 的图像的证据(以同样的方式,我们将为其他每个数字拥有 $w^d$ 权重向量,d = 1, . . . , 9)。”

以及对应的TensorFlow代码:

data = input_data.read_data_sets(DATA_DIR, one_hot=True)

x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))

y_true = tf.placeholder(tf.float32, [None, 10])
y_pred = tf.matmul(x, W)

为什么这里的权重是二维的。 softmax线性分类器中的权重是二维的吗? 在 coursera 课程中,当他教 Softmax Linear Classifier 时,他仍然说权重是一维的。谁能解释一下?

【问题讨论】:

    标签: tensorflow machine-learning softmax


    【解决方案1】:

    是的,你说得对,权重是一维的,但这只是针对 1 个神经元。 如果您考虑一个简单的分层神经网络,它将具有一定数量的层(代码中只有 1 层和 10 个神经元)。因此,在 tensorflow 中,权重变量包含整个层的权重,而不是单个神经元,这使其成为二维数组。

    W = tf.Variable(tf.zeros([784, 10]))
    

    这一行表示有 10 个神经元,每个神经元都有一个长度为 784 的权重数组。 在 tensorflow 中理解这一点的一个经验法则是,权重维度被写为..

    W = tf.Variable(tf.zeros([output_of_previous_layer, output_of_current_layer]))
    

    W = tf.Variable(tf.zeros([input_of_current_layer, input_of_next_layer]))
    

    您可以在Intro to Neural Networks阅读更多相关信息

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 2013-04-05
      • 2023-04-08
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2014-06-20
      相关资源
      最近更新 更多