Image Classification Problem
A core task in Computer Vision
๊ณ ์์ด๋ ๊ฐ์์ง ํธ๋ญ๊ณผ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ถ๋ฅํ๋ ๋ฌธ์ ๋ ์ฌ๋์๊ฒ๋ ์ฝ์ง๋ง ์ปดํจํฐ์๊ฒ๋ ์ด๋ ค์ด ๋ฌธ์ ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ผ๋ณด๋ ๋ฐฉ์๊ณผ ์ปดํจํฐ๊ฐ ๋ฐ๋ผ๋ณด๋ ๋ฐฉ์์๋ ์ฐจ์ด๊ฐ ์๋ค. ์ปดํจํฐ๋ ์ด๋ฏธ์ง๋ฅผ ํฝ์ ์ด๋ผ๋ ๋จ์๋ก ์ฝ๊ฒ ๋๋ค. ์ฐ๋ฆฌ์ ์ด๋ฏธ์ง๊ฐ 800 x 600 ์ x 3 (3 : channels RGB) ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค๊ณ ํ๋ฉด ์ปดํจํฐ๋ 800 x 600 x 3 ๊ฐ์ ์ซ์ ์ ๋ณด๋ก ์ด๋ฏธ์ง๋ฅผ ์ฝ๋ ๊ฒ์ด๋ค.
Semantic Gap
๊ณ ์์ด ์ฌ์ง์ ์๋ก ๋ค์๋ฉด, ๊ณ ์์ด๋ ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ์ง์ ๋ถ์ฌํ semantic label ์ด๋ค. ๊ณ ์์ด๋ผ๋ semantic idea์ pixel ๊ฐ (์ด๋ฏธ์ง ๋ฐฐ์ด) ์ฌ์ด์๋ ํฐ gap์ด ์๋ค.
Challenges
- Viewpoint variation
๊ฐ์ ๊ณ ์์ด๋ฅผ ๋ณด๋๋ผ๋ ์นด๋ฉ๋ผ์ ๊ฐ๋๊ฐ ์กฐ๊ธ๋ง ๋ฌ๋ผ์ง๋ฉด ์ปดํจํฐ์๊ฒ๋ ์์ ํ ๋ค๋ฅธ ์ซ์ ๋ฐฐ์ด๋ก ์ฝํ๋ ๊ฒ์ด๋ค. - Illumination
์กฐ๋ช ์ฐจ์ด์ ๋ฐ๋ผ ๊ณ ์์ด๊ฐ ๋งค์ฐ ๋ฐ๊ฒ ๋ณด์ด๊ฑฐ๋ ์ด๋ก๊ฒ ๋ณด์ผ ์ ์๋ค. - Deformation
๊ณ ์์ด ์ก์ฒด์ค... ๊ณ ์์ด๋ ๋งค์ฐ ๋ค์ํ ํํ๋ก ๋ณํํ ์ ์์ง๋ง ๋ค ๊ฐ์ ๊ณ ์์ด์ด๋ค. - Occlusion
๊ณ ์์ด๊ฐ ๊ฐ๋ ค์ ธ์ ์๋ณด์ฌ๋ ์ฌ๋์ ๊ณ ์์ด๋ผ๊ณ ๋ฐ๋ก ์ธ์ ๊ฐ๋ฅํ์ง๋ง ์ปดํจํฐ๊ฐ ๊ฐ๋ ค์ง ๊ณ ์์ด๋ฅผ ์์๋ณด๋ ๊ฒ์ ์ด๋ ต๋ค. - Background Clutter
๋ฐฐ๊ฒฝ๊ณผ ๊ณ ์์ด๊ฐ ๋น์ทํ๋ฉด ์์๋ณด๊ธฐ ํ๋ค ์ ์๋ค. - Intraclass variation
๊ฐ์ ๊ณ ์์ด(class)๋ผ๋ ๋์ด, ํฌ๊ธฐ, ์์ ๋ฑ์ด ๋ฌ๋ผ์ ๋ค์ํ ๋ชจ์ต์ด ์กด์ฌํ ์ ์๋ค.
An image classifier
๊ณ ์์ด๋ฅผ ์๋ฒฝํ๊ฒ ๋ถ๋ฅํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๋ฟ๋ง ์๋๋ผ ์ธ์์ ์๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ ๋ํ ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋ ๊ธฐ์ ์ฐ๋ฆฌ๋ ๋ฌด์ธ๊ฐ ๋ค๋ฅธ ์ ๊ทผ๋ฐฉ๋ฒ์ด ํ์ํ๋ค.
Data-Driven Approach
์ฐ๋ฆฌ๋ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ๊ธฐ ์ํด craft code ํ๋ ๊ฒ์ด ์๋๋ผ ์๋์ ๋ฐฉ๋ฒ์ ์ด์ฉํด์ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํ ๊ฒ์ด๋ค.
- Collect a dataset of images and labels
์จ๋ผ์ธ ์์์ ๋ค์ํ ์นดํ ๊ณ ๋ฆฌ์ ๊ฐ๋ฅํ ๋ง์ ์ด๋ฏธ์ง๋ฅผ ์์งํ๋ค. - Use Machine Learning to train a classifier
์์งํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋จธ์ ๋ฌ๋์ ํ์ต์ํจ๋ค. - Evaluate the classifier on new images
ํ์ต์ํจ ๋ชจ๋ธ์ ํตํด์ ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๊ณ ํ๊ฐํ๋ค.
์์ผ๋ก๋ ์ด๋ฏธ์ง๋ฅผ input์ผ๋ก ๋ฐ์์ classification result๋ฅผ ๋ฐํํ๋ ํ๋์ ํจ์๊ฐ ์๋๋ผ,
train๊ณผ predict ๋ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํ ๊ฑฐ๋ค.
train ํจ์๋ ์ด๋ฏธ์ง์ ๋ ์ด๋ธ์ ์ ๋ ฅ ๋ฐ์์ model ์ด๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด๋ด๊ณ
predict ํจ์๋ model์ ์ ๋ ฅ ๊ฐ์ ์ค์ ์ด๋ฏธ์ง์ classification ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ๋ค.
Classifier
Nearest Neighbor
Nearest Neighbor(์ต๊ทผ์ ์ด์) algorithm์ ์กฐ๊ธ์ ๋ฐ๋ณด๊ฐ์ ๋ฐฉ๋ฒ์ด์ง๋ง, ๊ฐ์ฅ ๊ฐ๋จํ classifier ์ด๋ค.
def train(images, labels) :
# Machine learning
# Memorize all data and labels
return model
def predict(model, test_images) :
# Use model to predict labels
# Predict the label of the most similar training image
return test_labels
train ๊ณผ์ ์์ ๋ชจ๋ training data๋ฅผ ์ธ์ฐ๊ณ , prediction ์์๋ ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ ๋ฐ์ ํ์ต ๋ฐ์ดํฐ์ ์์ ๊ฐ์ฅ ์ ์ฌํ ์ด๋ฏธ์ง๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค.
Distance Metric
๊ทธ๋ฐ๋ฐ Nearest Neighbor algorithm์์๋ ์ด๋ฏธ์ง๋ฅผ ์ด๋ป๊ฒ ๋น๊ตํ ๊น?
์ฐ๋ฆฌ๋ L1 distance (Manhattan) ๋ผ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๊ตํ๋ค.
L1 Distance์์๋ ์ด๋ฏธ์ง์ ๊ฐ pixels์ ๋น๊ตํ๋๋ฐ, ์์ ์ฌ์ง์์ ๋ณด๋ฉด test image์์ training image์ ๊ฐ pixel ๊ฐ์ ๋จ์ํ๊ฒ ๋บ์ ํ๋ค. ์ดํ ๋บ์ ์ผ๋ก ๋ง๋ค์ด์ง ๋ชจ๋ ๊ฐ์ ๋ํด์ ๋น๊ตํ๋ค.
import numpy as np
class NearestNeighbor:
def __init__(self):
pass
def train(self, X, y):
"""
X is N x D where each row is an example.
Y is 1-dimension of size N """
# the nearest neight classifier simply remembers all the training data
self.Xtr = X
self.ytr = y
def predict(self, X):
"""
X is N x D where each row is an example we wish to predict label for
"""
num_test = X.shape[0]
#lets make sure that the output type mathces the input type
Ypred = np.zeros(num_test, dtype=self.ytr.dtype)
#loop over all test rows
for i in range(num_test):
#find the nearest training image to the i'th test image
#using the L1 distance (sum of absolute value differences)
distances = np.sum(np.abs(self.Xtr - X[i, :]), axis=1)
min_index = np.argmin(distances) # get the index with smallest distance
Ypred[i] = self.ytr[min_index]
return Ypred
Q: With N examples, how fast are training and prediction?
A: Train O(1), predict O(N)
K-Nearest Neighbors
Nearest Neighbors์์๋ ๊ฐ์ฅ ๊ทผ์ ํ ํ๋์ ์ด์๋ง์ ๋ณด๊ธฐ์ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋จ์ํ ํ๋์ ๊ทผ์ ํ ์ด์๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ K๊ฐ์ ๊ฐ๊น์ด ์ด์์ ์ฐพ์์ ๋ค์๊ฒฐ ํฌํ๋ก label์ ์์ธกํ๋ค.
**
์์ ์ด๋ฏธ์ง์์ ํฐ์ ๋ถ๋ถ์ ๋ญ ์๋ฏธํ ๊น?
The white regions are where there was no majority among the k-nearest neighbors
Distance Metric
points ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋น๊ตํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์๋ L1์ธ์๋ L2 ๋ฐฉ๋ฒ์ด ์๋ค. L2 distance๋ ๊ฐ point๊ฐ์ ์ฐจ์ ์ ๊ณฑ์ ํฉ์ ์ ๊ณฑ๊ทผ์ ์์ดํํ์ด๋ค.
์ด๋ ํ ๊ฑฐ๋ฆฌ metric์ ์ฐ๋๋์ ๋ฐ๋ผ ๊ณต๊ฐ์์์ ๋ค๋ฅธ geometry๋ topology๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. L1 distance์ ๊ฒฝ์ฐ ์ฌ์ค ์์ธ๋ฐ, ์ฌ๊ฐํ ๋ชจ์์ ํ์ฑํ๋ค. ์ฌ๊ฐํ์์ ๊ฐ points๋ ์์ ์ผ๋ก๋ถํฐ L1 ๊ฑฐ๋ฆฌ๊น์ง ๋ชจ๋ ๋ฑ๊ฑฐ๋ฆฌ์ด๋ค. L1 distance๋ ์ขํ๊ณ ์ ํ์ ๋ฐ๋ผ ๋ฌ๋ ค์๋ค. ๋ง์ฝ ์ขํ๋ฅผ ํ์ ์ํจ๋ค๋ฉด L1 distance๋ ๋ณํ๊ฒ ๋๋ค. ๋ฐ๋ฉด์ L2 distance์์๋ ์ขํ๋ฅผ ๋ฐ๊ฟ๋ distance๊ฐ ๋์ผํ๋ค.
vector๋ก์ input features๊ฐ ์ ์๋ฏธํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค๋ฉด L1 distance๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๊ณ , ๋ง์ฝ ๊ณต๊ฐ์์ vector๊ฐ ๊ทธ์ genericํ๊ณ ๊ฐ elements์ ๋ํด ์ ์์ง ๋ชปํ๋ค๋ฉด L2 distance๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์๋ฅผ๋ค์ด์ ์ง์ฅ์ธ์ ๋ถ๋ฅํ๋ task์์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง vector features ๊ฐ ์ฐ๋ด์ด๋ ๊ทผ๋ฌด ๊ธฐ๊ฐ๋ฑ๊ณผ ๊ฐ์ด ์๋ฏธ๋ฅผ ๊ฐ์ง ์ํฉ์ด๋ผ๋ฉด L1์ด ๋ ์ ํฉํ ์ ์๋ ๊ฒ!
L1 distance๋ coordinate axis๋ฅผ ๋ฐ๋ฅด๋ ๊ฒฝํฅ์ด ์๋๋ฐ ์ด๋ L1 ditsance๋ ์ฐ๋ฆฌ๊ฐ ์ ํํ ์ขํ๊ณ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
Setting Hyperparameters
K-nearest neighbors์์ ๋ค๋ฅธ k๋ฅผ ๊ณ ๋ฅด๊ฑฐ๋ points ์ฌ์ด์์ ๋ค๋ฅธ distance metrics๋ฅผ ๊ณ ๋ฅด๋ ๊ฒ์ฒ๋ผ ์ฐ๋ฆฌ๋ ์ ํ์ ํ๊ฒ ๋๋๋ฐ, ์ด๋ฌํ ์ ํ์ง๋ค์ hyperparameters ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Hyperparameter ๋ ๋ฐ์ดํฐ๋ก๋ถํฐ ๋ชจ๋ธ์ด ๋ฐฐ์ฐ๋ ๊ฒ์ด ์๋๋ผ ์ฐ๋ฆฌ๊ฐ ์ ํํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ์ข์ ํ์ดํผํ๋ผ๋ฏธํฐ์ผ๊น?
=> problem์ด๋ data๋ง๋ค ๋ค๋ฅด๋ค!! ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๋ด๋ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ๋ณด๊ณ ์ฐพ์์ผ ํ๋ค.
ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข๋ค๊ณ ํ ๋ ์ด ์ฑ๋ฅ์ ์ด๋์์ ์ฐฉ์๋ ๊ฒ์ผ๊น?
์ฐ๋ฆฌ์ ๋ฐ์ดํฐ์ ์ train, validation, test์ ๊ฐ์ด ์ธ ๊ทธ๋ฃน์ผ๋ก ๋๋๋ค.
training data๋ฅผ ์ฌ๋ฌ ํ์ดํผํ๋ผ๋ฏธํฐ๋ก ํ์ต ์์ผ๋ณด๊ณ validation set์ผ๋ก ํ๊ฐํ๋ค.
validation set์์ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ฐ์ํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ ํํ๋ค.
๋ชจ๋ ์์ ์ด ๋๋ ๋ค validation set์์ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ classifier๋ฅผ ๊ฐ์ง๊ณ test set์์ ์ฑ๋ฅ ํ๊ฐ๋ฅผ ํ๋ค.
test dataset ์์ ํ๊ฐํ ๊ฒฐ๊ณผ๊ฐ ๋ณดํต ๋ ผ๋ฌธ์ด๋ report์ ์ ๊ฒ ๋๋ ์ฐ๋ฆฌ ๋ชจ๋ธ์ ์ต์ข score๋ค.
Cross Validation
์ข์ hyperparameters๋ฅผ ์ค์ ํ๊ธฐ ์ํ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ Cross validation์ด๋ค. ๋ค๋ง ์ด ๋ฐฉ๋ฒ์ deep learning์์๋ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๊ณ ์์ dataset์ ๊ฐ์ง๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
Cross Validation์์๋ test dataset์ ์ ์ธํ ๋๋จธ์ง ๋ฐ์ดํฐ์ ์ ๋จ์ํ ํ๋์ train, validation dataset์ผ๋ก ๋๋๋ ๊ฒ์ด ์๋๋ผ ์ฐ๋ฆฌ์ ๋ฐ์ดํฐ์ ์ ์ฌ๋ฌ๊ฐ์ folds๋ก ๋๋๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ validation dataset์ผ๋ก ์ฌ์ฉํ dataset์ rotationํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ํ๋์ x๊ฐ์ 5๊ฐ์ y๊ฐ์ด ์๋๋ฐ, ์ด๋ five fold cross validation์ ๊ฒฐ๊ณผ์ด๋ค. ์ด๋ฅผ ํตํด์ ๊ทธ์ ํ๋์ ๊ฒฐ๊ณผ๊ฐ ์๋๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ validaiton set์์์ ๊ฒฐ๊ณผ๋ค์ ์ข ํฉํ ๋ถํฌ๋ฅผ ํ์ธํ ์ ์์ด์ ๋ ์ข์ hyperparameter๋ฅผ ์ ํํ ์ ์๊ฒ ๋๋ค.
k-Nearest Neighbor on images never used.
K-Nearest Neighbor์ ์ด๋ฏธ์ง์์๋ ์ฐ์ด์ง ์๋๋ค! ์์ ์ฌ์ง์ ๋ชจ๋ ๋ค๋ฅธ ์ด๋ฏธ์ง์ธ๋ฐ ๋ณํ๋ ์ธ๊ฐ์ ์ด๋ฏธ์ง ๋ชจ๋ ์๋ณธ ์ด๋ฏธ์ง์ ๋น๊ตํ์ ๋ ๋์ผํ L2 distance๋ฅผ ๊ฐ์ก๋ค.
์ฌ๊ธฐ์ ๊ถ๊ธํ๋ ์ ์ด ์๊ฒผ๋ค.
1. ์ด๋ฏธ์ง๊ฐ ์กฐ๊ธ ๋ณํ๋๊ธด ํ์ง๋ง ์ฌ์ ํ ๊ฐ์ ์ธ๋ฌผ์ด๊ธฐ์ ๋์ผํ L2 Distance๋ฅผ ๊ฐ์ง๋ฉด ์ข์๊ฒ ์๋๊ฐ?
2. ์ด๋ฏธ์ง๊ฐ ์ด์ฐ๋๋ ๋ฐ๋์๋๋ฐ ์ด๋ป๊ฒ ๊ฐ์ L2 Distance๋ฅผ ๊ฐ์ง์ง?...
๋คํํ ์์ ์ค ํ์๋ค์ด ๋์ผํ ์ง๋ฌธ์ ํด์ค์ ๊ถ๊ธ์ฆ์ด ํ๋ ธ๋ค.
์ฐ์ 1๋ฒ์ ๋ํ ๋ต๋ณ์ ํด๋น ์์์์๋ ๊ทธ๋ด ์๋ ์์ง๋ง ๋ฐ๋ก๊ฐ ์์ ์๋ ์๋ค๋ ๊ฒ. ์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๊ฐ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ์๋ณธ ์ด๋ฏธ์ง๊ฐ ์๊ณ ์ด๋ค ์ ์ ํ ์์น์ box ์ฒ๋ฆฌํ๊ฑฐ๋ ์์ ๋ํ๊ฑฐ๋ ํ๊ฒ ๋๋ฉด ๊ฒฐ๊ตญ ๋ ์ด๋ฏธ์ง์ Distance๊ฐ ๊ฐ๊น์์ง๊ฒ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ฐ๋๋ก ์์ ์์์์ ๋๊ฐ์ ํ๋์ ์ด๋ฏธ์ง์ ์์๋ก shit๋ tinting์ ํ๊ฒ ๋๋ฉด Distnace๋ ๋ง๋๋ก ๋ณํ๊ฒ ๋๋ ๊ฒ -> ๋ค์ํ ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง๋ค์ด ๊ฐ์ Distance๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ ๋ชป ๋ ์๋ ์๋ค๋ ๊ฒ
์ฐ๋ฆฌ๊ฐ ๋ ๊ฐ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ ๋
2๋ฒ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์กฐ๊ต๊ฐ ์ธ ๊ฐ์ ์ด๋ฏธ์ง๋ค์ด ์๋ณธ๊ณผ ๋ชจ๋ ๋์ผํ L2 distance๋ฅผ ๊ฐ๋๋ก ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด์ ๊ทธ๋ฌ๋ ๊ฒ..!
Linear Classification
Neural Networks๋ ๋ ๊ณ ๋ธ๋ญ๊ณผ๋ ๊ฐ๋ค๊ณ ์๊ธฐํ๋ค. ์ฌ๋ฌ ์ข ๋ฅ์ components๋ฅผ ์์์ ํฐ network๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ component(block)์ด Linear classifier๋ก, Linear networks๋ parametric model์ ๊ฐ์ฅ basicํ ๋ชจ๋ธ์ด๋ค.
Parametric Approach
์ฐ๋ฆฌ์ Parametric model์ ํฌ๊ฒ ๋ ๊ฐ์ components๋ฅผ ๊ฐ์ง๋ค.
1. X: input data
2. W: set of parameters or weights
K-nearest neighbors ์๋ parameter๊ฐ ์์ด train data๋ฅผ test๋ ํต์ผ๋ก ์ฌ์ฉํ๋ค.
ํ์ง๋ง parametric approch์์๋ train data์ ์ ๋ณด๋ฅผ ์์ฝํ๊ณ ์์ฝํ ์ ๋ณด๋ฅผ ํ๋ผ๋ฏธํฐ W์ ๋ชจ์์ค๋ค. ์ด๋ ๊ฒ ๋๋ฉด test์์ ๋ ์ด์ train data๊ฐ ํ์ ์์ด์ง๋ค. -> model์ด efficientํ๋ฉฐ light ํด์ง๋ค.
์์ฝํ๋ฉด ๋ฅ๋ฌ๋์ ์ ์ ํ ํจ์ F์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ์ผ์ธ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ ๋ฐฉ์์ผ๋ก W์ X๋ฅผ ์กฐํฉํด์ผ ํ ๊น?
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ์์ด ๊ฐ์ค์น W์ ๋ฐ์ดํฐ X๋ฅผ ๊ณฑํ๋ ๊ฒ์ธ๋ฐ ์ด ๋ฐฉ๋ฒ์ด Linear classification์ด๋ค.
f(x, W) = Wx + b
์ฌ๊ธฐ์ b๋ bias์ธ๋ฐ bias๋ ํน์ ํด๋์ค์ ์ฐ์ ๊ถ์ ๋ถ์ฌํ๋ ๊ฒ์ผ๋ก ๊ณ ์์ด ํด๋์ค๊ฐ ๊ฐ์์ง ํด๋์๋ณด๋ค ๋ง์ ์ํฉ์ด๋ผ๋ฉด ๊ณ ์์ด ํด๋์ค์ ์์ํ๋ ๋ฐ์ด์ด์ค๊ฐ ๋ ์ปค์ง๊ฒ ๋๋ ๊ฒ์ด๋ค.
Example with an image with 4 pixels, and 3 classes (cat/dog/ship)
Linear classification์ ํฌํ๋ฆฟ ๋งค์นญ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
์์์ W์ ๊ฐ ํ์ ๊ฐ ์ด๋ฏธ์ง์ ๋ํ ํ ํ๋ฆฟ์ผ๋ก ๋ณผ ์ ์๋ค.
์ด ํ ๋ฒกํฐ(1 x 4)์ ์ด๋ฏธ์ง์ (4 x 1) ์ด๋ฒกํฐ ๊ฐ์ ๋ด์ ์ ๊ณ์ฐํ๊ฒ ๋๋๋ฐ ์ฌ๊ธฐ์ ๋ด์ ์ ๊ฒฐ๊ตญ ํด๋์ค ๊ฐ ํฌํ๋ฆฟ์ ์ ์ฌ๋๋ฅผ ์ธก์ ํ๋ ํ์๋ผ๊ณ ๋ณผ ์ ์๋ค.
bias๋ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ ํด๋์ค์ scaling offsets์ ๋ํด์ฃผ๋ ๊ฒ์ด๋ค.
Interpreting a Linear Classifier
๊ฐ์ค์ง W์ ๊ฐ ํ์ ์๊ฐํ ํด๋ณด๋ฉด linear classifier๊ฐ ์ด๋ฏธ์ง๋ฅผ ์ธ์ํ๊ธฐ ์ํด ์ด๋ค ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋์ง ์ง์ํด ๋ณผ ์ ์๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ Linear classifier๋ ๊ฐ ํด๋์ค์ ๋ํด ๋จ ํ๋์ ํ ํ๋ฆฟ๋ง์ ํ์ตํ๋ค๋ ๊ฒ์ด๋ค. ํ ํด๋์ค๋ผ๋ ๋ค์ํ ํน์ง๋ค์ด ์กด์ฌํ ์ ์๋๋ฐ ์ด๋ฅผ ํ๊ท ํ ์ํค๊ธฐ์ ๋ค์ํ ํน์ง์ ํ ํ๋ฆฟ ํ๋๋ก๋ง ์์ฝํด์ผ ํ๋ค.
Hard cases for a linear classifier
์ฒซ ๋ฒ์งธ ์์๋ ํ/์ง์ ๋ถ๋ฅํ๋ parity problem(๋ฐ์ ์ฑ ๋ฌธ์ )์ธ๋ฐ ์ด๋ linear classificationd์ผ๋ก๋ ํ๊ธฐ ํ๋ ๋ฌธ์ ์ด๋ค.
์ธ ๋ฒ์งธ ์์๋ฅผ ๋ณด๋ฉด ํ๋์ ์ธ ๊ฐ์ ์ ๋ค์ด ์๋๋ฐ ์ด ์ ์ธ์ ์์ญ์ ๋ชจ๋ ๋นจ๊ฐ ์์ญ์ด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ Multimodal problem์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ ํ ํด๋์ค๊ฐ ๋ค์ํ ๊ณต๊ฐ์ ๋ถํฌํ ์ ์๋ ๋ฌธ์ ๋ก ์ด ๋ฌธ์ ์ญ์ linear classification์ด ํ๊ธฐ ํ๋ ๋ฌธ์ ์ด๋ค.
'์ธ๊ณต์ง๋ฅ ๐ > CS231n' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS231n 5๊ฐ Convolutional Neural Networks (0) | 2024.03.20 |
---|---|
CS231n 4๊ฐ Introduction to Neural Networks (0) | 2024.03.20 |
CS231n 3๊ฐ Loss Functions and Optimization (1) | 2024.03.07 |