์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[์ฃผ์š” ์šฉ์–ด ์ •๋ฆฌ] ์ง€๋„ํ•™์Šต๊ณผ ๋น„์ง€๋„ํ•™์Šต, ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•๊ณผ ์†์‹ค ํ•จ์ˆ˜, ์ „์ด ํ•™์Šต, ResNet vs FaceNet, Triplet Loss

๐Ÿ˜Ž ์ง€์‹ in Action/AI (learn, usage)๐Ÿฆพ

by :ํ•ดํ”ผ๋ž˜๋น—๐Ÿพ 2024. 12. 15. 13:36

๋ณธ๋ฌธ

์ง€๋„ํ•™์Šต๊ณผ ๋น„์ง€๋„ํ•™์Šต

์ง€๋„ํ•™์Šต์€ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์™€ ํ•ด๋‹นํ•˜๋Š” ์ถœ๋ ฅ ๋ ˆ์ด๋ธ”์ด ์ฃผ์–ด์ง„ ์ƒํƒœ์—์„œ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค

๋น„์ง€๋„ํ•™์Šต์€ ์ถœ๋ ฅ ๋ ˆ์ด๋ธ”์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ„ด์„ ์ฐพ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ฑฐ๋‚˜ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค 

 


๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•๊ณผ ์†์‹คํ•จ์ˆ˜

์†์‹คํ•จ์ˆ˜๋Š” ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ ๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค

 

๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์€ ์†์‹คํ•จ์ˆ˜(loss function)๋‚˜ ๋น„์šฉํ•จ์ˆ˜(cost function)์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ

๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ตœ์ ์˜ ๋ชจ๋ธ์„ ์ฐพ๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค

๋‹ค์‹œ๋งํ•˜๋ฉด, ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ธ ์ง€์ (์ตœ์†Ÿ๊ฐ’)์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ธฐ์šธ๊ธฐ๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค

 

๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• ์›๋ฆฌ

1. ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ(๊ฐ€์ค‘์น˜, ํŽธํ–ฅ)์„ ์ž„์˜๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค

2. ์†์‹ค ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค

3. ๊ณ„์‚ฐ๋œ ๊ธฐ์šธ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํ˜„์žฌ๊ฐ’ - ํ•™์Šต๋ฅ  * ๊ธฐ์šธ๊ธฐ๋กœ ์—…๋ฐ์ดํŠธ๋œ๋‹ค

4. ์ด ๊ณผ์ •์„ ์†์‹คํ•จ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ’์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค

 

๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์˜ ์ข…๋ฅ˜

 

  • ๋ฐฐ์น˜ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• (Batch Gradient Descent):
    • ์ „์ฒด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ณ„์‚ฐ ์ž์›์ด ๋งŽ์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.
    • ์ˆ˜๋ ด์ด ์•ˆ์ •์ ์ด์ง€๋งŒ, ํฐ ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š” ๋А๋ฆฌ๊ฑฐ๋‚˜ ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•๋ฅ ์  ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• (Stochastic Gradient Descent, SGD):
    • ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜๋‚˜์˜ ์ƒ˜ํ”Œ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณ„์‚ฐ์ด ๋น ๋ฅด๊ณ  ์ž์› ์†Œ๋ชจ๊ฐ€ ์ ์ง€๋งŒ, ์ˆ˜๋ ด์ด ๋ถˆ์•ˆ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ํฐ ๋ฐ์ดํ„ฐ์…‹์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• (Mini-Batch Gradient Descent):
    • ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ๋ฐฐ์น˜๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๋ฐฐ์น˜์—์„œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐฐ์น˜ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์˜ ์žฅ์ ๊ณผ ํ™•๋ฅ ์  ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์˜ ์†๋„๋ฅผ ๊ฒฐํ•ฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
    • ๋Œ€๋ถ€๋ถ„์˜ ๋”ฅ๋Ÿฌ๋‹์—์„œ ์„ ํ˜ธ๋˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• ๋‹จ์ 

์ง€์—ญ ์ตœ์ ํ•ด์— ๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค

ํ•™์Šต๋ฅ ์ด ๋„ˆ๋ฌด ํฌ๋ฉด ๋ฐœ์‚ฐํ•˜๊ณ  ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ์ˆ˜๋ ด์ด ๋А๋ฆด ์ˆ˜ ์žˆ๋‹ค

 


 

 

์ „์ด ํ•™์Šต(Transfer Learning)

์ „์ดํ•™์Šต์€ Source Task์—์„œ ํ•™์Šตํ•œ ์ง€์‹์„ Target Task์— ์ ์šฉํ•˜๋Š” ๊ณผ์ •์œผ๋กœ

์ด๋ฏธ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ์ƒˆ๋กœ์šด ๋ฌธ์ œ์— ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค

 

๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์…‹์—์„œ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์ง€์‹์„ ์ƒˆ๋กœ์šด ์ž‘์—…์— ์ ์šฉํ•˜์—ฌ ํ•™์Šต ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค

 

์ „์ดํ•™์Šต ์•„์ด๋””์–ด 

Feature Extraction (์ด๋ฏธ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์ผ๋ถ€ ๋ ˆ์ด์–ด๋ฅผ ๊ณ ์ •ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ๋งž๋Š” ์ถœ๋ ฅ์ธต๋งŒ ์žฌํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•)

Fine-tuning(์ด๋ฏธ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ ์ผ๋ถ€ ๋ ˆ์ด์–ด๋ฅผ ๊ณ ์ •์‹œํ‚ค๊ณ , ๋‚˜๋จธ์ง€ ๋ ˆ์ด์–ด๋“ค์„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ๋งž๊ฒŒ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•)

 


 

ResNet vs FaceNet

๋ชฉํ‘œ ์–ผ๊ตด ์ธ์‹ ๋ฐ ํŠน์ง• ์ž„๋ฒ ๋”ฉ ์ผ๋ฐ˜์ ์ธ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ฐ ํŠน์ง• ์ถ”์ถœ
์‚ฌ์šฉ๋œ ์†์‹ค ํ•จ์ˆ˜ Triplet Loss ํฌ๋กœ์Šค ์—”ํŠธ๋กœํ”ผ ์†์‹ค (์ผ๋ฐ˜์ ์œผ๋กœ)
๊ตฌ์กฐ CNN ๊ธฐ๋ฐ˜ + Triplet Loss (ํŠน์ง• ๋ฒกํ„ฐ ์ƒ์„ฑ) Residual Block + ๊นŠ์€ CNN ๋ชจ๋ธ
์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์–ผ๊ตด ์ด๋ฏธ์ง€ ์ผ๋ฐ˜ ์ด๋ฏธ์ง€
์ถœ๋ ฅ 128์ฐจ์› ์–ผ๊ตด ํŠน์ง• ๋ฒกํ„ฐ ๋ถ„๋ฅ˜ ๊ฒฐ๊ณผ (์˜ˆ: ํด๋ž˜์Šค ํ™•๋ฅ )
์‘์šฉ ๋ถ„์•ผ ์–ผ๊ตด ์ธ์‹, ์ธ์ฆ, ๊ตฐ์ง‘ํ™” ๋“ฑ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜, ๊ฐ์ฒด ๊ฒ€์ถœ, ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ๋“ฑ
ํŠน์ง•
ํŠน์ง• ์ž„๋ฒ ๋”ฉ์„ ์œ„ํ•œ ํ•™์Šต, ์–ผ๊ตด ์ด๋ฏธ์ง€์— ํŠนํ™”๋จ ๋งค์šฐ ๊นŠ์€ ๋„คํŠธ์›Œํฌ, ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ ๋น„์ „ ์ž‘์—…์— ์ ์šฉ

 


 

Triplet Loss

์†์‹คํ•จ์ˆ˜์˜ ํ•œ ์ข…๋ฅ˜, ์ƒ˜ํ”Œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•˜๊ณ  ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž„๋ฒ ๋”ฉ์„ ์ตœ์ ํ™”ํ•œ๋‹ค.

์–ผ๊ตด ์ธ์‹, ์ด๋ฏธ์ง€ ๊ตฐ์ง‘ํ™”, ๋น„์Šทํ•œ ๊ฐ์ฒด ์ฐพ๊ธฐ ๋“ฑ ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ํ•™์Šต์„ ํ™œ์šฉํ•˜๋Š” ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

์„ธ ๊ฐœ์˜ ์ƒ˜ํ”Œ์„ ๋น„๊ตํ•˜์—ฌ Anchor, Positive, Negative ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šตํ•œ๋‹ค.

 

Anchor : ๊ธฐ์ค€์ด ๋˜๋Š” ์ƒ˜ํ”Œ

Positive : Anchor์™€ ๋™์ผํ•œ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๋Š” ์ƒ˜ํ”Œ

Negative : Anchor์™€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๋Š” ์ƒ˜ํ”Œ

 

๊ทธ์™ธ ์†์‹คํ•จ์ˆ˜ : Mean Squared Error (MSE) Loss

์‚ฌ์šฉ ๋ถ„์•ผ : ํšŒ๊ท€ ๋ฌธ์ œ

์„ค๋ช… : ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ œ๊ณฑํ•˜์—ฌ ํ‰๊ท ์„ ์ทจํ•œ ์†์‹ค ํ•จ์ˆ˜, ๊ฐ’์ด ํด ์ˆ˜๋กœ ๋ถ€์ •ํ™•ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค

 

y: ์‹ค์ œ๊ฐ’, y^ : ์˜ˆ์ธก๊ฐ’, N : ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ์˜ ์ˆ˜

 

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ