현재 baseline의 l2_normalize 함수가 예상대로 제대로 동작하지 않는 것 같습니다.
baseline에서 (제가 이해한 바로는) query, reference vectors간의 cosine similarity 계산에 앞서
vector normalization을 수행합니다.
https://github.com/AiHackathon2018/AI-Vision/blob/5596b8e45541fc980d7d5effb80096872511c797/main.py#L44-L51
이때 l2_normalize 함수에서 np.linalg.norm를 이용해서 벡터의 norm 을 계산하는데, 현재 코드는 axis가 명시되어 있지 않아서 전체 matrix의 norm을 계산합니다. 아마도, column vectors별로 norm이 각각 계산이 되어야 cosine similarity가 제대로 계산되지 않을까 싶습니다.
https://github.com/AiHackathon2018/AI-Vision/blob/5596b8e45541fc980d7d5effb80096872511c797/main.py#L68-L72

(see also, https://colab.research.google.com/drive/1XJ82_111ufE64CeA3ymMPisWYnePoyNK)
제안하고 싶은 해결방법이 있나요?
def l2_normalize(v):
norm = np.linalg.norm(v, axis=1, keepdims=True)
return np.divide(v, norm, where=norm!=0) # only divide nonzeros else 1
https://github.com/insurgent92/AI-Vision/blob/c679010879078dbcf439310b355af081109290d4/main.py#L98-L100
현재 baseline의 l2_normalize 함수가 예상대로 제대로 동작하지 않는 것 같습니다.
baseline에서 (제가 이해한 바로는) query, reference vectors간의 cosine similarity 계산에 앞서
vector normalization을 수행합니다.
https://github.com/AiHackathon2018/AI-Vision/blob/5596b8e45541fc980d7d5effb80096872511c797/main.py#L44-L51
이때
l2_normalize함수에서np.linalg.norm를 이용해서 벡터의norm을 계산하는데, 현재 코드는 axis가 명시되어 있지 않아서 전체 matrix의 norm을 계산합니다. 아마도, column vectors별로 norm이 각각 계산이 되어야 cosine similarity가 제대로 계산되지 않을까 싶습니다.https://github.com/AiHackathon2018/AI-Vision/blob/5596b8e45541fc980d7d5effb80096872511c797/main.py#L68-L72
(see also, https://colab.research.google.com/drive/1XJ82_111ufE64CeA3ymMPisWYnePoyNK)
제안하고 싶은 해결방법이 있나요?
https://github.com/insurgent92/AI-Vision/blob/c679010879078dbcf439310b355af081109290d4/main.py#L98-L100