본문 바로가기
실습 & 활동/LG Aimers

Module 3. 지도학습 (분류/회귀) - Linear Classification

by sim0609 2023. 1. 19.

Linear classification

: classification은 입력의 카테고리를 결정하고 분류하기 위해 dataset에서 입력과 정답으로 구성된

label이 있는 dataset 사용

 

 

Linear Model

: Hypothesis h가 아래 식과 같이 입력값과 가중치와의 선형 결합으로 구성된 모델

 

linear classification은 Hyper plane을 구해 데이터셋에 있는 Positive Sample과 Negative Sample을 하나의 Hyper plane(linear combination)을 기준으로 구분함

 

Hyper plane → h(x) = 0

Positive sample: Hyper plane(linear combination)인 h(x)가 0보다 큰 부분

Negative sample: Hyper plane(linear combination)인 h(x)가 0보다 작은 부분

 

 

Multi class classification

: multi-class classification입력신호공간에서 다수의 hyper plane을 사용해 classification을 수행\

 

 

Linear classification framework

: Linear classification은 decision boundary의 정확한 추정을 통해 주어진 입력에 대해 출력의 분류를 수행하는 문제

 

학습 데이터의 입력(X)과 출력(label)으로 linear boundary를 학습하고, 그로부터 입력 feature가 hyper plane으로부터 어느 위치에 있는지 결정

 

ex) (2, 0)의 입력이 들어갔을 때 -1(label)이 출력하길 기대하면서 classifier h(decision boundary)를 학습 가능

 

 

이러한 classification을 진행할 때 고려해야할 것

  • 어떤 predictor를 이용할 것인지
  • 어떤 loss function을 이용할 것인지
  • 어떤 기법을 통해 parameter optimization을 진행할 것인지

 

 

Linear classification model

아래 수식에서 w_0는 offset이며, 입력 변수와 parameter의 곱을 score 값으로 여김

여기서 입력변수와 파라미터는 d+1 차원 벡터임

sign(x)는 x의 값에 따라 x가 0보다 클 경우 1의 값을, 작을 경우 -1의 값을 나타냄

 

 

Example of linear classifier

: 입력 score인 W_T * X의 값은 좌표상에서 함수h(x)로부터 해당 점까지의 거리를 뜻하고 값이 커질 수록 거리도

늘어남

 

 

Hypothesis class : which classifier?

: w_1과 w_2의 값을 다르게 설정하면 sample들을 잘못 분류할 수 있음

 

ex) Positive sample을 Negative sample로 분류하는 보라색 boundary의 경우

 

 

Classification 문제에서는 Error를 어떻게 판단할까?

Zero-one loss

: 내부의 logic을 판별해 맞으면 0, 틀리면 1을 출력하는 함수

 

 

Score and margin

: Score 값은 결정과정에서 model이 얼마나 confident한지 측정
: margin 값은 score 값에 y를 곱해 계산해 모델이 얼마나 정확한지 측정

 

Score: + (model prediction이 positive sample을 의미) / y: 1 (정답이 positive sample)

→ 모델이 정답을 맞추었다고 생각해 margin 값이 매우 늘어남

 

Score: - (model prediction이 negative sample을 의미) / y: -1 (정답이 negative sample)

→ 모델이 정답을 맞추었다고 생각해 margin 값이 매우 늘어남

 

Score: - (model prediction이 positive sample을 의미) / y: 1 (정답이 positive sample)

→ 모델이 정답을 맞추지 못함, model prediction이 실패, margin이 음수 값을 가짐

 

Score: + (model prediction이 negative sample을 의미) / y: -1 (정답이 negative sample)

→ 모델이 정답을 맞추지 못함model prediction이 실패, margin이 음수 값을 가짐

 

 

zero-one loss의 경우 gradient가 0이 되는 경우가 발생해 학습을 제대로 진행할 수 없음

 

 

이러한 문제를 해결하기 위해 classification에서는 hinge loss를 사용

 

Hinge loss

: hinge loss의 경우 [1 - margin, 0] 중 큰 값을 선택하는 loss function임

 

모델이 정답을 잘 맞추는 경우: 

margin이 큰 양의 값을 가져 [1-margin, 0]에서 1-margin이 음의 값을 가져 loss는 0이 됨

 

반대로 정답을 잘 못맞출 경우: 

1-margin의 값이 양의 값을 가져 loss가 발생하게 됨

 

margin이 1보다 작으면 error가 발생하고, 1보다 클 경우 error가 없는 것으로 여김

 

 

Cross-entropy loss

: cross-entropy loss는 classification 모델 학습에 가장 많이 사용하는 loss function임

 

p와 q의 값이 유사한지에따라 error의 정도가 바뀌는 특징을 가짐

유사할 경우 loss가 감소하고, 유사하지 않을 경우 loss가 증가

 

 

이러한 cross-entropy 방식은 확률 값이고 모델의 score 값은 실수 값이므로 해당 실수를 확률 값으로 매핑하는 확률함수가 필요함 이때 사용되는 함수가 바로 sigmoid 함수임

 

계산한 score 값은 어떻게 확률 값으로 mapping 할 수 있는지?

Sigmoid function

: 실수로 이루어진 score 값을 확률 함수로 매핑할 때 사용하는 함수(score 값을 0부터 1 사이의 값으로 매핑 가능)

 

 

Cross-entropy loss

: y_hat의 경우 모델이 예측한 값(모델의 출력값)이고, y는 class에 따른 정답(label)임

 

모델이 y_hat의 값과 y의 값이 유사해지도록 새로운 loss값을 업데이트 해가면서 학습

Cross-entropy loss가 줄어들게 됨

 

 

Training a linear classifier

: linear classifier를 학습하는데 gradient descent 알고리즘이 어떻게 사용되고 있는지 설명

 

linear classifier의 학습 단계

  • weight을 initialization을 함
  • gradient를 계산
  • 첫 움직임의 방향을 설정
  • weight을 업데이트
  • 수렴할 때까지 반복

 

Multiclass classification

: 다양한 입력 feature들을 구분할 수 있는 hyper plane을 학습하여 얻게 됨

 

 

Multiclass classification

One-VS-All

: Binary classification 문제를 Multiclass classification 문제로 확장

 

아래에서는 3개의 hyper plane을 그어 Multiclass classification 문제를 Binary classification 문제로 해결

 

 

이렇게 수식으로부터 score 값을 획득하여, sigmoid 함수를 사용하면 확률 값으로 값을 mapping하여 one hot encoding을 통해 최종 예측 정답을 도출 가능

 

 

 

One-Hot Encoding

: one-hot encoding은 2개의 서로 다른 표 사이의 거리를 가깝게 하여 학습하는 방식으로, label을 지정할 때 사용

 

아래 그림처럼 one-hot encoding 된 label의 값과 sigmoid 모델이 출력하는 확률 값을 서로 비교하여 

loss function을 통해 error를 계산하여 학습 진행

 

 

Advantage of linear classification

: 쉽게 구현하고 테스트할 수 있어 간단함(처음 시도하기에 좋은 방식)

: 해석 가능성이 상당히 증가

→ 각 요소별 요소가 1 증가할 때마다 전체 score 값이 어떻게 변하게 되는지 추정함으로써 해석 가능성을

제공 가능