ffcc icon indicating copy to clipboard operation
ffcc copied to clipboard

A not obvious but important bug about fc-hyper-net(ffcc with meta)

Open zhujl3 opened this issue 4 years ago • 1 comments

When I reviewed the code in internal/TrainModel.m, line 283 ~ 288, the original codes are as below:

if params.DEEP.WHITEN_FEATURES
      % Unwhiten the first layer according to the whitening transformation, so
      % that is produces the correct output on the unwhitened feature vectors.
      model.W{1} = model.W{1} * whitening_transformation.A;
      model.b{1} = model.W{1} * whitening_transformation.b + model.b{1};
end

Since model.W{1} changed before model.b{1} it will lead a computational mistake to model.b{1}.And this mistake may weaken the model performance. So I simply change the code order as below:

      model.b{1} = model.W{1} * whitening_transformation.b + model.b{1};
      model.W{1} = model.W{1} * whitening_transformation.A;

And after this change, I got a significant improvement in my experiment.^.^

zhujl3 avatar Jul 24 '21 10:07 zhujl3

Wow, thanks for identifying this! Definitely a very important bug. Are you able to re-run the fixed code on any of the existing benchmarks (Gehler Shi or Cheng)? Updating the error metric structs in the *Hyperparams.m files under /projects/ with this bug fix would be very helpful for everyone using this code.

jonbarron avatar Jul 26 '21 19:07 jonbarron