Skip to content

Confused about the ENT and AdENT #8

Description

@ustcjerry

SSDA_MME/main.py

Lines 195 to 204 in 81c3a9c

ifargs.method=='ENT':
loss_t=entropy(F1, output, args.lamda)
loss_t.backward()
optimizer_f.step()
optimizer_g.step()
elifargs.method=='MME':
loss_t=adentropy(F1, output, args.lamda)
loss_t.backward()
optimizer_f.step()
optimizer_g.step()

defentropy(F1, feat, lamda, eta=1.0):
out_t1=F1(feat, reverse=True, eta=-eta)
out_t1=F.softmax(out_t1)
loss_ent=-lamda*torch.mean(torch.sum(out_t1*
(torch.log(out_t1+1e-5)), 1))
returnloss_ent
defadentropy(F1, feat, lamda, eta=1.0):
out_t1=F1(feat, reverse=True, eta=eta)
out_t1=F.softmax(out_t1)
loss_adent=lamda*torch.mean(torch.sum(out_t1*
(torch.log(out_t1+1e-5)), 1))
returnloss_adent

Thank you for your code.
From your code it seems that
ENT method try to minimize entropy on classifier but maximize on feature extractor;
AdENT method try to maximize entropy on classifier but minimize on feature extractor, which is proposed in your paper.

BUT, in your paper the ENT method seems to be described as minimize entropy on both classifier and feature extractor, as referred in Yves Grandvalet and Yoshua Bengio. Semi-supervised learning by entropy minimization. In NIPS, 2005

So, i'm very confused about it. I'm looking forward to hearing from you.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions