ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코사인 유사도 Loss
    딥러닝/활성화 함수 2022. 6. 5. 16:37

    뉴런 값들을 벡터로 그룹핑할 수 있습니다. 차원 수가 2인 경우 2차원 평면 상에 그려집니다. 보통 뉴런 값 N개로 이루어져 있으므로 N 차원입니다. 하지만 설명을 위해 2차원 평면 상에서 무언 가를 그려 보도록 하겠습니다.

     

    뉴런의 피처 맵 feature map 값들은 대게 음수 값이 없습니다. 따라서 뉴런 벡터를 시각화 해 보면 2, 3, 4 분면을 지나는 벡터는 없을 것입니다. 

    코사인 유사도 공식을 알아보겠습니다. 벡터의 내적 공식은

    $$ \large \overrightarrow{a}\bullet\overrightarrow{b}=\lvert \overrightarrow{a} \rvert\lvert \overrightarrow{b} \rvert\cos{ \theta }=a_1b_1+a_2b_2 $$

    입니다. 그래서 코사인 유사도 공식은

    $$ \large \cos{\theta }=\frac{ a_1b_1+a_2b_2 }{ \sqrt{a_1^2+a_2^2} \times\sqrt{b_1^2+b_2^2} } $$

    이 될 수 있을 것입니다. 단순히 식을 다시 정리한 것에 불과합니다. 예측치 벡터 A와 정답 벡터 B 간의 Loss를 구할 때 이런 코사인 유사도 Loss로 구할 수도 있게 됩니다. 코사인의 범위는 -1 ~ +1 사이의 값입니다. 그럼 음수 값이 나올 수도 있지 않을 까 싶은데 앞서 코사인 유사도를 구성하는 벡터 값은 거의 1사분면 만을 지난다고 했습니다. 그럼 코사인 유사도가 음수가 되지는 않겠지요. 그런데 있을 수는 있습니다.

     

    보통  KL Divergence를 적용해 보면 값이 무한대로 튀는 경우가 종종 나타나서 그보다는 코사인 유사도를 많이 쓰는 편입니다.

    댓글

Designed by Tistory.