๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
KAIST MASTER๐Ÿ“š/CS231n

[CS231n] Lecture 2 - Image Classification

by ๋ง๋ž‘e 2021. 1. 30.

www.youtube.com/watch?v=OoUX-nOEjG0&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv&index=2

Stanford University ์—์„œ 2017๋…„๋„์— ๊ฐ•์˜ํ•œ CS231n๋ฅผ ๋“ค์œผ๋ฉฐ ์ •๋ฆฌ, ์š”์•ฝํ–ˆ๋‹ค.

2๊ฐ• Image Classification ๊ฐ•์˜ ์š”์•ฝ ์‹œ์ž‘!


์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜์˜ ๋ฌธ์ œ์ 

์ปดํ“จํ„ฐ๊ฐ€ ๋ณด๋Š” ๊ณ ์–‘์ด!

x, y, rgb ์ฐจ์› (800 * 600 * 3)

์กฐ๊ธˆ๋งŒ ์นด๋ฉ”๋ผ ๊ฐ๋„๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜,

๋น›์˜ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฑฐ๋‚˜,

๊ณ ์–‘์ด๊ฐ€ ์‡ผํŒŒ ๋ฐ‘์— ์ˆจ์–ด์žˆ๋‹ค๋ฉด ์ด ํ”ฝ์…€ ๊ฐ’๋“ค์€ ํฌ๊ฒŒ ๋ฐ”๋€” ๊ฒƒ์ด๋‹ค. 

๋ฐฐ๊ฒฝ์ด ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๋งˆ๋ฆฌ๊ฐ€ ๋ญ‰์ณ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ˜ผ๋ž€์„ ๊ฒช์„ ๊ฒƒ์ด๋‹ค.

 

ํ•˜์ง€๋งŒ ์‚ฌ๋žŒ์€ ms๋งŒ์— ์‚ฌ์ง„์ด ๊ณ ์–‘์ด๋ผ๋Š” ๊ฒƒ์„ ๊ฐ๋ณ„ํ•ด๋‚ธ๋‹ค.

sort number์™€ ๊ฐ™์€ ๊ฒƒ์€ ๋ช…ํ™•ํ•œ algorithm ์ด ์žˆ๋Š”๋ฐ,

์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜๋Š” ์œ„์™€ ๊ฐ™์ด ๋„ˆ๋ฌด๋‚˜ ๋‹ค์–‘ํ•œ ๋ณ€์ด๊ฐ€ ์žˆ๋‹ค๋Š” ์ด์œ ๋กœ algorithm์„ ๋งŒ๋“ค๊ธฐ ํž˜๋“ค๋‹ค.

 

๊ทธ๋ž˜์„œ data-driven ์ ‘๊ทผ์„ ์ด์šฉํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

 

๋ชจ๋“  ์‚ฌ์ง„์„ input์œผ๋กœ ๋ฐ›๊ณ , ๊ทธ ์ •๋ณด๋ฅผ ์†Œํ™”ํ•œ ๋’ค ๋ถ„๋ฅ˜๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

 

Image classification ์˜ ์˜ˆ์‹œ : CIFAR10

 

๊ทธ๋Ÿผ ์ˆ˜๋งŽ์€ ์ด๋ฏธ์ง€๋ฅผ ๋น„๊ตํ•  ๋•Œ, ์ด ๋‘ ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ™์€ ๋ถ„๋ฅ˜๋ผ๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ ๊ฒƒ์ธ๊ฐ€?

Distance Metric

๋‘ ์ด๋ฏธ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ L1 distance๊ฐ€ ์žˆ๋‹ค. 

๋‘ ์ด๋ฏธ์ง€์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•.

 

train์—์„œ๋Š” input์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•จ

predict์—์„œ๋Š” train image๋ž‘ ๊ฐ€์žฅ ๋น„์Šทํ•œ class ์ฐพ์Œ.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด 1๊ฐœ์˜ ์ด๋ฏธ์ง€ ํ…Œ์ŠคํŠธ ํ•˜๋Š”๋ฐ ๋ชจ๋“  train set์ด๋ž‘ ๋น„๊ตํ•ด๋ด์•ผ ํ•จ. -> ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆผ

 

nearest neighbor

nearest neighbor ๋ถ„๋ฅ˜๋ฅผ ํ•˜๋ฉด ์–ด๋–ค ๋ชจ์Šต์ธ๊ฐ€?

space๋ฅผ ๊ฐ€๊นŒ์šด ์ ๋“ค์— ์˜์กดํ•ด์„œ ์ƒ‰์น ํ•จ (class๋ฅผ ๋‚˜๋ˆ”)

๊ทผ๋ฐ ๊ฐ€์šด๋ฐ๊ฐ€ ์ดˆ๋ก์ƒ‰ ์‚ฌ์ด์— yellow island๊ฐ€ ์ƒ๊น€

๊ทธ๋ฆฌ๊ณ  ๋นจ/ํŒŒ ์‚ฌ์ด์— fingers๋“ค์ด ์ƒ๊น€

 

๊ทธ๋ž˜์„œ K-nearest neighbors ๋ฐฉ๋ฒ•์„ ์ด์šฉ

K-nearest neighbors

K๊ฐœ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ ๋“ค์—๊ฒŒ ํˆฌํ‘œ๋ฅผ ๋ฐ›์•„์„œ ๊ณต๊ฐ„ ์ƒ‰์„ ์ •ํ•˜๋Š” ๊ฒƒ.

smooth ํ•˜๊ฒŒ decition boundary ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Distanse Metric

L1๋ง๊ณ  L2 distance๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

L1์€ ์ฐจ์›์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์„œ๋กœ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ L2๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

์–ด๋–ป๊ฒŒ ์ด๋ฏธ์ง€์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ• ์ง€๋„ ์ƒ๊ฐํ•ด๋ด์•ผ ํ•  ๋ฌธ์ œ์ด๋‹ค

 

L2์™€ L1๋น„๊ต

L1์€ coordinate axis์— ์˜ํ–ฅ์„ ๋ฐ›๊ณ , L2๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค

 

์–ด๋–ค K๋ฅผ ๊ณ ๋ฅผ์ง€, ์–ด๋–ค distance๋ฅผ ๊ณ ๋ฅผ์ง€?

์ด๋Ÿฐ ๊ฒƒ ๋“ค์„ Hyperparameters๋ผ๊ณ  ํ•œ๋‹ค.

Hyperparameters

๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋งค์šฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ญ๊ฐ€ ๋” ๋‚ซ๋‹ค๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค, problem๊ณผ data์— ์•Œ๋งž๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

training set์€ label๊ฐ’์„ ๊ฐ€์ง€๊ณ  ํ•™์Šต์„ ํ•˜๋Š” set์ด๊ณ 

val์€ label์— ์ ‘๊ทผ์„ ๋ชปํ•œ ์ฒด ์ถ”๋ก  ํ›„ label๊ณผ ๋น„๊ต, ์–ด๋Š ์ •๋„ ํ•™์Šต๋๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์ง€ํ‘œ

 

Hyperparameters์„ ๊ณ ๋ฅผ ๋•Œ

๋ฌด์กฐ๊ฑด training data๊ฐ€ ์ข‹๊ฒŒ ๋‚˜์˜ค๋Š” ์ชฝ์œผ๋กœ ์‚ฌ์šฉ -> ์•ˆ๋จ

train๊ณผ test๋ฅผ ๋‚˜๋ˆ ๋‘๊ณ  test ๊ฐ’์ด ์ž˜ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์‚ฌ์šฉ -> ์•ˆ๋จ

 

๊ฐ€์ง€๊ณ  ์žˆ๋Š” data set์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์šฐ๋ฆฌ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž˜ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๊ธฐ ๋•Œ๋ฌธ

์ƒˆ๋กœ์šด data๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ๋„ ์ž˜ ์ž‘๋™ํ•˜๊ฒŒ ๋ผ์•ผ ํ•จ

train์œผ๋กœ ํ•™์Šต์„ ์‹œํ‚ค๊ณ , validation set์„ ํ†ตํ•ด ์‹œํ—˜์„ ํ•œ ๋’ค best์ธ Hyperparameters์„ ๊ณ ๋ฆ„

๊ทธ๋‹ค์Œ์— test ์…‹์— ํ•œ๋ฒˆ ๋Œ๋ ค๋ณธ ํ›„, ๊ทธ ์ˆ˜์น˜๋ฅผ report์— ์“ฐ๋Š” ๊ฑฐ์ž„

 

Cross Validation

train๋ฐ์ดํ„ฐ๋ฅผ 5๊ฐœ์˜ fold๋กœ ๋‚˜๋ˆ”

๊ฐ๊ฐ์˜ fold๋ฅผ validation์— ์‚ฌ์šฉํ•จ :

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์…‹์„ train์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ๋ถ€์กฑ์œผ๋กœ ์ƒ๊ธฐ๋Š” underfitting์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

 

data set์ด ์ ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค๊ณ  ํ•จ.

x์ถ•์€ K๊ฐ’, y์ถ•์€ K์— ๋”ฐ๋ฅธ ์ •ํ™•๋„

์—ฌ๊ธฐ์—์„œ K=7 ์ •๋„์—์„œ best

ํ•˜์ง€๋งŒ K-nearest๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋‹จ์ 

1. test ํ•  ๋•Œ ๋งค์šฐ ๋Š๋ฆผ

2. ํ”ฝ์…€๋“ค์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ฃผ๋Š” ์ •๋ณด๊ฐ€ ๋ณ„๋กœ ์—†๋‹ค

๋ˆˆ, ์ฝ” ๊ฐ€๋ฆฌ๊ฑฐ๋‚˜, ์•ฝ๊ฐ„ ์›€์ง์ด๊ฑฐ๋‚˜, ํ‹ดํŠธ ํ•„ํ„ฐ๋ฅผ ์”Œ์› ์„ ๋•Œ ๋ชจ๋‘ ๊ฐ™์€ L2 distance๋ฅผ ๊ฐ€์ง„๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋กœ๋Š” 

์ฐจ์›์ด ์ปค์ง์— ๋”ฐ๋ผ ์ต์Šคํฌ๋„จ์…œ ํ•˜๊ฒŒ ํ”ฝ์…€ ์ˆ˜ ๊ฐ€ ๋งŽ์•„์ง

๋ชจ๋“  ์ฐจ์›์„ ๋นฝ๋นฝํ•˜๊ฒŒ ์ฑ„์šฐ๋ ค๋ฉด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ต์Šคํฌ๋„จ์…œ ํ•˜๊ฒŒ ๋งŽ์•„์ง

 

KNN ์š”์•ฝ

์ด๋ฏธ์ง€์—์„œ๋Š” ์ •๋ง ์ž˜ ์“ฐ์ด์ง€ ์•Š์Œ

 

Linear Classification

 

๋นŒ๋”ฉ ๋ธ”๋ก์— ๋น„๊ต๋œ๋‹ค๊ณ  ํ•จ

๋ ˆ๊ณ  ๋ธ”๋Ÿญ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์˜ ์˜ˆ์‹œ - ๋‚˜์ค‘์— ๋ฐฐ์šธ ์˜ˆ์ •

๋‹ค์‹œ CIFAR 10์œผ๋กœ ๋Œ์•„๊ฐ€์„œ

x๋Š” input data

W๋Š” parameters

test time์—๋Š” x๋Š” ํ•„์š” ์—†๊ณ  W๋งŒ ํ•„์š”ํ•จ

 

x๋ฅผ ์ญ‰ ํŽด์„œ 3072*1๋กœ ๋งŒ๋“ค๊ณ  10๊ฐœ์˜ ํด๋ž˜์Šค ์ค‘ 1๊ฐœ๋กœ ์˜ˆ์ธกํ•˜๊ณ  ์‹ถ๋‹ค

๊ทธ๋Ÿผ 10*3072๊ฐ€ W์˜ ์ฐจ์›์ด ๋  ๊ฒƒ์ด๋‹ค

 

b๋Š” bias์ด๋‹ค. 

์˜ˆ์‹œ

W๋Š” 3*4 x๋Š” 4*1

 

W ์—ฌ๊ธฐ์—์„œ

์ฃผํ™ฉ์ƒ‰ ๋ถ€๋ถ„์€ cat

๋ณด๋ผ์ƒ‰ ๋ถ€๋ถ„์€ dog

์ดˆ๋ก์ƒ‰ ๋ถ€๋ถ„์€ ship์„ ๋‚˜ํƒ€๋‚ธ๋‹ค

์œ„์˜ ์ฃผํ™ฉ, ๋ณด๋ผ, ์ดˆ๋ก ๋ถ€๋ถ„์ฒ˜๋Ÿผ W์—์„œ ๊ฐ๊ฐ ํด๋ž˜์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ visualize ์‹œํ‚จ ๋ชจ์Šต

 

๋ฌธ์ œ์  : ํ•œ ํด๋ž˜์Šค์— ํ•œ ํ…œํ”Œ๋ฆฟ๋งŒ ํ•™์Šตํ•œ๋‹ค

horse๋ฅผ ๋ณด๋ฉด ์ดˆ๋ก์ƒ‰ ํ’€๋ฐญ์— ์„œ์žˆ๊ณ , ๋จธ๋ฆฌ๊ฐ€ 2๊ฐœ์ธ ๋ง์˜ ๋ชจ์Šต์ด ๋ณด์ž„

32*32*3์„ ์ญ‰ ํŽด๋ฉด 3072*1์ด๊ณ  ์ด๋Š” 3072์ฐจ์› ์œ„์˜ ํ•œ ์ ์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

linear classifier์€ ์ด๋ฅผ ๊ณต๊ฐ„์ƒ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ

 

์ด๋Ÿฐ ๊ฒฝ์šฐ linear classifier๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์–ด๋ ต๋‹ค

2์ฐจ์›์˜ ๊ณต๊ฐ„์—์„œ blue์™€ red๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์„ ์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค

์ „ํ†ต์ ์œผ๋กœ linear classifier์˜ ๋ฌธ์ œ์ 

 

์˜ˆ์‹œ๋กœ ๋ง์ด ์˜ค๋ฅธ์ชฝ์„ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ island๋ž‘ ๋ง์ด ์™ผ์ชฝ์œผ๋กœ ๋ณด๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ํ•œ island๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ํž˜๋“ค ์ˆ˜ ์žˆ๋‹ค

 

์–ด๋–ป๊ฒŒ W๋ฅผ ์ž˜ ํ•™์Šต์‹œ์ผฐ๋Š”์ง€, W๊ฐ€ ์ข‹์€ ๊ฐ’์ธ์ง€ ์•„๋‹์ง€ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ?

๋‹ค์Œ ์‹œ๊ฐ„์—!

'KAIST MASTER๐Ÿ“š > CS231n' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CS231n] Lecture 5 - Convolutional Neural Networks  (0) 2021.02.03
[CS231n] Lecture 4 - Introduction to Neural Networks  (0) 2021.02.01
[CS231n] Lecture 3 - Loss Functions and Optimization  (0) 2021.01.31

๋Œ“๊ธ€