Why is the ZT norm inside bob.learn.em and not in bob.learn.linear

47 views
Skip to first unread message

Manuel Günther

unread,
Apr 11, 2016, 3:49:28 PM4/11/16
to bob-devel
Hi guys,

I know that we have had the discussion, where to put the ZT-normalization, already long time ago, and that I was voting for having it inside bob.learn.em. However, I don't remember, why I voted for that, and I no longer think that this was a good decision.

In fact, I would rather assume to have the ZT-norm functionality inside bob.learn.linear -- as it contains linear transforms of scores -- though it does not use the linear machine. 
On the other hand, ZT-norm does not have anything to do with the EM algorithm, so it is completely lost in the bob.learn.em package.

So, what do you think about -- finally -- cleaning up bob.learn.em, which is the successor of the old bob.learn.misc package and finally move the ZT score normalization into the appropriate package?

Tiago Freitas Pereira

unread,
Apr 12, 2016, 2:37:41 AM4/12/16
to bob-...@googlegroups.com
Hi Manuel,

I remember this discussion some time in the past.
Originally these score normalization techniques were proposed for speaker recognition (or at least they are mostly used for that).
Since the base framework for that are GMM based (iVector, ISV, etc...), maybe that's why the score normalization stuff is in the bob.learn.em package.
It is just a guess, maybe Laurent, André or Sébastien can give more precise explanation.


Remember that any move in this direction will imply an update in the Bob API to 2.2.*

Said that, I would vote for either:
  - Create a specific package for that (maybe are few functionalities for a whole package; another package to maintain ); or
  - Move this to bob.bio.base. This is basically used for biometric recognition. I can be wrong, but I don't have in my mind a non biometric work that uses cohort normalization. We can even implement this in python.
   
    
Cheers



--
-- You received this message because you are subscribed to the Google Groups bob-devel group. To post to this group, send email to bob-...@googlegroups.com. To unsubscribe from this group, send email to bob-devel+...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/bob-devel or directly the project website at http://idiap.github.com/bob/
---
You received this message because you are subscribed to the Google Groups "bob-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bob-devel+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Tiago

Elie Khoury

unread,
Apr 12, 2016, 10:15:05 AM4/12/16
to bob-...@googlegroups.com
Hello,
Score normalization is a biometric asset.
I guess your best bet is to create a satellite package score normalization, and include ZT-norm and others (T-norm, Z-norm, S-norm, AS-norm) there, something like bob.bio.normalization.
Cheers


Manuel Günther

unread,
Apr 12, 2016, 11:50:13 AM4/12/16
to bob-devel
Hmm... AFAIR, Amir was developing a new package for score fusion (bob.fusion, I think). As score normalization and score fusion are related, we might incorporate it there.

Another possibility would be to use bob.measure, although it fits better to bob.fusion. I don't think that we should have a bob.bio package for that, particularly as the ZT score normalization is already an integral part of bob.bio.base.

@amir: I don't remember if the bob.fusion package already contains C/C++ code, but it should be easy to add it.

Manuel

Tiago Freitas Pereira

unread,
Apr 12, 2016, 3:00:34 PM4/12/16
to bob-...@googlegroups.com
I don't know, ZT score normalization and score fusion are different things.
Even if you do score normalization before the fusion, I wouldn't mix these things. They are very specific.

Moving to bob.measure seems a very good idea.
For me advantages are:
 - Semantically makes sense. The goal of bob.measure is to deal with scores and we will add something that deal with scores too
 - Will not increase the number of packages
 - Easy to implement (just a move to one package to another one)
 - We don't need to wait bob.fusion to be ready

Disadivantages:
 - bob will go to the version 2.2.*; which implies to update all the our dependencies to be compatible (bob.bio.base for example)


Cheers


--
-- You received this message because you are subscribed to the Google Groups bob-devel group. To post to this group, send email to bob-...@googlegroups.com. To unsubscribe from this group, send email to bob-devel+...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/bob-devel or directly the project website at http://idiap.github.com/bob/
---
You received this message because you are subscribed to the Google Groups "bob-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bob-devel+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Tiago

Amir Mohammadi

unread,
Apr 12, 2016, 3:06:56 PM4/12/16
to bob-...@googlegroups.com

Hey guys,

Bob.fusion.base should see a stable release this week.

Fyi,
Amir

Reply all
Reply to author
Forward
0 new messages