Search
moon
sun

Multi-class N-pair loss (Sohn 2016) is a generalization of triplet loss* allowing joint comparisionโ—joint comparison among more than one negative samples. When applied on a pair of positive samples ๐ณ_๐ข and ๐ณ_๐ฃ (๐‘ฆ_๐‘–=๐‘ฆ_๐‘—), where z_i z_j is the inner product, which is equivalent to cosine similarity when both vectors have unit norm.

์ถœ์ฒ˜
์ˆ˜์ง‘์‹œ๊ฐ„
2021/08/14 10:21
์—ฐ๊ฒฐ์™„๋ฃŒ
1 more property
์œ„ ์‹์—์„œ triplet loss ์˜ ํ”์ ์„ ์ฐพ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž. z_i ๋Š” achor ์„, z_j ๋Š” positive sample ์„ ๋Œ€๋ณ€ํ•˜๋Š” ์นœ๊ตฌ, z_k ๋Š” negative sample ์„ ๋Œ€๋ณ€ํ•˜๋Š” ์นœ๊ตฌ์ด๋‹ค. negative sample ๊ณผ anchor ๋‚ด์ ๊ฐ’์˜ ์ฐจ๋ฅผ ํ†ตํ•ด loss ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋•Œ ์—ฌ๊ธฐ์„œ N ์ด ์•„๋‹ˆ๊ณ  2N ์ธ ์ด์œ ๋Š”, N ์˜ ๋‹จ์œ„๋Š” pair ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (์ฐธ๊ณ  : ๐Ÿง Encoder ๋ฐ projection head๋Š” batch ๋‹จ์œ„๋กœ ํ•™์Šตํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋งŒ์•ฝ N์˜ batch size๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฐ๊ฐ data augmentation์„ ๊ฑฐ์ณ์„œ 2N๊ฐœ์˜ sample์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฐ sample ๋ณ„๋กœ 1์Œ์˜ positive pair์™€ 2N-2์Œ์˜ negative pair๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์—์„œ๋Š” positive pair ๊ฐ„์˜ similarity๋Š” ๋†’์ด๊ณ , negative pair ๊ฐ„์˜ similarity๋Š” ์ตœ์†Œํ™”ํ•˜๋Š” ํ˜•ํƒœ์˜ loss function์„ ์ œ์•ˆํ•˜์—ฌ ํ•™์Šต์— ํ™œ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. (์งˆ๋ฌธ ๋„ฃ์Œ. 2N-2์Œ์ด ์•„๋‹ˆ๋ผ N-1 ์Œ ์•„๋‹ˆ๋ƒ๊ณ  โ†’ ์•ˆ๋…•ํ•˜์„ธ์š”. 1๊ฐœ์˜ query sample์— ๋Œ€ํ•ด, positive pair๋ฅผ ์ด๋ฃจ๋Š” 1๊ฐœ์˜ sample์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ 2n-2 ๊ฐœ์˜ sample๋“ค๊ณผ ๊ฐ๊ฐ negative pair๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. n๊ฐœ์˜ ์ด๋ฏธ์ง€ ์ค‘ query sample์ด ๋˜๋Š” 1๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์™ธํ•œ n-1 ๊ฐœ์˜ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋“ค์ด augmentation์„ ๊ฑฐ์ณ์„œ 2n-2๊ฐœ์˜ sample์ด ๋˜๊ณ , ์ด๊ฒƒ๋“ค๊ณผ ๋ชจ๋‘ negative pair๋ฅผ ์ด๋ฃฌ๋‹ค๊ณ  ์ดํ•ดํ•˜์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.)) a ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ 2๋ฒˆ์”ฉ augmentation ์‹œํ‚ค๋ฉด, 2a ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, ๊ฐ ์˜์ƒ(anchor)์˜ ์ž…์žฅ ์—์„œ๋Š” 1๊ฐœ์˜ positive sample (1 ๊ฐœ์˜ positive pair), 2a-2 ๊ฐœ์˜ negative sample ์ธ๋ฐ ๊ทธ "๊ฐ๊ฐ"์— ๋Œ€ํ•ด์„œ negative pair ๋กœ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 2a ๊ฐœ์˜ pair ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. positive-negative ๊ฐ€ 10์Œ์ด๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋Š” 20๊ฐœ๊ฐ€ ๋œ๋‹ค. ํ•˜๋‚˜์˜ anchor ์— ๋Œ€ํ•ด์„œ ๋‚˜๋จธ์ง€ 18 ๊ฐœ๋กœ negative pair ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‹ˆ ์–ผ๋งˆ๋‚˜ ์ข‹์€๊ฐ€.
triplet loss ์™€ ๋‹ค๋ฅด๊ฒŒ, loss ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ z_k ๋ฅผ ์ง€์ •ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์—†๋Š”๋ฐ, ์–ด๋–ค z_i, z_j ๊ฐ€ input ์œผ๋กœ ์‚ฌ์šฉ๋˜๋“  ๋ชจ๋“  neagtive z_k ์— ๋Œ€ํ•ด์„œ ์ „๋ถ€ ์—ฐ์‚ฐ์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
Triplet loss (left) and its extension (N+1)-triplet loss (right) (from Sohn 2016)
์ดํ•ดํ•˜๊ณ  ๋ณด๋ฉด ์ด๊ฒƒ์€ ๊ต‰์žฅํžˆ ์ž˜ ๊ทธ๋ ค์ง„ ๊ทธ๋ฆผ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค input x ๋ฅผ 3๊ฐœ ๋„ฃ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž. ๊ณก์„  ํ™”์‚ดํ‘œ๋Š” ๋ชจ๋ธ์˜ optimization ์ด์ „๊ณผ ์ดํ›„์˜ ๋ณ€ํ™”๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ๊ทธ๋ฆผ์ด ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์€ ๊ฒƒ์€, ๊ทธ๋ƒฅ ์œ„ ์‹์€ triplet loss ์˜ ์ผ๋ฐ˜ํ™”๋ผ๋Š” ์ ์ด๋‹ค.
Search
input
type
neural network ์˜ output
์œ„ ๊ทธ๋ฆผ์—์„œ
negative
f(v2)
f+
positive
f(v3)
f-
COUNT4
์œ„ ์‹์„ ์กฐ๊ธˆ ๋” ์ž˜ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋‚˜์˜จ๋‹ค.
๐Ÿ“Œ
z_i ๋Š” ๋ฐ˜๋“œ์‹œ anchor ์ด๊ณ  ์—ฌ๊ธฐ์„œ z_j ๋Š” ๋ฐ˜๋“œ์‹œ positive sample ์ด๋‹ค. (NX-Xent loss ์ฐธ๊ณ  Supervised NT-Xent loss (Khosla et al. 2020), let's first look at the self-supervised version of NT-Xent loss. NT-Xent is coined by Chen et al. 2020 in the SimCLR paper and is short for "normalized temperature scaled cross entropy lossโ€ฃโ€. It is a modification of the multi-class N-pair loss with addition of the temperature parameter (๐œ) to scale the cosine similarities. Chen et al. found that an appropriate temperature parameter can help the model learn from hard negatives. ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.) ์–ธ๋œป z_j ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์— negative sample ๋ฅผ ๋„ฃ์–ด ๋” ์ผ๋ฐ˜ํ™”์‹œ์ผœ๋„ ๋˜์ง€ ์•Š์„๊นŒ? ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด z_j ์— posive ๊ฐ€ ๋“ค์–ด๊ฐ€๋“  negative ๊ฐ€ ๋“ค์–ด๊ฐ€๋“  -log(a/b) ์—์„œ ๋ถ„๋ชจ b ๋Š” ๋Œ€์ฒด์ ์œผ๋กœ ๋˜‘๊ฐ™์„ํ…Œ๊ณ  ๋ถ„์ž์ธ a ๋งŒ ๋ณ€ํ•˜๋Š”๋ฐ, a/b=1 ์ด์–ด์•ผ loss=0 ์ด๋ฏ€๋กœ Optimal ์ด๋‹ค. ์ด ์ƒํƒœ๋กœ ํ›ˆ๋ จ์„ ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹น์ดˆ ์ทจ์ง€๊ฐ€ โฌ†๏ธpositive / (positive_all + โฌ‡๏ธnegative_all) ๊ฐ€ 1 ์— ๊ฐ€๊นŒ์›Œ์ง€๋ก ๊ต์œก *๋ฐฉํ–ฅ โฌ†๏ธ ๊ณผ โฌ‡๏ธ ์€ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์šฐ๋ฆฌ์˜ ๋ฐ”๋žŒ์ด๋‹ค. ์ธ๋ฐ ๋งŒ์•ฝ negative ๊ณผ anchor ์˜ ์œ ์‚ฌ๋„๊ฐ€ ๋ถ„์ž์— ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ต์œก์„ ํ•˜๊ฒŒ ๋œ๋‹ค. โฌ†๏ธnegative / (โฌ‡๏ธpositive_all + โฌ‡๏ธnegative_all) ๊ฐ€ 1 ์— ๊ฐ€๊นŒ์›Œ์ง€๋„๋ก ๊ต์œก negative ์€ โฌ†๏ธ์ฆ๊ฐ€ํ•ด์•ผ ํ•˜๋Š”๋ฐ negative_all ์€ โฌ‡๏ธ๊ฐ์†Œํ•ด์•ผ ํ•œ๋‹ค๊ณ ? negative ์€ negative_all ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ positive_all ์€ ์ฆ๊ฐ€ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ์•ผํ•˜๋Š”๋ฐ ์ด ์‹์—์„œ๋Š” โฌ‡๏ธ๊ฐ์†Œํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฏ€๋กœ ์ด๊ฑด ๋…ธ์ด์ฆˆ์ด๋‹ค. โ“loss ๋ฅผ ํ•ด์„ํ•  ๋•Œ ์ด๋ ‡๊ฒŒ (์ฐธ๊ณ 3) ์‹์˜ ์š”์†Œ๋ฅผ ๊ฐ๊ฐ, ๊ท€๋‚ฉ์ ์œผ๋กœ(?) ํ•ด์„ํ•ด๋„ ๋˜๋Š”๊ฑด๊ฐ€? ๋…ผ๋ฌธ (supervised contrastive loss โ€ฃ) ์—์„œ ์ด๊ฑธ ์—ญ์ „ํŒŒ์‹์œผ๋กœ ์œ ๋„ (์ฐธ๊ณ 1) ํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์˜ค๋˜๋ฐ, ์ด๋Ÿฐ ์ง๊ด€๊ณผ ํ˜„์‹ค์ด ์กฐ๊ธˆ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋“ค์ด ์™•์™• ์กด์žฌํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํ•ด๋‹น ๋…ผ๋ฌธ (์ฐธ๊ณ 2) ์„ ์ฐธ๊ณ ํ•ด์„œ ๊ฐœ๋…์„ ํ™•์‹คํžˆ ํ•˜๋Š”๊ฑด ์–ด๋–จ๊นŒ? ๊ด€๋ จ ์˜๋ฌธ (์ฐธ๊ณ 4)