이 수업은 충남대학교 양희철 교수님의 수업을 듣고 작성한 글입니다.
Classifier란 무엇일까?
● 이산적인 값을 가진다(이거 아니면 저거)
● 지도 학습의 하나이다
=> 크게 어려운 내용은 없다. 본격적으로 들어가보자.
1. 베이지안 분류기
베이지안 분류기를 자세히 알아보려면 조건부 확률에 대해서 알 필요가 있다.
# Prior
각각의 클래스에 속할 확률이다. 즉 자연적으로 정해진 확률이다. 관찰을 통해 얻은게 아니기 때문에 not observed라고도 한다. 한 마디로 관측한 훈련 데이터와 independent 하다는 것이다!
아래의 예시를 한번 보자.
# Likelihood
likelihood(우도)는 observed data의 각 클래스 별로 특정 feature에 대한 분포라고 한다. likelihood가 베이시안 분류기에서 가장 중요한 개념이라고 생각한다. 다른 말로는 class-conditional probability라고도 한다.
위의 그래프를 한번 보자. x축은 밝기(feature)를, y축은 P(x|w)를 나타낸다. 즉, 특정값 x가 특정 class에 속할 확률 을 의미한다.
# Evidence
x가 w에 속할 전체 확률을 의미한다. 식에서 알 수 있는 점은 P(x)는 클래스 j와 독립적이라는 것이다. 즉 특정 클래스 j에만 의존하지 않는 scale vector의 역할을 한다. 다시 말해 P(x)는 모든 클래스에 동일하게 적용된다!!
# Posterior
궁극적으로 구하는 값을 말한다. 식에서 알 수 있듯이 likelihood x prior 로 계산한다. 즉 이 두 값에 영향을 받는다. 이는 관찰 데이터로 만든 확률값과 자연에 존재하는 클래스의 확률을 통해 구하는 것으로 보아 마치 사람의 결정과 유사하다는 것을 알 수 있다. 만약 P(w1|x) > P(x|w2), decision = w1, P(w1|x) < P(x|w2), decision = w2 라고 결정한다. 어떤 클래스에 속할 확률이 0.6이라면 에러율은 0.4가 된다는 것도 알 수 있다.
위의 예시를 한번 보자.
새로운 데이터가 들어왔을 때 observed data뿐만 아니라 prior data도 활용한다. 저 사진에서 P(x|w1)이 P(x|w2)가 유사할 때, P(w1) = 0.8, P(w2) = 0.2라면 prior가 더 큰 영향을 준다!
prior에 확률값이 영향을 받는다는 것을 보여주는 그림이다
2. Parameter Estimation
# Generative vs Discriminative
● Generative : 특정 클래스의 data를 생성할 수 있는 확률 분포를 말한다. 결과로 확률 분포를 도출한다. 특정 클래스에서의 feature x의 분포를 generative라고 하고 대표적으로 베이지안 분류기가 있다.
● Discriminative : 분포는 상관없고 결정 경계를 학습하여 어느 클래스에 속하는지 판별한다. 결정 경계를 찾기 위한 것이다. 대표적인 예시에서는 회귀, 분류 다 가능하다.
# Parametic vs Non - parametric
● Parametic : 모델과 파라미터 수가 정해져 있는 걸 말한다. data 수가 증가해도 파라미터 수는 고정됨!
● Non - Parametic : 파라미터 수가 학습 데이터의 크기에 따라 달라진다. data에 대한 사전지식이 없을 때 유용하게 사용할 수 있다.
# Discriminant Function for Decision Boundary
Bayesian Classifier에서의 decision boundary를 위처럼 식으로 정리할 수 있다.
likelihood와 data를 기반으로 discriminant 함수를 구할 수 있는데 문제점이 있다. 데이터가 충분하지 않을 때 P값을 구하기 적절하지 않을 수 있고 X 값이 충분하지 않으면 연속적인 분포를 구하기 힘들다.
그렇다면 이를 어떻게 해결할 수 있을까?
# Gaussian Distribution
충분하지 않은 data, 이산적인 값을 가지는 데이터를 가지고 P(x|w)를 구할 수 있을까? 어려울 것이다. 그래서 우리는 P(x|w)가 Gaussian 분포를 가진다고 가정을 한다. 우리의 목표는 평균, 분산을 구하는 것이다! 위의 식으로 아래의 식을 증명해보자.
증명하면...
마지막에 보면 가우시안 분포로 바꿔주는 것을 알 수 있다. 그렇다면 그 다음 단계인 Gaussian 분포의 parameter를 어떻게 추정할 수 있을까?
# Maximum Likelihood Estimation
주어진 데이터를 가지고 데이터를 가장 잘 표현하는 분포 함수를 만들어주는 파라미터를 추정한다.
=> generative의 궁극적인 목표는 likelihood 값과 x값을 통해서 데이터가 적어 이산적인 값이 된다는 것을 가우시안 분포를 따른다는 가정을 통해 연속적인 값을 가진다고 생각해서 기존의 데이터들로 분포함수를 만드는데 이 함수가 새로운 데이터에 대해서도 잘 맞는 분포함수가 되게 만들기 위해 MLE를 사용해 최적의 파라미터(평균,분산)을 찾는다.
세타는 가장 분포를 잘 나타내는 파라미터를 의미한다. 즉 파라미터 세타가 주어졌을 때 데이터 D가 그 분포에서 나올 가능성을 구하는 것이다.
3. Naive Bayesian Classifier
x가 1차원이 아니라 다차원이면 어떻게 해야 할까?
모든 feature가 독립적이라고 가정하는 Naive Bayesian 분류기를 이용한다! 첫 feature부터 마지막 feature까지의 곱을 구하면 된다. 즉, 여러개의 1차원 식의 곱으로 나타나진다. 독립적으로 가정하는 것이 현실적이지는 않지만 강한 가정을 통해 분포를 추정해줄 수 있다.
가정이 너무 강하면 Bayesian Belief Network가 된다!(참고)
오늘은 Bayesian Classifier에 대해서 알아보았다. 다음 시간엔 Linear Regression에 대해 알아보겠다
'AI > MachineLearning' 카테고리의 다른 글
[ML] Decision Tree (0) | 2024.11.07 |
---|---|
[ML] Nearest Neighbor Method (0) | 2024.11.06 |
[ML] Logistic Regression (0) | 2024.11.06 |
[ML] Linear Regression (0) | 2024.11.04 |
[ML] About Machine Learning (5) | 2024.10.21 |