[CS231n] Lecture 3 | Loss Functions and Optimization ์š”์•ฝ ์ •๋ฆฌ

ํ•˜๋Š”ยท2024๋…„ 2์›” 27์ผ
0

cs231n

๋ชฉ๋ก ๋ณด๊ธฐ
3/14
post-thumbnail

๐Ÿ”—์˜์ƒ

๋ชฉ์ฐจ

  • ์†์‹ค ํ•จ์ˆ˜
  • ์ •๊ทœํ™” ์†์‹ค
  • softmax
  • ์ตœ์ ํ™”

์†์‹คํ•จ์ˆ˜ (Loss function)

  1. ์—ญํ• 
    • ๋ชจ๋ธ์ด ๋‚˜ํƒ€๋‚ด๋Š” ํ™•๋ฅ  ๋ถ„ํฌ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋”ฐ๋ฅด๋Š” ์‹ค์ œ ํ™•๋ฅ  ๋ถ„ํฌ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐ
    • ์ฆ‰, ๋ชจ๋ธ์˜ ์˜ˆ์ธก๊ฐ’์ด ์–ผ๋งˆ๋‚˜ ๊ตฌ๋ฆฐ์ง€ ์ธก์ •ํ•œ๋‹ค

Multiclass SVM loss

hinge loss์˜ ์ˆ˜์‹

hinge loss์˜ ๊ทธ๋ž˜ํ”„
SVM์€ hinge ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์†์‹ค ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธํ˜•์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜์— ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.

sj - syi + 1 ์‹์˜ ๊ฐ ํ•ญ ์„ค๋ช…

s: ๋ถ„๋ฅ˜ ๋ชจ๋ธ์ด ๋ถ„๋ฅ˜ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์˜ˆ์ธก score
sj: ์˜ค๋‹ต category์˜ score (multiclass ๋ถ„๋ฅ˜์ธ ๊ฒฝ์šฐ๋Š” ์˜ค๋‹ต ์ค‘ ์ œ์ผ ํฐ ๊ฐ’)
syi: ์ •๋‹ต category์˜ score
+1: safty margin

์ผ์ • ์—ฌ์œ ๊ณต๊ฐ„์„ ์„ค์ •ํ•ด์„œ, ๋ชจ๋ธ์ด ๊ฒฐ์ • ๊ฒฝ๊ณ„์—์„œ ์ผ์ • ๊ฑฐ๋ฆฌ ์ด์ƒ ๋–จ์–ด์ง„ ์ƒ˜ํ”Œ๋“ค์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
๋ชจ๋ธ์ด ์ข€ ๋” ์ผ๋ฐ˜ํ™”๋œ ๊ฒฐ์ • ๊ฒฝ๊ณ„๋ฅผ ํ•™์Šตํ•˜๊ณ , ์žก์Œ ์ด์ƒ์น˜์— ๋ฏผ๊ฐํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

๊ณ„์‚ฐ ๋ฐฉ๋ฒ• ์˜ˆ์‹œ

๊ณ ์–‘์ด ์‚ฌ์ง„: ์ •๋‹ต์ด cat์ธ๋ฐ ์˜ค๋‹ต์ธ car ์ ์ˆ˜๊ฐ€ 5.1๋กœ ๋” ๋†’์Œ
sj: 5.1
syi: - 3.2 (์ •๋ถ„๋ฅ˜ ๊ฐ’)
5.1 - 3.2 + 1 = 2.9
์ฐจ ์‚ฌ์ง„: ์ •๋‹ต ๋ ˆ์ด๋ธ”์ธ car ์ ์ˆ˜๊ฐ€ ์ œ์ผ ๋†’์Œ ๋”ฐ๋ผ์„œ loss = 0
s_1: ๊ณ ์–‘์ด ์ ์ˆ˜, s_2: ๊ฐœ ์ ์ˆ˜
Y_i: ์ด๋ฏธ์ง€์˜ ์‹ค์ œ ์ •๋‹ต ์นดํ…Œ๊ณ ๋ฆฌ (์ •์ˆ˜ ๊ฐ’)
s_y_i: train set์˜ i๋ฒˆ์งธ ์ด๋ฏธ์ง€์˜ ์ •๋‹ต ํด๋ž˜์Šค ์Šค์ฝ”์–ด

์ •๊ทœํ™” ์†์‹ค(Regularization loss)

ํŒŒ๋ž€ ์„ ๋ณด๋‹ค ์ดˆ๋ก์„ ์ด ๋” ์ข‹์€ ๋ชจ๋ธ

์ •๊ทœํ™”(regularizaiton)

๋ณต์žกํ•ด์ง„ ๋ชจ๋ธ์— ํŽ˜๋„ํ‹ฐ๋ฅผ ์ค˜์„œ ์ตœ๋Œ€ํ•œ ์‹ฌํ”Œํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ณผ์ •.
loss๊ฐ€ ์ž‘์œผ๋ฉด ์ž‘์„์ˆ˜๋ก ์ข‹์€ ๊ฒƒ ๋งŒ์€ ์•„๋‹ˆ๋‹ค.(๊ณผ๋Œ€์ ํ•ฉ) ํ•จ์ˆ˜๊ฐ€ ๋‹จ์ˆœํ•ด์•ผ(์ฆ‰, ์ง์„ ์— ๊ฐ€๊นŒ์›Œ์•ผ) test data์— ์ ํ•ฉํ•  ๊ฐ€๋Šฅ์„ฑ ์ปค์ง„๋‹ค.

๋ชจ๋ธ์˜ ๋ณต์žกํ•จ, ๋‹จ์ˆœํ•จ์„ ํ†ต์ œํ•˜๊ธฐ ์œ„ํ•ด ์†์‹ค ํ•จ์ˆ˜์— regularization term์„ ์ถ”๊ฐ€
Data Loss ์™€ Regularization loss์˜ ํ•ฉ์œผ๋กœ ๋ณ€ํ•˜๊ณ , ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์ธ ๋žŒ๋‹ค๋กœ ๋‘ ํ•ญ๊ฐ„์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์กฐ์ ˆ

L1 ์ •๊ทœํ™”, L2 ์ •๊ทœํ™”


x: ์ด๋ฏธ์ง€ ํ”ฝ์…€ ๊ฐ’์ด [1,1,1,1] ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.
๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ๊ฐ w1, w2์ผ ๋•Œ L1๊ณผ L2๋Š” ๊ฐ๊ฐ ์–ด๋–ค ๊ฐ€์ค‘์น˜๋ฅผ ์„ ํ˜ธํ• ๊นŒ?

L1: w1์„ ์„ ํ˜ธ
sparseํ•œ๊ฑธ ๊ณ ๋ฆ„
0์ด ๋งŽ์œผ๋ฉด ์ข‹๋‹ค๊ณ  ํŒ๋‹จ

L2: w2๋ฅผ ์„ ํ˜ธ
w2๊ฐ€ norm์ด ๋” ์ž‘๊ธฐ ๋•Œ๋ฌธ.
๋ชจ๋“  ์š”์†Œ๊ฐ€ ๊ณจ๊ณ ๋ฃจ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธธ ๋ฐ”๋žŒ

Multinomial logistic regression(softmax)

๋”ฅ๋Ÿฌ๋‹์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋จ.
Multi-class SVM loss์—์„œ๋Š” score ์ž์ฒด์— ๋Œ€ํ•œ ํ•ด์„๋ณด๋‹ค๋Š” ์ •๋‹ต class์™€ ์ •๋‹ต์ด ์•„๋‹Œ class๋“ค์„ ๋น„๊ตํ•˜๋Š” ํ˜•์‹์ด์—ˆ๋‹ค.
softmax๋Š” ๊ทธ ์ฐจ์ด๋ฅผ ๋ชจ๋‘ ์ˆ˜์น˜ํ™”ํ•˜์—ฌ score ์ž์ฒด์— ์ถ”๊ฐ€์ ์ธ ์˜๋ฏธ ๋ถ€์—ฌํ•œ๋‹ค.

softmax ๊ณ„์‚ฐ

ํด๋ž˜์Šค๋ณ„ ํ™•๋ฅ  ๋ถ„ํฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด์„œ loss๋ฅผ ๊ณ„์‚ฐํ•จ.
์ง€์ˆ˜ํ™” โ†’ ์ •๊ทœํ™” โ†’ -log
์ •๋‹ต ํด๋ž˜์Šค์— ๊ฐ€๊นŒ์šฐ๋ฉด ํ™•๋ฅ ์ด 1์— ๊ฐ€๊นŒ์›€.

์ตœ์ ํ™”(Optimization)

๋”ฅ๋Ÿฌ๋‹์ด๋ž€ ์ตœ์ข… ์†์‹ค ํ•จ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๊ฒŒ ํ•˜๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์ด์ž ํŒŒ๋ผ๋ฏธํ„ฐ์ธ ํ–‰๋ ฌ W๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ loss๋ฅผ ์ค„์ด๋Š” w๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊นŒ?
์ตœ์ ํ™”๋Š” ์‚ฐ์† ๊ณจ์งœ๊ธฐ๋ฅผ ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. loss๊ฐ€ ๋‚ฎ์€ ์ƒํƒœ์ธ ๋‚ฎ์€ ์ง€๋Œ€๋ฅผ ํ–ฅํ•ด..

Gradient Descent

๋‚ฎ์€ ๊ณณ์„ ํ–ฅํ•ด ๋‚˜์•„๊ฐ€๊ธฐ ์œ„ํ•ด ๊ฒฝ์‚ฌ๋ฅผ ๋”ฐ๋ผ ๋‚ด๋ ค๊ฐ€๋ฉฐ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•
ํ˜„์žฌ ์œ„์น˜์™€ ์ด๋™ํ•œ ์œ„์น˜์˜ ๋ฏธ๋ถ„ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ฉฐ ๋ฏธ๋ถ„ ๊ฐ’์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋ฉด ์•„๋ž˜๋ฅผ ํ–ฅํ•ด ๋‚˜์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.

  • ๋ฏธ๋ถ„์ด ํ•œ ์ ์˜ ๊ธฐ์šธ๊ธฐ๋ผ๋Š” ๊ฑธ ์žŠ์ง€ ๋ง์ž

numerical ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฏธ๋ถ„ ๊ฐ’์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Œ ๊ทผ๋ฐ W๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ณ„์‚ฐํ•˜๊ธฐ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ. ๋”ฐ๋ผ์„œ ๋ฏธ๋ถ„์‹์„ ์ด์šฉํ•ด ๋” ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

SGD(Stochastic Gradient Descent) ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•

ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€(mini-batch)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ
๊ฑฐ์˜ ๋ชจ๋“  DNN ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‚ฌ์šฉ๋จ

# Vanilla Minibatch Gradient Descent

while True:
  weights_grad = evaluate_gradient(loss_fun, data, weights)
  weights += -step_size * weights_grad  # perform parameter update  
 # step_size : learning rate. ํ•œ๋ฒˆ์— ์ด๋™ํ•˜๋Š” ์ •๋„

learning rate๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด overshooting, ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ์‹œ๊ฐ„ ์˜ค๋ž˜ ๊ฑธ๋ฆผ, global minimum์ด ์•„๋‹Œ local minimum์— ๋น ์งˆ ์ˆ˜ ์žˆ์Œ.

์›น๋ฐ๋ชจ ์‚ฌ์ดํŠธ Linear Classifier์™€ Gradient descent:
Multiclass SVM optimization demo (stanford.edu)


Aside: ์ด๋ฏธ์ง€ ํŠน์„ฑ ์ถ”์ถœ

์™ผ์ชฝ ์ขŒํ‘œ์˜ ์ด๋ฏธ์ง€ ํŠน์„ฑ์€ ์„ ํ˜• ๋ถ„๋ฆฌ ํ•  ์ˆ˜ ์—†๋‹ค.

์˜ค๋ฅธ์ชฝ ์ขŒํ‘œ๋Š” ๊ฐ ์ ๋“ค์„ ๊ทน์ขŒํ‘œ๊ณ„๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌ๋ฉด ์„ ํ˜• ๋ถ„๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. ์ด๊ฒƒ์„ ๋ชจํ‹ฐ๋ธŒ๋กœํ•˜์—ฌ ๊ฐ ํŠน์ง•๋“ค์„ ์ด์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋„์ถœ๋œ๋‹ค.

2012๋…„ ์ด์ „๊นŒ์ง€๋Š” ์ด๋ฏธ์ง€ ํŠน์ง• ์ถ”์ถœ์ด ๋งŽ์ด ์—ฐ๊ตฌ๋˜์—ˆ๋‹ค. 2012๋…„ alexnet์ด ๋‚˜์˜จ ์ดํ›„์—” layer๋ฅผ ์Œ“์œผ๋ฉด์„œ cnn์ด๋‚˜ dnn์ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํŠน์ง•์„ ์ง์ ‘ ์ถ”์ถœํ•˜์—ฌ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹์ด ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฒŒ ๋˜์—ˆ๋‹ค.

์ปฌ๋Ÿฌ ํžˆ์Šคํ† ๊ทธ๋žจ

Histogram of Oriented Gradients (Hog)

์ด๋ฏธ์ง€๋ฅผ 8x8์˜ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ทธ ์กฐ๊ฐ ๋‚ด ๊ฐ€์žฅ ์ง€๋ฐฐ์ ์ธ edge(๊ฐ’์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€์ )๋ฅผ ์ฐพ๋Š”๋‹ค. ๊ทธ edge๋ฅผ ์–‘์žํ™”ํ•˜์—ฌ ๋ฐฉํ–ฅ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์˜ˆ์ „์˜ ์˜์ƒ ์ธ์‹์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

Bag of Words

1๋‹จ๊ณ„: ์ด๋ฏธ์ง€๋ฅผ ์ž‘๊ฒŒ ์ž˜๋ผ ์‹œ๊ฐ ๋‹จ์–ด๋กœ ํ‘œํ˜„ํ•œ ํ›„(?) codebook์— ๋ถ™์ธ๋‹ค. k means ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ 1์ฒœ๊ฐœ์˜ ์ค‘์‹ฌ์ ์„ ๊ฐ–๋„๋ก ํ•™์Šตํ•œ๋‹ค. (์ƒ‰์— ๋”ฐ๋ผ ๊ตฐ์ง‘ํ™”ํ•œ๋‹ค)

2๋‹จ๊ณ„: ์ด๋ฏธ์ง€์˜ ์‹œ๊ฐ ๋‹จ์–ด์˜ ๋ฐœ์ƒ ๋นˆ๋„๋ฅผ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ์ด๋ฏธ์ง€์˜ ํŠน์ง•์„ ์ถ”์ถœํ•œ๋‹ค.

profile
์ฒœ์ฒœํžˆ ๊พธ์ค€ํžˆ ์ทจ๋ฏธ์ฒ˜๋Ÿผ ๋ƒ๋ฏธ๐Ÿ˜‹

0๊ฐœ์˜ ๋Œ“๊ธ€