www.youtube.com/watch?v=h7iBpEHGVNc&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv&index=3
Stanford University์์ 2017๋ ๋์ ๊ฐ์ํ CS231n๋ฅผ ๋ค์ผ๋ฉฐ ์ ๋ฆฌ, ์์ฝํ๋ค.
3๊ฐ Loss Functions and Optimization ๊ฐ์ ์์ฝ ์์!
Lecture 2 ๋ณต์ต
๊ณ ์์ด ์ฌ์ง์ ์ธ์ํ๊ฒ ํ๋ค๊ฒ ๋ง๋๋ ์์ธ
์ง๋ ์๊ฐ์ ๋ณต์ต
W์ row๋ฅผ visualize
์ด๋ค W๊ฐ ์ข์ W๋ผ๊ณ ํ ์ ์์๊น?
car์ ์์ธก์ ์ํ๊ณ frog๋ ์์ฒญ ๋ชปํจ
์ด๋ค W๊ฐ best์ธ์ง ์๋ ค๋ฉด loss function์ ์ด์ฉํด์ผ ํจ
์ด๋ค W ๊ฐ least bed ํ๊ฐ?
loss function
x๋ input (ํฝ์ ์ด๋ฏธ์ง) y๋ ๋ผ๋ฒจ, ํ๊ฒ ์ด๋ผ๊ณ ๋ถ๋ฆผ
x๋ y ๋น๊ตํด์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฐจ์ด ๊ฐ์ ๊ตฌํ๊ณ , ๋ชจ๋ N๊ฐ์ ์ด๋ฏธ์ง์์ ์ฐจ์ด ํฉ์ด total Loss
multiclass SVM
Loss function์ ์ผ์ข
์ง์ง ์นดํ ๊ณ ๋ฆฌ์ธ y_i๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์นดํ ๊ณ ๋ฆฌ j๋ค์ ๋ํด์
์ง์ง ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์์ธกํ score์ด ๋ค๋ฅธ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์์ธกํ ์ ์ + 1 (1์ margin๊ฐ) ๋ณด๋ค ๋์ผ๋ฉด,
์ฆ S_yi >= S_j + 1์ด๋ผ๋ฉด, ๊ฐ์ 0์ ์ค๋ค.
๊ทธ๋ ์ง ์๋ค๋ฉด, S_j + 1 - S_yi ๊ฐ์ ์ค๋ค
ํ ์ด๋ฏธ์ง์ ๋ชจ๋ ์นดํ ๊ณ ๋ฆฌ์ ๋ํด ๊ตฌํ ์ด ๊ฐ๋ค์ ํฉํ๋ฉด, 1 data set์ ๋ํ loss ๊ฐ์ ๊ตฌํ ์ ์๋ค.
๊ทธ๋ค์ ๋ชจ๋ training data set์ ๋ํด์ ํ๊ท ์ ๊ตฌํ๋ค.
True class score์ด ๋ค๋ฅธ class์ ์ ์๋ณด๋ค ๋์ผ๋ฉด~~ ์ if ๋ฌธ์ max๋ก ๋ฐ๊พผ ์์๋ ๋์์๋ค.
x์ถ์ s_yi๊ณ y์ถ์ loss
s_yi๊ฐ s_j ๋ณด๋ค 1๋งํผ์ ์ปค์ผ์ง loss๊ฐ 0 ์์ ์ ์ ์๋ค.
example
์ง๊ธ cat ์ฌ์ง์ ๋ํด loss๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ด๋ค.
car score - cat score +1๊ณผ 0์ ๋น๊ต, max๊ฐ ์ ํ, ๋ค๋ฅธ ํด๋์ค๋๋ ๊ฐ์ ๊ณผ์ ํ ํฉํจ
car์ ๋ํ total loss๋ 0์ด๋ค
frog์ฌ์ง์ ๋ํ total loss๋ 12.9
์ดํฉ์ ๋ํ ํ๊ท ์ 5.27์ด๋ค
SVM Loss์ ๋ํ ์ง๊ด๋ ฅ์ ๊ธฐ๋ฅผ ์ ์๋ ์ง๋ฌธ :
Q. car ์ด๋ฏธ์ง์์ ๋ง์ฝ car score์ด ์กฐ๊ธ ๋ณํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
loss๋ ๋ณํ์ง ์์ ๊ฒ : ์ด๋ฏธ ๋ค๋ฅธ ์ ์๋ณด๋ค ์ ์๋ฏธํ๊ฒ ๋์์ ์ฌ์ ํ 0
Q. SVM loss์ ์ต๋ ์ต์๊ฐ์?
min์ 0, max๋ ๋ฌดํ๋
Q. W์ ๋ชจ๋ ๊ฐ์ด ๋ค 0์ ๊ฐ๊น๋ค๋ฉด SVM ๋ก์ค ๊ฐ์?
# class - 1
์๋๋ฉด ๋ชจ๋ ์ ์๊ฐ 0, 0,.., 0์ด ๋ ๊ฒ์ด๊ณ 1์ด ํด๋์ค -1 ๋งํผ ๋ํด์ง ๊ฒ ์ด๊ธฐ ๋๋ฌธ
-> ์ ์ฉํ ๋๋ฒ๊น ๋ฐฉ๋ฒ, ๋ง์ฝ W๋ฅผ ์ค์ ํ๋๋ฐ loss๊ฐ C-1์ด๋ฉด ์๋ชป๋ ๊ฒ
Q. ๋ง์ฝ loss๊ณ์ฐ์ y_i๊ฐ ํฌํจ๋๋ค๋ฉด? (including j = y_i)
๋ก์ค ๊ฐ์ 1๋งํผ ์ฆ๊ฐํ ๊ฒ, S_yi - S_yi + 1์ด ํฌํจ๋ ๊ฒ์ด๋๊น
Q. ๋ง์ฝ ์ ๋ค๋ชจ ๋ฐ์ค์ sum๋์ mean์ ์ฐ๋ฉด?
์ ๊ณผ ํฌ๊ฒ ๋ณํ ๊ฒ์ด ์๋ค, ๊ทธ๋ฅ rescale ํ ๊ฒ
Q. ๋ง์ฝ max()^2๋ฅผ ์ฌ์ฉํ๋ค๋ฉด?
์ด๊ฒ์ ๋ค๋ฅธ loss function์ด๋ค, ์ฐจ์ด๊ฐ ํฌ๋ฉด ์ปค์ง์๋ก really bad ํ๋ค๋ ์ ๋ณด๋ฅผ ์ฃผ๊ฒ ๋จ
์ด๋ค loss๋ฅผ ์ฌ์ฉํ ์ง ๊ณ ๋ คํ๋ ๊ฒ๋ ์ค์
SVM LOSS: Example code
W์ผ ๋ L=0์ด๋ผ๋ฉด 2W์ผ ๋๋ L=0
zero loss๊ฐ ๋๋ ๊ฒ ํ๋ ๊ฐ๊ฐ ์๋
Loss : Data loss, Regularization
blue๋ฅผ ๋ถ๋ฅ -> ์์ ๋๊ฐ์ด ์ ๊ทธ ์ -> ์๋ก์ด input ๋ค์ด์ด -> ์ด๋ก์์ด ๋ ์๋ง๋ค
ํ๋์์ ๋์ training data set์ overfiting ๋์๊ณ ๋๋ฌด high dimension์ด๋ค
๋ ๊ฐ๋จํ W๋ฅผ ๋ง๋ค๊ฒ ๋์์ฃผ๋ term์ด regularzation : ์ค์ปด์ ์นผ๋ -> ์ฌํ ์ด์ค ๋ ๋ฒ ์คํธ
whole idea of regulization is just any thing that you do to your model,
that sort of penalizes somehow the complexity of the model,
rather than explicitly trying to fit the training data.
ํ๋ง๋๋ก ๋๋ฌด ๋ด data์ ํธํฅ๋๋ ๊ฒ์ ๋ง๋ ๋ถ๋ถ.
๋ฐ๋ผ์ ๋๋ค ๊ฐ์ ์กฐ์ ํ๋ ๊ฒ๋ ์ค์ํ ์์ธ์ด ๋ ์ ์๋ค.
๋๋ค๊ฐ ์ปค์ง๋ฉด ๋ ์ฐจ์์ด ๋ฎ์ ๋ชจ๋ธ, ๋๋ค๊ฐ ์์์ง๋ฉด ๋ ์ฐจ์์ด ๋์ ๋ชจ๋ธ(ํ๋์ ์ ์ฒ๋ผ) ๋ ๊ฐ๋ฅ์ฑ ์๋ค
Regularization
๋ณดํต L2 regularization์ ์ฌ์ฉํ๋ค
L1๊ณผ L2๋ฅผ ํจ๊ป ์ธ ์๋ ์๋ค
์ด ๋ถ๋ถ์ ์์ธํ ๋ค๋ฃจ์ง ์์, ์ข ๋ ๊ณต๋ถํด์ผ ํ ๊ฒ ๊ฐ๋ค
๋ค๋ฅธ loss์ข ๋ฅ
svm์ loss๊ฐ ์ฃผ๋ ์๋ฏธ๊ฐ ๋ณ๋ก ์๋ค - score์ ์ ์๋ฏธํ๊ฒ ํด์ํ์ง ์์
ํ๋ฅ ๋ถํฌ๋ฅผ ํด์ํ๋ ๋ฐ ์ฌ์ฉ
0~1 ์ฌ์ด๋ก ํ๋ฅ ์ด ๋์ด
์์
score์ exp ํ๊ฒ ํ ๋ค 0~1fh normalize, ๊ทธ ํ Loss ์ทจํจ
Q. min/max Loss ๊ฐ์?
1 and 0
P= 1์ผ ๋ Loss๊ฐ 0 ์์ ์ ์ ์๋ค
๊ทธ๋ฐ๋ฐ ๊ทธ๋ ๊ฒ ๋๋ ค๋ฉด y_i๊ฐ ์์ ๋ฌดํ, ๋๋จธ์ง ํด๋์ค๊ฐ ์์ ๋ฌดํ์ด ์ฌ์ผํจ
Q ๋ชจ๋ ํด๋์ค์ S๊ฐ 0์ ๊ทผ์ ํ๋ค๋ฉด Loss๋?
normalizeํ์ 1/C๊ฐ ๋ ๊ฒ์ด๋ L = -log(1/C) = log C ๊ฐ ๋ ๊ฒ์ด๋ค.
SVM loss์ Softmax์ ๋น๊ต
SVM์ ์๊น jiggle์ ํฐ ์๊ด์ด ์์๋ค.
๊ทธ๋ฐ๋ฐ softmax๋ ์ด๋ ๊ฐ ์ด์์ด๋ผ๊ณ Loss๊ฐ ๊ฐ์ ๊ฐ์ ๊ฐ์ง์ง ์๋๋ค
๊ทธ๋์ ์ต์ ์ W๋ ์ด๋ป๊ฒ ์ฐพ์ ๊ฑด๋ฐ??
Optimization
large valley๋ฅผ ๊ฑธ์ด ๋ค๋๋ค
๊ฐ์ฅ ์ตํ์ ์ ์ด๋์ผ๊น?
๋๋ค์ผ๋ก ์๋ฌด ์ ์ด๋ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ - ํ๋ช ํ์ง ์์ ๋ฐฉ๋ฒ
๊ฑธ์ด ๋ค๋๋ฉด์ ๋์ผ๋ก ๋ณด๊ณ ๋ฐ์ ๊ฐ๊ฐ์ ๋๋ผ๋ฉฐ, ๊ธฐ์ธ๊ธฐ๊ฐ ๋ฎ์์ง๋ ๊ณณ์ผ๋ก ๊ฑธ์ด ๋๊ฐ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ธฐ์ธ๊ธฐ๋ผ๋ ๊ฒ์ ๋ฌด์์ผ๊น?
gradient๋ x๋ ๊ฐ์ ์ฐจ์์ ๊ฐ์ง๋ vector๋ก, ๊ธฐ์ธ๊ธฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ค๋ค
๊ทธ๋ฌ๋ฉด ์ด๋ป๊ฒ ๊ตฌํ ๊น?
0.0001์ด๋ผ๋ ๊ฐ์ ์์ฃผ ์์ ๊ฐ์ ๋ํด ๋ดค๋๋, loss๊ฐ ์ค์ด๋ค์๋ค
๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ฒ gradient๋ฅผ ๊ตฌํ๋ค
๋ค์ entry์์๋ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋งค์ฐ ๋๋ฆด ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ํํํ๊ธฐ๋ก ํ๋ค!
WOW,,,,
์ด๋ ๊ฒ ๋๋ฑ ๋๋ค๊ณ ํจ^^
ํ์ง๋ง numerical๋ฐฉ๋ฒ์ ๋๋ฒ๊น ํ๊ธฐ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ค.
๋๋ฆฌ๊ณ ๋ถ์ ํ ํ์ง๋ง,, ๋๋ฒ๊น ํ ๋ ์ฐ์
Gradient Descent
step_size๋ learning rate๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋๋ฐ, ์ค์ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ์ด๋ค.
๊ฐ์ฅ ๋จผ์ ์ฒดํฌ ํ๋ ํ๋ผ๋ฏธํฐ๋ผ๊ณ ํจ
gradient์ ์์ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ค ๋ณด๋ฉด minima์ ๋๋ฌํ ์ ์๋ค
์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋์ ๋ฐ๋ผ gradient๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ค
stochastic Gradient Descent (SGD)
์ค์ ๋ก๋ N์ด ๋งค์ฐ ํฌ๋ค
N์ด million๋จ์๋ก ๊ฐ๋ฉด W๋ฅผ ์ ๋ฐ์ดํธํ๋๋ฐ ๋งค์ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ
๊ทธ๋์ minibatch๋ฅผ ์ด์ฉํด์ ๊ทธ ๋จ์๋ง๋ค Loss๋จ์๋ฅผ ์ ๋ฐ์ดํธํจ
๋นจ๊ฐ์๊ณผ ํ๋์์ linear ํ๊ฒ ๋ถ๋ฅํ ์ ์๋๋ฐ,
์ถ์ ๋ฐ๊ฟ์ ๋ถ๋ฅ๊ฐ ๊ฐ๋ฅํด์ง
์ด๋ ์์ด ๊ฐ์ฅ ๋ง์์ง histogram์ ๋ง๋ฆ
simpleํ image feature representation
dominant ํ edge ๋ฐฉํฅ์ ์ฐพ์์ ํ์คํ ๊ทธ๋จ์ ๋ง๋ฆ
์์ฐ์ด ์ฒ๋ฆฌ์ ๋ง์ด ์ฐ์ธ๋ค๊ณ ํจ
crop ํด์ clustering
์ค์ ๋ก ํด๋ณด๋ฉด ๋ณ๋ฐ ๋ค๋ฅด์ง ์์
convolution ๊ณผ์ ์์ feature๊ฐ extract ๋๋ค
'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 2 - Image Classification (0) | 2021.01.30 |
๋๊ธ