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

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

by sim0609 2023. 1. 24.

이번에는 대표적인 classification 모델 몇가지와 관련 지식을 알아보도록 하자

 

sample의 분류는 hyper plane을 기준으로 score 값을 계산하여 classsification 수행

 

→ (linear classification의 경우) hyper plane을 구성하는 모델 파라미터가 w이면hyper plane의 normal한 방향(수직 방향)으로 hyperparameter w vector를 구성하게 됨

 

 

하지만, 아래 그림처럼 서로 다른 hyper plane이 존재하게 될 때 최소한 아래 그림에 있는 data sample들에 대해서는 같거나 비슷한 loss를 제공하게 되지만, 실제 세상의 데이터 샘플에서는 보이지 않는 다양한 샘플이 존재하여 서로 다른 hyper plane들은 각기각색의 성능을 제공할 수 있음

 

 

ex1) 아래 그림을 보면 w1이 hyper plane인 경우 새로운 test data는 positive sample인데도 불구하고 negative sample로 분류되는 오류를 확인할 수 있음

 

(새로운 test data는 positive sample들과 상대적으로 가깝고 negative sample들과 거리가 멀지만 잘못 분류됨)

 

 

ex2) 아래 그림을 보면 w3이 hyper plane인 경우 새로운 test data는 negative sample인데도 불구하고 positive sample로 분류되는 오류를 확인할 수 있음

 

(새로운 test data는 negative sample들과 상대적으로 가깝고 positive sample들과 거리가 멀지만 잘못 분류됨)

 

 

→ 따라서 이 모델에서는 w2가 가장 적절한 hyper plane임을 알 수 있음

 

 

SVM(Support Vector Machine) : Margin

: Support Vector Machine의 핵심 아이디어는 hyper plane을 결정하는 margin임

 

아래 그림과 같이 각 점선들에 가장 가까운 positive sample과 negative sample을 기준으로 최대 margin 폭을

갖는 최적화 방식

 

 

Support Vector Machine

support vector: positive sample과 negative sample 중 hyper plane과의 거리가 더 짧은 sample을 의미함

즉, 해당 포인트는 모델 classification의 성능을 좌지우지하는 민감한 데이터 포인트

 

: 수행에 영향을 미치는 가장 민감한 data 포인트들인 support vector들 사이의 거리를 최대화하는 maximum margin을 설정해, 보지 못한 데이터(unseen data)에 대해서 robust하게 대처함

 

안정적인 성능을 제공하는 최적화 방식

 

 

margin: support vector와 h(x)와의 거리 2배

관련 수식과 margin 거리 증명

 

 

Optimization

: 떨어져 있는 support vector 간 거리를 최소화하기 위해 svm에서 다양한 최적화 방식을 이용

 

1. Hard margin SVM 

: linear separability를 가정하여 h(x)와 support vector 사이의 영역에는 어떠한 샘플도 존재하지 않을 것을 의미

 

2. Soft margin SVM 

: 어느정도의 error는 용인하는 방식의 최적화 방법

 

3. Nonlinear transform & Kernel trick 

: SVM이 linear separable한 hyper plane을 이용해 수행하기 때문에 linear한 경우에만 사용할 수 있다는

단점을 극복하기 위해 만들어짐

 

이를 이용할 경우 아래의 그림과 같이 2차원의 샘플을 고차원의 샘플로 맵핑하는 함수를 이용해 수행

→ positive sample과 negative sample들을 수직으로 분할하여 구분할 수 있음

 

 

Optimization constraints

: linearly separable; hard-margin linear SVM

 

support vector 값들에 의해서 hypothesis h(x)가 어떻게 결정되는지 알아보도록 하자

 

아래는 positive sample이 지나는 h(x) 수식과 negative sample이 지나는 h(x) 수식을 차례대로 나타냄

 

 

그리고 positive sample과 negative sample에 상관없이 SVM에서 모든 샘플은 아래 수식을 만족함

 

 

margin에 대한 식을 정리하면, 아래 그림처럼 정리 됨

 

 

SVM에서 풀고자하는 문제는 ||w||^2 를 최소화하여 margin을 극대화하는 것임

이를 SVM Primal Problem이라고 함

 

 

Support Vector Machine

: not linearly separable; Kernel Trick

 

만약에 data sample들이 서로 간의 linearly separable하지가 않으면 kernel 함수로 분류해야 함

 

Kernel 함수

: linearly separable하지 않은 data sample들이 있다고 할 때, 그 차수를 높여 linearly separable하게 만드는 과정임

 

 

Some commonly used kernels

 

주로 사용하는 커널 기법들

 

이러한 커널들은 각각 고유한 파라미터가 있어 사용자가 선택해야하며, 선택한 값에 의해 서로 다른 형식의 plane으로 매핑하게 됨

 

 

Artificial neural network (ANN): non-linear classification model

: ANN과 같은 경우 nonlinear classification model을 제공

: DNN(Deep Neural Network)의 기본으로 인간의 뇌신경망을 모사한 모델로 우리 뇌에서 일어나는 작업과 유사하게 수행됨

 

수행 방식

먼저 이전의 노드 x_0, x_1, x_2에 각각의 고유 파라미터 w0, w1, w2를 곱해 linear combination으로

만든 score 값을 이용 

→ 그 다음으로 Activation Functon은 linear combination으로 구성된 score 값을

입력으로 삼아 sigmoid와 같은 함수를 통해 non-linear 관계로 매핑

 

 

Artificial neural network (ANN) activation functions

sigmoid도 activation function의 한 종류지만, neural network를 깊이 있게 쌓아갈 때 도움이 되지 않음

(Z 값이 크거나 작을 경우 gradient가 너무 작아 학습을 진행함에 따라 학습량이 계속 작아지는 문제가 있음)

 

→ 이를 보완하기 위해 만든 activation function으로 ReLU, Leaky ReLU, tanh 등이 있음

 

ReLU: 학습을 느리게하는 원인인 기울기(gradient)가 0이 되는 것을 막아줌

(함수들은 미분을 하더라도 gradient가 1로 수렴하게끔 설계되어 학습이 멈추지 않음)

 

 

Artificial neural network (ANN) deep neural network

: DNN는 각각의 계층에 따라서 학습을 하게 되는 feature의 어떤 형태가 달라진다고 하는 것이 잘 알려져 있음

: non linear 함수들이 계층적으로 쌓여감에 따라 우리가 하고싶은 signal space에서 복잡한 신호들의 패턴을 

조금 더 정확하게 분류할 수 있게 하는 것

 

아래 그림처럼 정확한 분류를 위한 linear plane의 구성이 어려운 경우, 여러 개의 계층으로 이루어진 DNN 

계층을 통과하여 복잡한 모델을 구성해 잘 분류함

 

 

Artificial neural network (ANN) multilayer perceptron

 

기존의 linear plane을 이용해서 XOR 문제를 해결할 수 없음

 

 

multi-layer perceptron을 이용하면 기존에 풀 수 없었던 XOR 문제를 해결할 수 있고 계층이 올라감에 따라 더 복잡한 hyper plane을 만들어 정확도를 높여 분류 가능

 

 

XOR 문제 해결 과정

 

→ nerual network는 linear classification 문제에서 수행할 수 없는 non-linear한 문제들을 잘 해결하며, 고차원의 신호나 이미지와 데이터에 더 정확하게 동작

 

 

Artificial neural network (ANN) ANN for non-linear problem

: 모델의 계층이 늘림에 따라 accuracy가 증가해야 하는데 낮아지는 경우 발생 

 

모델학습 과정에서 학습 파라미터의 학습은 Chain rule을 통해 진행하는데, DNN의 계층이 커질수록 Gradient가 줄게되어 깊은 레이어에서 학습효과가 없어지는 현상이 발생함

 

 

이러한 문제는 Back Propagation 과정에서 발생하고 Pre-trainingfine-tuning 등으로 극복할 수 있음