플로라도의 data workout

EECS 498-007 Lecture3 : Linear Classifiers 정리 본문

기초 노트/EECS 498-007 (ComputerVision)

EECS 498-007 Lecture3 : Linear Classifiers 정리

플로라도 2024. 3. 4. 20:36

 

3강에서는 Linear Classifier에 대해서 다룬다.

Linear Classifier는 심플하지만 Neural Network를 만들때 중요하다.

Neural Net은 블럭을 쌓아 만드는 것과 같은데,

이러한 레고 블럭의 가장 기본이 Linear Classifier이다.

 

 

CIFAR10 데이터셋을 다시 떠올려보자

 

이전 강의 및 K-NN Classifier와 달라진 점은 Learnable parameter인 W가 추가되었다는 점이다.

이것이 Parametric Approach이다.

parameter 혹은 weight(가중치)라고 불리는 이 W에 우리의 training data의 모든 정보를 요약하여 담길 원한다.

f(x,W)의 함수의 형태는 input x와 W를 통해 여전히 10개 클래스 스코어를 뱉어내길 원한다.

 

함수 f는 이미지의 픽셀인 input x와 weight W는 행렬과 벡터간의 곱의 형태이다.

CIFAR 10 데이터셋을 떠올려보면 32*32해상도의 RGB 3채널은 총 3072개의 scalar value를 갖고, 이들은 긴 형태의 1차원 vector를 형성한다. 이러한 과정에서 이미지의 spatial structure가 파괴된다.

 

Weight W는 각 픽셀 value에 대응되는 3072개와, 10개 클래스에 해당하는 2차원의 (10,3072) shape의 matrix형태를 갖게된다. 여기서 10은 우리가 recognize하기 원하는 카테고리의 수이다.

연산의 결과는 사이즈 10의 벡터이며, 여전히 우리가 찾아내길 원하는 카테고리의 수에 해당되고 각각은 클래스 스코어이다.

 

때때로 Linear Classifier에 bias term이 포함된 형태를 볼 수 있는데, b(bias)는 우리가 recognize 해야되는 category에 대해 offset을 제공하며, 카테고리의 수의 shape (10,)을 띄고 있다.

 

(2,2) shape 즉, 4개의 픽셀로 이루어진 gray-scale의 예시를 생각해보자. recognize하길 원하는 카테고리는 (cat/dog/ship)으로 가정하면 weight matrix는 각 카테고리에 대한 weight vector, 각각의 템플릿으로 구성되어 있다.

 

이러한 Linear Classifier에 대해서 이해하는 관점으로,

각의 가중치를 곱하고 bias offset을 더한 형태를 Algebraic Viewpoint라고 부른다. 직관적인 이해가 가능하다.

 

Algebraic Viewpoint의 이점 중 하나가 Bias Trick이다. bias vector를 따로 두는것이 아니라 weight matrix에 하나의 열로 추가 시키고 데이터의 마지막에 요솟값으로 1을 추가한다. 이러한 trick으로 더할 필요 없이 단순히 곱하기만 하면 동일한 결과를 가지는 것을 알 수 있다. 

 

그러나 이러한 trick은 매우 유용하지만 실질적으로는 컴퓨터 비전에서 주로 Linear layer에서 ConvNet으로 넘어오면서 잘 사용하지 않는다. 게다가 bias term은 initialize방법과 regularization방법이 weight와 별개로 동작해야 하는 부분이 많기 때문에 잘 사용되지는 않는다.

 

 

Linear Classifier의 한가지 특징으로는 Prediction이 Linear(선형적)이라는 것이다.

예를 들어 각 원본 픽셀값에 적당한 상수, 예를들면 0.5를 곱한 결과는 원래의 결과에 0.5곱한 결과와 동일하다.

그러나 이러한 결과가 이미지의 의미론적으로는 부합하지 않는다. 이러한 특징은 Loss fucntion의 선택에 어느정도 달려있을 수 있으나, 이후에 다시 다루도록 하겠다.

Algebraic 관점에서는 raw pixel을 flatten하여 하나의 vector형태로 다루고, weight matrix와 곱하였다.

그러나 pixel value와 weight matrix를 이미지의 원본 shape (2,2) 그대로 다룰 수도 있다.

이러한 관점을 Visual Viewpoint라고 부른다. 이렇게되면, Weight Matrix를 그대로 이미지처럼 시각화 하는 결과를 가질 수 있게되고 이것은 마치 Linear Classifier가 Template Matching과 같은 결과를 가지는 것처럼 보인다.

 

- Linear classifier has one "template" per category

 

이러한 결과로 Linear Clssifier가 이미지의 어떤 부분을 찾는지 직관적인 시각화가 가능하다.

예를 들어 첫번째 사진 plane weight matrix를 보면 , 어떤 이미지가 파란색의 pixel 값들을 가진다면 Linear Classifier의 결과로 매우 high class score를 받을 것 같다. 다른 한편으로 숲의 사진은 대게 green background를 가졌기 때문에 5번째의 deer 이미지로 오분류 될 수 있을 것이다.

또한 Visual Viewpoint로 Linear Classifier의 mode splitting의 문제도 이해할 수 있다.

Linear Classifier는 단지 카테고리당 단 하나의 템플릿만 학습이 가능할 뿐이다.

예를 들어, CIFAR10 데이터셋에서 horse들은 오른쪽을 보고있거나, 왼쪽을 보고있는 말등 다양한 방향을 보고 있는데,

Linear Classifier는 이러한 점들을 최대한 학습하다 보니 Weight Matrix의 시각화를 보면 마치 말들의 머리가 왼쪽, 오른쪽에 있는 것 처럼보인다.

 

싱글 템플릿으로 학습하면서 모든 가능한 모습들에 대해서 커버하려 하다보니 다른 카테고리에 대해서도 blob들이 분명한 방식으로 형성되지 않았다.

2번째 car를 보면 빨간색의 blob이 형성되었는데, Linear Classifier는 green car와 blue car는 모조리 분류에 실패할 것이다.

Linear Classifier를 바라보는 세번째 관점으로는 Geometric Viewpoint가 있다.

보이는 그래프의 x축은 픽셀값이고 y축은 Class score에 해당된다.

Linear Classifier는 Linear function이기 때문에 각 Category의 score function은 linear할 것이다.

이러한 관점에 대해서 픽셀 하나가 아니라 여러 픽셀들에 대해서 확장해서 생각해보자.

2차원이기 때문에 그림에서 보이는 car score를 나타내는 직선이 두 픽셀에 대하여 contour plot처럼 하나의 level set으로 생각해야 한다.

car score가 증가한다면 직선에 수직인 방향의 방향으로 변화할 것이다.

 

 

생각해보면 모든 learned template 카테고리에 대해 다른 level set들이 존재한다.

물론 이러한 2pixel의 이미지 예시는 직관적이지 않을 수 있다. 그러나 이러한 관점이 더 높은 차원의 이미지에도 적용된다는 점이다.

 

raw image는 매우 매우 높은 차원의 euclidean space를 가질 것이고, 각 템플릿의 level set은 그러한 eclidean space를 이등분 할것이다. 이러한 geometry 관점은 linear classifier의 작동을 직관적으로 이해하기 좋으나 고차원을 상상하긴 힘든 부분이 있다.

geometric view는 Linear classifier가 할 수 있거나 할 수 없는 것들을 직관적으로 잘 보여준다. 

위의 그림의 세가지 예시는 single hyperplane으로 red class와 blue class를 한 번에 자를 수 없다. 즉 linear classifier로는 이러한 분류가 불가능하다.

 

 

지난 강의에서 언급했던 역사적 맥락에서 나왔던 퍼셉트론과 XOR problem이다. 퍼셉트론은 Linear model이기때문에 역시 XOR function을 만들 수 없다.

요약하자면 우리는 Linear Classifier의 세가지 관점으로

Algebraic Viewpoint로서 Vector-Matrix multiplication의 간단한 연산에 대해서 알아보았고

Visual Viewpoint와, Geometric Viewpoint에서 표현 능력의 결점에 대해서 배웠다.

 

지금까지 우리는 Linear Classifier에 대해서 배웠다. Linear Classifier에 input으로 위의 그림의 예시처럼 CIFAR10의 세가지 이미지가 들어간다면, Weight Matrix와의 연산을 통해 10개의 score 값을 가진 vector 3개를 뱉을 것이다.

그러나 Weight Matrix W가 어떻게 W를 선택하고, 어떤방식으로 학습되는지에 대해서는 아직 배우지 않았다.

 

한 가지는 Loss function이다. Loss function은 각각의 W값이 얼마나 좋은지를 나타낸다. 

두가지는 Optimization이다. traning data에 대해서 가능한 모든 W에 대해서 출발하여 데이터에 가장 fit한 최적의 W를 찾는 것이 Optimization이다.

 

high loss는 뭔가 나쁘다는 것을 의미하고 low loss는 뭔가 잘 작동하는 것을 의미한다.  loss function은 맥락에 따라 objective function, cost function이라고도 불린다. 어떤 경우 loss를 최소화 하는 것이 아니라 함숫값을 maximize해야 되는 경우도 있기 때문에 각각의 도메인에서 불리는 용어는 다르나 결국 핵심적인 아이디어는 같다. 결국 모델이 얼마나 잘 하고있는지 정량적으로 평가하는 것이다. Loss는 prediction(f(x_i,W) 에 대해서 true label y_i와의 비교를 통해 score를 할당한다. 전체 데이터셋에 대한 Loss는 마지막 수식처럼 각 데이터 샘플의 Loss들을 평균낸 것으로 사용한다. 

 

Loss function은 풀고자하는 task와 모델이 어떤 loss function이 잘되는지 등에 따라서 각 사용 예들이 다르다.

 

 

 

멀티클래스 SVM Loss를 먼저 소개한다.

SVM Loss의 아이디어는 correct class의 score가 다른 클래스 스코어보다 높아야 한다는 것이다. 이것은 지금까지 설명한 우리의 직관과 잘 들어맞는다.


SVM Loss가 실제로 어떻게 계산되는지 살펴보기 위해서 시각화 하였다.

x축은 correct class의 score이고 y축은 각 데이터포인트의 SVM loss값이다.

만약 correct class의 score과 두번째로 높은 class의 score보다 Margin크기보다도 크다면 loss가 0이다.

축의 왼쪽으로 갈수록 correct class의 스코어가 낮은 경우이고 점점 loss가 증가하는 모습이다.

SVM Loss는 생긴 모양이 dorr hinge와 닮아 Hinge Loss라고도 불린다.

 

SVM Loss의 form을 살펴보면 correct class s_yi를 제외한 모든 클래스에 대해 계산하게 되는데

각각의 class에 대한 score가 정답 class의 스코어에 safety margin (여기서는 +1) 을 뺸 값보다 크게되면 loss가 발생한다.

 

구체적인 이해를 위해 SVM Loss의 예시를 들어본다.

특정한 W Matrix로 부터 각각의 Class score가 도출된 상황이다.

우리는 이렇게 계산된 Class score들로 부터 SVM Loss를 계산할 수 있다.

모든 incorrect category를 loop over하면서 계산하게 된다.

첫번째 고양이 예시에서는  car score, frogr score를 통해 SVM Loss를 계산하게 되고 Cat score가 3.2점이었기 때문에 

Car 클래스에 대한 SVM Loss는 5.1 - (3.2- 1 ) = 2.9이고  frog 클래스에 대한 SVM Loss는 (-1.7 - (3.2 -1)) 인데 0보다 작음으로 0이다. 직관적으로 Cat score의 3.2점에 safety margin 1점을 감한것 보다 낮음으로 zero loss이다.

 

이번에는 자동차 이미지에 대해 에시를 들어보겠다. 마찬가지로 정답인 Car Class에 대해 4.9점임으로 safty margin을 감한 3.9보다 어느 하나 더 높은 Score의 Category가 없음으로 Loss는 역시 zero loss다.

 

 

frog의 경우에도 같은 방식으로 계산한다. 하지만 정답 Score가 -3.1로 매우 낮기 때문에 Loss가 매우 큰 모습을 볼 수 있다.

 

그래서 최종적인 Loss는 전체 데이터셋 (고양이,자동차,개구리 이미지 각 1장)의 평균을 사용하게 된다.

 

여기서 생각해볼 첫번째는, 만약 자동차의 이미지의 score가 조금 바뀌게 된다면 Loss가 어떻게 변화하겠는가?이다.

지금의 예시에서는 Car score가 다른 카테고리의 Score보다 월등히 높기 때문에 조금의 변화가 있더라도 여전히 zero loss를 유지할 것이다.

 

2번째 질문은 loss의 최댓값과 최솟값은 어떻게 되겠는가? 이다.

minimum loss는 이미 앞에서 살펴봤다싶이 0이고, maximum loss는 무한대인데, 정답 클래스의 score가 매우 낮은 값이고 오답 클래스의 score가 무한대에 가까우면 발생한다.

세번째 질문이다. learning 되지 않은 초기화된 상태의 W matrix에서 우리는 어떠한 loss를 기대할 수 있겠는가?

> weight matrix는 0에 가까운 값을 갖게 되고 , 이러한 weight matrix와의 연산을 통해서 획득한 class score는 역시 0에 가까운 값을 갖게 된다. 따라서 correct score와 incorrect score에 모두 매우 작은 값이고 이들의 차이 또한 0에 가까운 값임으로, 초기 loss는 1에 가까운 값을 가질 것이다. 전체 Loss는 모든 incorrect category에 대해서 loop를 한뒤 평균을 내는 방식임으로 아마 전체 카테고리 수를 C라고하면 loss는 정답 클래스를 제외한 C-1을 보일 것이다.

 

이러한 지식, 우리가 loss가 어떻게 보여야되는지를 안다면 새로운 loss function을 적용할 때 훌륭한 디버깅 테크닉이 된다.

 

4번째 질문이다. SVM loss에서는 incorrect class에 대해서만 iterate하여 전체 loss를 구하였는데 만약 정답 클래스도 포함하여 계산하게되면 어떻게 되는가? 

> 각 classifier에 대해 동일하게 1만큼 더한 loss를 제공함으로 어떠한 순위의 변동도 일어나지 않을것이다.

 

5번째 질문, sum대신 평균을 사용하면 어떻게 되겠는가?

> 이 역시 단조함수이기 때문에 평균을 취하여도 어떠한 preference order의 변화도 있지 않게된다.

 

6. 제곱을 취하면  어떻게 되겠는가?

이것은 다르다. 이것은 loss function의 선형적인 표현의 변화를 바꾼다. 제곱을 취하는 것은 더이상 Multiclass SVM Loss라고 부를 수 없다.

 

이번에는 또 다른 질문이다. 만약에 어떠한 특정한 W matrix로부터 zero loss를 획득했다면 이것은 유일한 W matrix인가?

> 유일하지 않다. W matrix에 2배를 취해도 여전히 zero loss이다.

 

 

그렇다면 W나 2W나 여전히 트레이닝 데이터에 대해서 동일한 loss를 갖는다면 W를 어떻게 선택해야 하는가?

우리는 training set의 loss외에 또 다른 전략이 필요하다.

Regularization이 그 아이디어이다. Regularization은  learning하는 training data에 잘 작동하도록 하는 Objective function에 fight against 하는 term이다. 트레이닝 데이터에 대해서 모델이 얼마나 잘 작동하는지 평가하는것을 Data loss라고 부른다면, objective function에 추가되는 term을 regularization term이라고 부른다. 이는 데이터에 의존적이지 않으며 모델이 트레이닝 데이터에 너무 의존적이지 않도록 방지한다.

 

regularizatoin term은 람다라고 부르는 하이퍼파라미터를 통해 조정된다. 이러한 하이퍼 파라미터를 통해 모델이 트레이닝 데이터에 대해서 얼마나 잘 작동해야 하는지에 대한 trade-off를 조정하게 된다.

Linear model의 가장 대표적인 regularizer는 L2 regularizer이다. 이 외에도 L1과 L1과 L2의 방법을 합친 Elastic Net 등이 있다. 또한 Dropout, Batch normalization, Data augmentation등도 Regularization방법에 속한다.

 

Regularization의 목적은 모델이 데이터에만 의존한 preference를 설명하지 않도록 하는것이다. Regularizer는 human knowledge로서 prior로 작동한다. 또한 오버피팅을 방지하기 위한 목적이다. 마지막으로는 optimization을 더 잘하기 위해서이다. Optimization은 objective function의 최솟값을 찾아가는 과정이나 머신러닝 모델의 목적이 training data에서 잘 작동하는것이 아니라 unseen data에 대해서 잘 작동하는 것이기 때문에 training data에서 잘 작동하는 것에 대해서 방지해야할 필요가 있다.

이해를 돕기 위한 구체적인 예시를 들겠다.

Regularization은 Preference에 대한 표현이 가능하다.

주어진 예시의 weight Matrix와 x의 dot product는 둘다 1이나 서로 다른 w_1 = [1,0,0,0],  w_2= [0.25,0.25,0.25,0.25]임을 알 수 있다. 우리는 Regularization term을 통해 model에게 우리가 어떠한 wegiht matrix를 선호하는지 말할 수 있다.

 

w_1 matrix의 L2 norm은 1이지만  w_2 matrix의 L2 norm은 1/4이다. 즉 L2 regularzation을 통해 동일한 loss 값에 대해서 어떠한 weight matrix를 선호하는지 알려주는 것이다.  

L2 regularizer는 각 weight값들을 spread out (늘려 퍼뜨리는) 성질을 가진다. 각 개별 feature가 noisy하거나 모든 feature들이 서로 다른 feature와 연관이 있다면 이러한 L2 regularization을 사용하는 것이 좋다.

 

L1 regularzation은 반대의 preference를 제공한다. L1 regularization은 w1 처럼 심지어 하나의 feature에 집중하게 만들 수 도 있다. (L1 == Lasso == least absolute shrinkage and selection operator , 변수 선택!)

 

 

Regularization의 또 다른 효과는 오버피팅을 피하기 위해 간단한 모델을 선호하게 만드는 것이다.

예시를 들기 위해 input X로부터 target Y를 예측하는 회귀 task를 가정하고 5개의 noisy한 data sample이 있다고 가정해보자.

 

 

 

 

 

 

 

모든 포인트에 대해서 perfecrtly fit한 파란색 모델 f1 과  간단한 모델인 f2가 있다.

 

 

두 모델에 unseen data인 회색 데이터 포인트들이 들어왔을때 f2가 이에 대해서 더 잘 들어맞는 모습을 보이는 것을 알 수 있다.

Regularzation은 무척이나 중요하며, 머신러닝 시스템을 만들때 반드시 고려해야하는 요소이다.

 

우리는 지금까지 loss function- MutiClass SVM Loss과 Regularization을 통해 우리의 선호(Preferecne)를 통해 어떤 함수를 학습할 수 있도록 하는 것을 배웠다.

 

또 다른 , 아마도 Neural Net에서 가장 많이 사용하는 Loss function은 Cross-Entropy Loss이다. (Multinomail Logistic Regression이라고도 불리며, 다양한 이름으로 불린다.)

 

SVM Loss는 Score에 대해서 어떠한 해석도 제공하지 않았다. 그러나 Cross Entropy loss는 모델의 predict에 대한 Score에 대한 해석을 제공한다.

Cross Entropy Loss에서는 score에 대한 각각의 벡터들을 일종의 probablistic distribution으로 본다. 

Cross Entropy Loss는 우선 unnormalized log-probabilities 혹은 logit이라고 불리는 이러한 raw score에 지수함수를 취한다. 각 score가 지수함수의 지수로서 들어가게 되는 것이다. 지수함수를 취함으로서 모든 요솟값은 양수를 취하게 된다.

 

 

그런뒤, 합을 나눠줌으로서 sum to 1의 확률 형태로 만들어 score vector를 probability distribution으로 해석 가능하게 한다.

여기까지의 방법이 sofmax 함수라고 부르며 미분가능한 함수이다. max 함수의 경우 최댓값에만 1을 반환하고 나머지는 모두0을 반환할 뿐만 아니라 미분 불가능한데 비해 , 극단적인 방식이 아니기 때문에 soft-max라는 이름이 붙었다. 

 

이제 우리가 할 것은 이렇게 획득한 probability distribution에 대해서 loss를 계산해야 하는 것이다.

이때, correct category에 대한 probabilty에 음의 로그 값을 취함으로써 계산한다.

이러한 형태를 사용하는 것은 Maximum Likelihood Estimation(MLE)의 형태이기 때문이다.

 

> 참고

target distribution이 categorical distribution을 따른다고 가정한 상태에서 Maximum Liklihood Estimation을 통해 likelihood를 최대화 하는 파라미터를 찾는것과 예측값과 정답값을 통해 Cross Entropy Loss를 최소화 하는 것은 동일한 효과이다.

 

왜 이러한 Cross Entropy loss가 합리적인지는

우리의 모델을 통해서 나온 predict probabilities와 target probabilties를 비교해야하는데

이러한 확률 분포를 비교하는 방법이 정보이론으로부터 나온 Kullback-Leibler divergence (KL-Divergence)이다.

 

KL-Divergence를 통해 초록색 박스의 predict probabilities와보라색 박스의 target probabilties를 비교하게 된다. 

 

사실 두 분포간의 차이를 최소화 하는 것 (KL-Divergence를 최소화 하는 것)은 크로스 엔트로피 H(P,Q)를 최소화 하는 것과 같다. (H(p)는 상수로 미분과정에서 고려대상에서 제외되기 때문이다.)

즉 두 분포간의 차이를 보는 것이 Cross entropy와 관련이 있기 때문에 이러한 loss function을 Cross Entropy Loss라고 부르게 되었다.

크로스엔트로피 로스는 결국 correct class에 대해서 확률을 maximize하는 것과 같은데,

Multiclass SVM Loss에서 살펴봤던 것처럼 몇가지 질문을 살펴보자.

 

Q1. 첫번째로 max값과 min값이 어떻게 되는가?

 

> loss의 최소값은 0이고 최대값은 동일하게 양의 무한대이다, 그러나 Cross Entropy loss를 통해 zero loss를 획득할 수 있는 유일한 경우는 예측 vector가 target distribution과 동일한 형태인 one-hot형태일때 뿐이 없기 때문에 SVM Loss처럼 실제적으로 일어나지는 않는다.

 

 

2번째 질문은 SVM Loss때와 처럼 디버깅 전략으로 사용할 수 있는데, 만약 모든 score가 작은 random value로 설정된다면 loss는 어떻게 되겠는가? 이다.

 

> 만약 score가 매우 작은 값, 예를 들면 uniform distribution 형태로 존재하게 된다면(softmax를 통과한 logit값이), 각 함숫값은 1/C를 가지게 될것이고, 역시 정답 클래스에 대해서도 1/C의 확률로 예측을 하게 됨으로

CIFAR 10 데이터셋의 예시에서는 -log(1/10)즉, 자연로그10이 2.3이기 때문에 아마 처음에는 2.3에 가까운 값으로 traning될 것이다. 만약 CIFAR10을 훈련 시키는데 초기 loss값이 2.3에 가까운 값이 아닌 다른 값이라면 현재 뭔가가 잘못되고 있다는 것을 암시한다. 10개의 카테고리를 분류하는 문제에서 loss가 2.3보다 크다면 매우 매우 잘못된 것이다.

 

동일하게, 예측하기 원하는 카테고리의 수에 따라서 초기 loss값이 -log(1/C)보다 큰 값으로 나온다면, 이에 대해서 매우 유의해야 할 것이다.

 

 

지금까지 두가지 타입의 Loss를 비교했다. 하나는 SVM Loss이고 하나는 Cross Entropy Loss이다.

 

SVM Loss부터 계산해보자. 정답값의 Score가 다른 오답 클래스의 스코어보다 1이상 더 큼으로 계산하기 너무 쉽다. 

모두 0이다. 

Cross Entropy Loss를 직접 계산하기는 너무 복잡할 것이나, 0에 가깝지만 0보다는 큰 값일 것이다.

두번째 질문으로, 마지막 데이터 포인트인 [10,-100,-100]의 score값을 조금 바꾸면 각각의 loss는 어떻게 변화할 것인가?

 

SVM loss는 값이 조금 변하더라도 여전히 정답값의 score가 다른 카테고리 score보다 safery margin보다도 크면 여전히 zero loss일 것이다.

그러나 Cross Entropy loss는 다르다. score가 조금만 변화하더라도 softmax를 통해 지수함수와 sum to one을 취하면 상당히 다른 값을 output으로 뱉을것이다. 조그마한 변화에도 큰 변화를 보이는 것이 softmax함수의 특징이기도 하다.

 

마지막 질문은 , 만약 정답 클래스의 logit 값이 두배가되면 loss들이 어떠한 변화를 보이는가? 이다.

이전 문제와 동일한 논리로서, SVM Loss는 여전히 zero loss일것이나 Cross-Entropy loss는 감소할 것이다.

 

 

요약 : Linear Classifier에 대한 세가지 관점

1) Algebraic Viewpoint (대수적 관점) : 벡터와 행렬곱의 계산 

2) Visual Viewpoint : 각 Category에 대한 Template Matching의 관점

3) Geometric Viewpoint : Linear Classifier에 대한 직관적인 이해 제공

 

요약 : 선호를 정량화 하는 Loss Functions

 

Parametric Approch의 W를 어떻게 결정할 것인가?

모델이 얼마나 데이터셋에 얼마나 잘 작동하는지 나타내는 Loss function

그러나 머신러닝 모델의 목적은 Unseen data에 잘 작동하는것, overftiing을 방지하고 human knowlege의 prior를 제공하는 Regularization , Loss function + Regularization = Full Loss (objective function)

 

다음 강은 Optimization에 대해서 다룹니다. 감사합니다.