我想知道在Keras中是否可以使用以下模型,或者是否需要下拉到张量流。
想象一下一个大型的未标记数据集,以及一个(可能很多)较小的标记数据。
直觉是同时针对两个目标进行训练:标记数据的分类准确性和未标记数据的分类置信度。
这个想法是像往常一样将所有数据(带标签的和未带标签的)转发到最终的softmax层。
然后,将批次分为两组:标记的示例和未标记的示例。
对于标记的数据,按照惯例计算误差/损失,例如交叉熵。 对于未标记的数据,我们选择分类分布离散的一些函数。一个非常基本的值是(平均值)1减去示例的max(prob)。
现在,将两个“误差”(熵和色散)相加(取决于加权超参数),该值是在梯度下降时要最小化的值。
换句话说,色散因子可作为拟合过程的一种正则化器。
我猜想实现此Keras会涉及到自定义损失函数,但是我不确定要拆分批次,将子集与目标匹配等等。非常欢迎任何想法。
答案 0 :(得分:0)
在这里您可以在keras中找到半监督模型的示例:http://bjlkeng.github.io/posts/semi-supervised-learning-with-variational-autoencoders/
他所做的是创建两个共享图层的模型。一个模型将标记的数据作为输入,另一个模型将未标记的数据作为输入。
使用分批训练并交替标记的数据和未标记的数据来完成训练。