본문 바로가기
활동/2022 동계 모각코

[22동계모각코] 3회 계획 및 평가

by JJong | 쫑 2023. 1. 9.

시작 시간 : 23-01-09 오후 6시

오늘의 목표

LG Aimers: AI전문가과정 - Module 3. 『지도학습(분류/회귀)』 이어서 수강


 

hyper plane이란?

 

[R 데이터 분석] 분류모형, 서포트 벡터 머신 (SVM) 분석

서포트 벡터 머신 (Support Vector Machine, SVM)이란? 지도학습 알고리즘 중 하나로 데이터 분류를 위한 모형 확률(p)과 가정을 사용하지 X, 오직 공간상의 정보(선)으로만 이진 분류 두 클래스(○ & ■)

ybeaning.tistory.com

hyper plane의 margin은 학습하는 동안에는 성능에 영향을 미치지 않는다. 그래서 margin 영역이 어디를 학습 정도에는 별 차이가 없다. 하지만 실제 데이터가 들어가면서 모델 성능의 큰 영향을 미칠 수 있다는 점이 큰 골칫거리다. 실제 데이터가 분류한 hyper plane의 바깥에 존재할수도 있기 때문이다.

그래도 결론적으로는 postive sample과 negative sample 사이(margin) 중간 어딘가에 hyper plane을 긋는 것이 가장 최적이라고 한다. 

 

그렇다면 어떠한 방식으로 hyper plane을 그어야 할까? 바로 SVM(서포트 벡터 머신)에서 해결하고자 한다.


SVM에서는 다양한 최적화 방법을 이용하고 있다.

 

  • Hard margin SVM

샘플들이 linearly separable 하다는 것을 가정하고 있다. hyper plane이 있고 각 suport vector들을 연결하는 프레임(?)들이 있다라고 했을 때, 그 둘 사이의 영역(margin)에는 어떠한 샘플도 있지 않는 것을 의미한다.


  • Soft margin SVM

어느정도의 error을 용인하는 범위에서의 optimization 방식을 설명한다.


  • Nonlinear transform & kernel trick

비선형 데이터들을 분류하기 위해 있다. 2차원의 sample들을 보다 고차원의 샘플들로 매핑을 하여 2차원의 hyper plane을 이용해서 분류를 더 쉽게 한다.

아래는 커널 트릭에 사용되는 세 가지 방법이다.

  • Polynomial(다항식)
  • Gaussian radial basis function(RBF)
  • Hyperbolic tangent(multilayer perceptron kernel)

위 커널들은 각각 고유의 파라미터들이 있어서 유저가 직접 선택을 하게끔 되어 있다.


결이 다른 classifier; Nonlinear Classification Model

ANN -> Deep Neural Network

 

layer들을 쌓아가게 되면 복잡한 문제들을 해결할 수 있게 된다. 그러나 비선형 문제를 해결하고자 한다면 단순히 layer만 쌓는다고 해결할 수 없다. 이런 경우에는 activation function에 의해서 non-linear 문제들을 풀 수가 있다. 


Ensemble Learning(앙상블 러닝)

  • 이미 사용하고 있거나 개발한 알고리즘의 간단한 확장
  • Supervised learning task에서 성능을 올릴 수 있는 방법

앙상블이라는 말이 프랑스어로, '함께, 동시에, 한꺼번에 협력하여'라는 의미의 단어라고 한다. 영어로는 '소규모의 합주단'이라는 의미를 지니고 있다.

앙상블 방식은 머신러닝에서 알고리즘의 종류에 상관없이 서로 다르거나, 같은 매커니즘으로 동작하는 다양한 머신러닝 모델을 묶어, 함께 사용하는 방식

(예를 들어 SVM모델, Neaural Network 모델 등 여러 모델을 함께 모아서 예측 모델의 집합으로 사용함.)

 

각 모델들의 장점을 모아서 사용할 수 있다.


특징

  • 각 모델별로 같은 학습 데이터로 학습을 시키는 것을 지양해야 한다.
  • 최종 결정은 마지막으로 학습한 다수의 모델이 각각 결정을 내린 후에 다수결로 최종 예측 결과를 내놓는다.

 

장점

  • 노이즈에서 자유롭다
  • 쉽게 구현이 가능하다.
  • 모델 파라미터의 튜닝이 많이 필요없다.

 

단점

  • 이 모델 자체로는 compact한 표현이 되긴 어렵다.

 

(강의 교수님이 이렇게 설명해주셨는데, 이 말 자체로는 잘 와닿지 않는다. 여러 모델들을 묶어 사용하고 있기 때문에 작은 표현을 뜻한다고 보기 어렵다는 것일까, 아니면 다른 의미가 있는 것일까?)


Bagging

  • 학습 과정에서 training sample을 랜덤하게 나누어 선택해 학습

데이터 샘플 S를 n개의 데이터 셋으로 쪼갠다. 그리고 이 n개의 데이터 셋을 모델1, 모델2, ..., 모델n에게 각각 학습을 시킴으로써 설령 같은 모델일지라도 서로 다른 특성의 학습이 가능해진다. 따라서 병렬적으로 학습시킬 수 있다는 장점이 있다.


Boosting

이전의 classifier의 결과를 그대로 흘려보내는 것이 아니라 다음 classifier 과정에서 이용하는 방식이다. classifier1에서 어떤 데이터가 중요한지 알 수 있게 된다. 이러고나서 다음 학습 과정에서 weight를 주어서 다음 학습과정에서 성능 향상에 도움을 줄 수 있다. 따라서 연속적으로 학습시킨다는 특징이 있다.

 

Image from https://www.pluralsight.com/guides/ensemble-methods:-bagging-versus-boosting


Cascading


Boosting algorithm

  • Adaboost

Bagging and Boosting

  • Random forest

Q. 지도 학습에서 모델의 성능은 어떻게 평가하게 될까?

A. 모델의 정확도를 측정하는 것입니다.

 

정확도란? 실제 정답을 모델이 얼마나 잘 맞추는지로 구해낸 지표이다.


Confusion matrix 

  • 각 경우에 대해 오차가 얼마나 있었는지 표현하는 방법

 

대각 성분에 해당하는 것이 분류를 정확하게 한 것이다.

대각성분을 합한 값 / 전체 성분으로 나눈 값 = 정확도이다.


false positive error | false negaive error

22년 2학기에 수강한 인공지능과 미래사회라는 수업에서 스치듯 배우고 넘어간 개념이다. 

  • 정답은 false이지만 모델은 positive(또는 true)라고 내놓는 것처럼 정답과 모델의 예측값이 반대인 경우에 대한 error

그래서 unbalanced 데이터 세트의 경우 정확도 이외에도 precision과 recall 값을 동시에 보아야 모델의 정확도를 제대로 측정할 수 있다.


ROC Curve

  • 서로 다른 classifier의 성능을 측정하는데 사용하는 curve

자세한 내용은 아래 블로그에서 공부해보자.

 

ROC curve - 공돌이의 수학정리노트

 

angeloyeo.github.io

 

댓글