Janghyun1230 / Speaker_Verification

Tensorflow implementation of "Generalized End-to-End Loss for Speaker Verification"
MIT License
354 stars 102 forks source link

Inconsistency with equation (8) (possible missing division by M-1) #18

Open valeria-a opened 5 years ago

valeria-a commented 5 years ago

Hi! First of all, I want to thank you for a great library - it saved me a lot of time! I noticed that when you calculate center_except in similarity(), you follow equation (8) from the article which actually calculates mean of all the elements except one, so there should be summation and division by M-1. I see you perform the summation and subtraction of relevant element, however there is no division by M-1. Is there a chance it is missing? Thanks!

vzxxbacq commented 5 years ago

Hello @valeria-a , N unit vector's normalized sum should equal to their sum divide by N.

BingqingWei commented 5 years ago

Hello @valeria-a , N unit vector's normalized sum should equal to their sum divide by N.

The l2-normalized sum is not equal to sum of them divided by N. Math: sum(v_ji) / N != sum(v_ji) / ||sum(v_ji)|| Because N != ||sum(v_ji)||.

Well if v_ji is a unit vector, this equation would be true: N == sum(||v_ji||).

The reason why his code work is by luck: either N or normalization puts each element in the array in range [0, 1].

padmanabhankrishnamurthy commented 4 years ago

Hi,

So this issue still remains unresolved? If so, isn't that rather dangerous, since this implementation doesn't actually follow Equation 8?

Cheers