๐จโ๐ซ ๋ณธ ๋ฆฌ๋ทฐ๋ cs231n-2017 ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์งํํ์ต๋๋ค.
Syllabus
Youtube Link
Image Classification pipeline
๐ Image Classification: Computer Vision์ Core task์ด๋ค.!!!
โก ์ ์ฌ์ง์ ๋ณด๋ฉด ์ฐ๋ฆฌ๋ "๊ณ ์์ด"๋ผ๋ ๊ฑธ ์ ์ ์๋ค. ํ์ง๋ง ์ปดํจํฐ๋ ์ธ์ํ์ง ๋ชปํ๋ค.
โก ์ ์ฌ์ง์ ์ปดํจํฐ๊ฐ ๋ณด๋ ๊ณ ์์ด ์ฌ์ง์ ์ผ๋ถ์ด๋ค.
๐ ์ปดํจํฐ๊ฐ ๊ณ ์์ด๋ฅผ ์ธ์ํ๊ธฐ ์ํด์ ๋ค์ํ ํด๊ฒฐ์์๊ฐ ์กด์ฌํ๋ค.
(1). Viewpoint variation: ์์ ์ ๋ฐฉํฅ์ ๋ฐ๋ผ ํฝ์
์ ๊ฐ์ ํญ์ ๋ฌ๋ผ์ง๋ค. ์ฆ, ์ฌ๋์ ์์ ์ผ๋ก๋ ๊ฐ์ ๋ฌผ์ฒด์ด์ง๋ง ์ปดํจํฐ๋ ์๋๋ค.
(2). Illumination: ์กฐ๋ช
์ด๋ ๋ฐ๊ธฐ์ ๋ฐ๋ผ ํฝ์
์ ๊ฐ์ ํญ์ ๋ฌ๋ผ์ง๋ค.
(3). Deformation: ์์ธ ๋ฐ ๋ณํ์ ์ธ ๋ชจ์ต์๋ ๋ฌผ์ฒด๋ฅผ ์ธ์ํ ์ ์์ด์ผํ๋ค.
(4). Occlusion: ์ผ๋ถ๊ฐ ๊ฐ๋ ค์ง ๋ฌผ์ฒด์๋ ์ธ์ ํ ์ ์์ด์ผํ๋ค.
(5). Challenges: ์ ๋ฐ ํ์ฒด๊ฐ ๋น์ทํ ๋ฐฐ๊ฒฝ์๋ ์ธ์ ํ ์ ์์ด์ผํ๋ค.
๐จโ๐ซ ์ข์ Image Classification์ ํ๊ธฐ ์ํด์ ์์ ๊ฐ์ ์กฐ๊ฑด๋ค์ด ๋ง์กฑํด์ผํ๋ค. ๊ฐ์์์๋ 'robust' ํด์ผํ๋ค๊ณ ์ธ๊ธํ๋ค.
** Robust๋ ํด์ํ์๋ง ์ฌ์ ์ ์ผ๋ก "๊ฐ๊ฑดํ" ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. ์กฐ๊ธ ๋ ๋จธ์ ๋ฌ๋ ๊ด์ ์ผ๋ก ์ด์ผ๊ธฐํ๋ฉด outlier์ ๋ ๋ฏผ๊ฐํ๋ค๋ ๋ป์ด๋ค. (Ex. t-๋ถํฌ๋ ์ ๊ท๋ถํฌ๋ณด๋ค robustํ๋ค. ๋ ๋ถํฌ์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด t-๋ถํฌ๊ฐ ์ ๊ท๋ถํฌ๋ณด๋ค ๋ ๋๊บผ์ด ๊ผฌ๋ฆฌ๋ฅผ ๋ณผ ์ ์๋ค.)
๐ ์ง๊ด์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ ๊ตฌํํ๊ธฐ์๋ ๋๋ฌด๋ ์ด๋ ค์ด ๊ณผ์ ์ด๋ค. ์์ ์ฌ์ง๊ณผ ๊ฐ์ง edges์ corners๋ฅผ ์ฌ์ฉํด ๊ตฌ๋ถํ ์ ์์ง๋ง, ์์ ๋ฐฉ์์ ์์ ์กฐ๊ฑด๋ค์ ๋ํด robust ํ์ง ๋ชปํ๋ค.
Data-Driven Approach
(1). Collect a dataset of images and labels
(2). Use Machine Learning to train a classifier
(3). Evalute the classifier on new images
๐ ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, Data-Driven Appoach ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์์ฝํ๋ฉด ๋ฐ์ดํฐ ์์ง -> ๋ชจ๋ธ ํ์ต -> ์๋ก์ด ์ด๋ฏธ์ง๋ก test๋ฅผ ํ๋ค. ์ด๋ค ์ง๊ด์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐพ๋ ๊ฒ์ด ์๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
Classification
Nearest Neigbor
โ ๋งค์ฐ ๊ฐ๋จํ classification์ ๋ชจ๋ธ์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํด classification์ ํ๋ ๋ชจ๋ธ์ด๋ค.
๐ Distance Metric: ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก 2๊ฐ์ง๊ฐ ์๋ค.
(1) L1 distance: I1, I2์ ์ฐจ๋ฅผ ์ ๋๊ฐํ ํ sumation ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
(2) L2 distance: I1, I2์ ์ฐจ์ ์ ๊ณฑํฉ์ ๊ตฌํ๋ค.
๐ Nearest Neigbor๋ชจ๋ธ๋ก ํ์ตํ ๊ฒฐ๊ณผ์ด๋ค. ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ด๋ก์ ๋ฐํ์์ ๋
ธ๋์ ํ๋ ์ ๋
๋์ ๋ด๋ค. ๋ถ๋ช
์์ ๋
ธ๋์ ์ ์ด๋ก์์ผ๋ก ๋ถ๋ฆฌํ์ด์ผํ๋ค. ๋ถ๋ช
์์ ๋ชจ๋ธ๋ก ํ
์คํธ๋ฅผ ์งํํ๋ฉด ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ ๊ฒ์ด๋ค.
K-Nearest Neigbor
๐ Nearest Neigbor๋ชจ๋ธ์์ K๋ง ์ถ๊ฐ๋ ๋ชจ๋ธ์ด๋ค. ์ฌ๊ธฐ์ K๊ฐ ์๋ฏธํ๋ ๊ฒ์ ๊ฐ์ฅ ๊ฐ๊น์ด K๊ฐ์ ํฌ์ธํธ๋ฅผ ์ฐพ์์ ํฌํ๋ฅผ ํตํด class๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด๋ค. ๊ธฐ์กด์ Nearest Neigbor๋ชจ๋ธ๊ณผ ๊ธฐ๋ณธ์ ์ธ ๋ก์ง์ ๋์ผํ๋ค. ์์ ์ฌ์ง์ ๋ณด๋ฉด K๊ฐ ์ฆ๊ฐํ ์๋ก ๊ฒฝ๊ณ๊ฐ ์ ์ ๋ถ๋๋ฌ์ ์ง๋๊ฒ์ ๋ณผ ์ ์์ผ๋ฉฐ, ์ค์ ๋ช๋ช ํฌ์ธํธ๋ ์๋ชป๋ class์ ๋ค์ด๊ฐ ์๋๊ฒ์ ๋ณผ ์ ์๋ค. K=5์ธ ๋ชจ๋ธ์ด K=1์ธ ๋ชจ๋ธ๋ณด๋ค ์ ํํ๊ฒ ๋ถ๋ฆฌํ์ง๋ ๋ชปํ์ง๋ง, K=5์ธ ๋ชจ๋ธ์ด ์กฐ๊ธ ๋ ์ผ๋ฐ์ ์ด๋ค. ๋ถ๋ช
test case๋ก ๊ฒ์ฆํ๋ค๋ฉด K=5์ธ ๋ชจ๋ธ์ด ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ๊ฒ์ด๋ค.
๐ ํ์ง๋ง Image classification์์ K-Nearest Neigbor๋ชจ๋ธ์ ์ฌ์ฉ๋์ง ์๋๋ค. ์ด์ ์ ์์ ์ฌ์ง๋ค์ ๋ณด๋ฉด, ์ง๊ด์ ์ผ๋ก ์๋ณธ์ ์ ์ธํ ๋๋จธ์ง 3๊ฐ์ ์ฌ์ง๋ค์ด ์ ๋ถ ๋ค๋ฅธ ์ด๋ฏธ์ง์ธ๊ฒ์ ์ ์ ์๋ค. ํ์ง๋ง 3๊ฐ์ง ์ด๋ฏธ์ง ์ ๋ถ ๊ฐ์ L2 ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค. ๋ ํ๋์ ์ด์ ๋ "Very slow at test time" ํ
์คํธํ๋๋ฐ ๋๋ฌด ๋ง์ ์๊ฐ์ด ๋ ๋ค.
๐ ๋ํ Curse of dimensionalilty(์ฐจ์์ ์ ์ฃผ)๋ผ๋ ๋ฌธ์ ๊ฐ ์๋ค. ์ฐจ์(=๋ณ์)์ด ์ปค์ง์๋ก , ๊ณ์ฐ๋ฒ์ด ์ง์์ ์ผ๋ก ์ปค์ง๋ ํ์์ด๋ค. ๊ณ ์ฐจ์์ด ๋ ์๋ก ๋ฐ์ดํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฉ์ด์ง๊ณ , ๋น ๊ณต๊ฐ์ด ์๊ธด๋ค. ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด 1์ฐจ์์ด ์ฆ๊ฐํ ์๋ก ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
Hyperparameters
๐ Hyperparameter์ ๋ฒ์ญํ๋ฉด ์ด๊ฐ๋งค๋ณ์๋ผ๊ณ ํ๋ค. Hyperparameter์ ๋ชจ๋ธ์ ํ์ต์ํค์ํด ์์์ ์ผ๋ก ์ง์ ํ๋ ๋ณ์๋ผ๊ณ ํ ์ ์๋ค. K-Nearest Neigbor์์ K(=1,3,5..)์ distance(L1,L2)๋ ๋ชจ๋ธ์ ํ์ต์ํค๋ ์ฌ๋์ด ์์์ ์ผ๋ก ์ง์ ํ๋ค. ์ด๋ฌํ ๋ณ์๋ค์ Hyperparameter๋ผ๊ณ ํ๋ค. ์ต์ ์ Hyperparameter๋ ์ ํด์ ธ ์์ง ์์ผ๋ฉฐ problem-dependentํ๋ค๊ณ ํ๋ค.
Cross-validation & Split Datasets
๐ ์ผ๋ฐ์ ์ผ๋ก Dataset์ train-validation-test๋ก ๋ถ๋ฆฌํ๋ค. ์ฝ๊ฒ train์ ํ์ต์ํค๊ธฐ ์ํด test๋ ํ
์คํธํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ๊ทธ๋ผ validation์ ๋ฌด์์ผ๊น?
โ validation์ Cross-validation์ด๋ ์ฎ์ด์ ์ดํดํ๋ฉด ์ฝ๋ค. Cross-validation ํน์ ๊ฐ์๋งํผ ๋ฐ์ดํฐ์
์ ๋ถ๋ฆฌํด ์์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ถ๋ฆฌ๋ train์
ํ๋๋ฅผ ํ
์คํธ์
์ผ๋ก ๋๊ณ ํน์ ๊ฐ์๋งํผ ํ์ต์ ์ํจ๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ ํ
์คํธ์
์ด validation์ด๋ค. ๊ทธ๋ฌ๋ฉด Cross-validation์ ๋ชฉ์ ์ ์ ํ๋๊ฒ์ผ๊น? ์์์ ์ธ๊ธํ๋ฏ์ด Hyperparameter์ ์์๋ก ์ง์ ํด์ค์ผ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ด๋ค Hyperparameter๋ค์ด ์ต์ ์ Hyperparameter์ธ์ง ์ ์ ์๋ค. ์ฐ๋ฆฌ๋ Cross-validation ์ต์ ์ Hyperparameter๋ฅผ ์ฐพ์๋ ค๊ณ ๋
ธ๋ ฅํ๋ ๊ฒ์ด๋ค.
Linear Classification
๐ ์ ์ฌ์ง์ ๊ฐ์ ์ค Linear classifiers์ Neural Network๋ฅผ ๋ธ๋ญ ์๊ธฐ๋ก ํํํ๋ค. ์ ์ ํ ํํ์ด๋ผ์ ๊ฐ์ง๊ณ ์์ง๋ง, ์ค์์ ํจ์ฌ ๋ ์ด๋ ต๋ค๋...๋๋...ใ
ใ
Parametric Appoach
๐ Parametic classifier๋ ๊ฐ๋จํ๊ฒ train data์ ์ ๋ณด๊ฐ ๊ฐ์ค์น W๋ก ์์ฝ๋์ด ์๋ ๊ฒ์ด๋ค.
๐ Linear Classification์ ์์ ์ฌ์ง๊ณผ ๊ฐ์ด ํจ์ F๋ฅผ ํตํด ํน์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ด์ ๊ณผ ๋ค๋ฅธ์ ์ W์ธ๋ฐ ์ผ๋ฐ์ ์ผ๋ก Parameter or weights๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ๊ธฐ์กด K-NN์์๋ ๋ฐ๋ก Parameter๊ฐ ์กด์ฌํ์ง ์์๋ค. Linear Classification์์ Parameter์ ์ญํ์ ๊ฒฐ๊ณผ์ ๋ง์ ์ํฅ์ด ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ํด์ , ์ข์ ํ๋ผ๋ฏธํฐ(?)๊ฐ ํ์ํ๋ค.
๐ ์์ ์ฌ์ง์์ ํจ์ f(x,W)๊ฐ ๊ธฐ๋ณธ์ ์ธ Linear Classification์ ์๊ณ ๋ฆฌ์ฆ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. x๋ input, W๋ Parameter or weights, b๋ bias๋ผ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ง์นญํ๋ค. Linear Classification์ ์ฌ์ฉํ ๋(?) ์ค์ํ ์ ์ dimension์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ ฌ์ฐ์ฐ์ dimension์ด ์ผ์นํ์ง ์์ผ๋ฉด ์ฐ์ฐ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ์ ํญ์ ์ ๋
ํด์ผํ๋ค.
๐ ์ ์๋ 10๊ฐ์ง์ ํ๋ฆฟํ ์ฌ์ง๋ค์ trained weights ๊ฐ๋ค์ด๋ค. ์ฌ์ง์ ๋ณด์๋ค ์ถ์ด ์ด๋์ ๋ ๋น์ทํ ๋ถ๋ถ์ด ์์ง๋ง, ๋๋ถ๋ถ ํํ๋ฅผ ์์๋ณผ ์ ์๋ค.
๐ ์ ์ฌ์ง์ Linear Classification ํ๊ณ์ ์ด๋ค. Class 1,2๋ฒ์ Pairty data, Class 3๋ฒ์ Multimodel data๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์์ ๋ชจ๋ ์ฌ์ง๋ค์ Linearํ ์ ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค. ํ๋์ ์ ์ผ๋ก๋ ์ Classs๋ค์ ๊ตฌ๋ถํ๊ธฐ ๋ถ๊ฐ๋ฅํ๋ค.