dataplayer12 / Fly-LSH

An implementation of efficient LSH inspired by fruit fly brain
MIT License
87 stars 27 forks source link

为什么实现没有达到论文的效果 #2

Closed 15586233385 closed 5 years ago

15586233385 commented 5 years ago

实现的时候为什么 没有达到论文的预期效果 (china)

dataplayer12 commented 5 years ago

Hi @15586233385, although I do not speak Chinese, I used Google and apparently, you are asking whether this code reproduces the results mentioned in the paper. Yes, this code was used to produce the results we have mentioned in the paper. In case you have trouble reproducing the results, please let us know (in English).

15586233385 commented 5 years ago

Hi @15586233385, although I do not speak Chinese, I used Google and apparently, you are asking whether this code reproduces the results mentioned in the paper. Yes, this code was used to produce the results we have mentioned in the paper. In case you have trouble reproducing the results, please let us know (in English).

Thank you very much! When I implement SIFT data set, I use the method of paper. In the case of 32-bit hash coding, my highest accuracy is 55%, but the accuracy of the paper is about 75%. Several of us in our graduate group have this result. The only controversial step we have to take is the first step (data splitting and normalization), so we want to consult the method used in each step of Drosophila algorithm. Thank you very much!

15586233385 commented 5 years ago

We have been doubting whether Drosophila algorithm can really achieve this effect. I would like to ask if you have achieved the effect described in this paper when you implement this paper.

dataplayer12 commented 5 years ago

Thanks for the questions. I believe you are referring to figure 3, third panel in the paper, which shows a high AUPRC for hash length m=32 and WTA factor k=20. AUPRC of 75% is achieved only by DenseFly algorithm presented in the paper. For the usual Fly algorithm, we also achieve the same result as you (~55%) as can be seen in that figure. To get the same results, please use our code and pass the unnormalized data directly into the constructor for densefly. Data normalization is performed internally by the densefly object.

15586233385 commented 5 years ago

Thank you very much. We have been stagnating for a long time on the issue of realization. Want to confirm again what you mean by using densefly method to achieve the effect of the paper?

dataplayer12 commented 5 years ago

As you may know, we have introduced a new algorithm in our paper, linked in the readme. We call this new algorithm DenseFly. We do not claim that the original Fly algorithm, as presented by Dasgupta et. al. can achieve 75% AUPRC at m=20. If you are only concerned about the results obtained by the original Fly algorithm, please use any implementation you want (as I mentioned earlier, our results on SIFT agree with what you said earlier i.e. ~55%). The claims of 75% AUPRC are only for DenseFly algorithm, which is basically Fly algorithm without the WTA mechanism. If you are concerned about verifying the highest performances reported in our paper (blue bars in figures 2 and 3), we recommend that you use our code, or at least write a faithful implementation of the algorithm in a language of your choice. I hope this helps!

15586233385 commented 5 years ago

OK, thank you.

dataplayer12 commented 5 years ago

Hi, @15586233385, it seems like you were able to resolve your issue. Since there has been no activity on this issue for 5 days, I am closing it for the moment. If your issue has not been resolved, please feel free to re-open it.