0

有没有人为无监督学习问题训练过小批量数据?feed_dict 使用标签并处于无监督设置中。你如何克服它?我们可以使用对损失函数没有贡献的假标签吗?

基本上,我想遍历我的庞大数据集,然后优化自定义损失函数。但是,当明确使用数据中的新小批量时,我无法弄清楚如何保留我的训练参数(权重)。

例如,整个数据集为 6000 个点,小批量大小为 600。目前,对于每个小批量,我只能使用新的独立权重参数,因为权重是根据来自该小批量的数据点进行初始化的。当我们优化第一批 600 个数据点的损失时,我们得到了一些优化的权重。如何使用这些权重来优化下一批 600 个数据点等等。问题是我们不能使用共享的全局变量。

我在 stackoverflow 论坛上进行了研究,但找不到与无监督数据上的小批量相关的任何内容。

'f' 是我的整个数据集,说 N 个点的文本数据,维度为 D U 是集群质心,再次是维度为 D 的 K 个集群

我将我的变量定义如下:

F = tf.Variable(f.astype(np.float32), name='F') 
U = tf.Variable(u.astype(np.float32), name='U')
FMod = tf.reshape(F, [N/K, K, D], name='FMod')
UMod = tf.reshape(U, [1, K, D], name='UMod')

然后我将自定义损失或目标函数定义为“目标”

接下来我使用优化器

optimizer = tf.train.AdamOptimizer(learning_rate)
train_W = optimizer.minimize(objective, var_list=[F, U])

最后,我将变量评估为

with tf.Session() as sess:

    # Initialize all the variables
    sess.run(init_op)

    for n in range(noEpochs):

        objval1 = sess.run([train_W, objective])

我坚持的事情是迭代我的数据“f”批次,这些数据最终用于优化器 train_W。如果我对这些小批量有一个 for 循环,我将为每个迭代分配一个新变量 train_W。我怎样才能传递这个值,以便它可以在下一个小批量中使用?

在这方面的任何帮助或指示将不胜感激。提前致谢!

4

0 回答 0