본문 바로가기

반응형

딥러닝 & 머신러닝/머신러닝 지식

(9)
나이브 베이즈 분류기 (Naive Bayes Classifier) 이번 글에서는 나이브 베이즈 분류기(Naive Bayes Classifier)에 대한 이론적 지식을 알아보겠습니다. 베이즈 정리, 최대 우도 추정, 최대 사후확률 추정, 둘 간의 비교, '나이브'의 뜻, 라플라스 스무딩, 나이브 베이즈 분류기의 특징 순서로 정리하겠습니다. 1. 베이즈 정리 베이즈 정리(Bayes Theorm)는 이름에서도 알 수 있듯이, 나이브 베이즈 분류기의 근본이 되는 수학 정리입니다. 베이즈 정리는 두 사건 X, Y에 대한 조건부 확률(conditional probability) 간에 성립하는 확률 관계이며, 수식은 다음과 같습니다. 수식 중 P(X|Y), P(Y|X)라는 것이 바로 조건부 확률을 나타내는 표현입니다. 예를 들어 P(A|B)라는 확률은 사건 B가 일어났다는 가정 하..
예측 모델 : 회귀(Regression) 예측 모델은 주어진 변수들 사이의 상관관계를 찾아내어 어떠한 결과값을 예측하기 위한 모델입니다. 예측 모델로는 회귀(Regression) 모델과 분류(Classification) 모델이 있습니다. 회귀는 결괏값이 연속적인 값이고, 분류는 결괏값이 명확한 라벨(Label)이라는 차이가 있습니다. 이번 게시물에서는 그 중 회귀 모델에 대해서 간단히 알아보겠습니다. y = a1x1 + a2x2 + a3x3 위 식처럼 '회귀 계수(a)'를 '변수(x)'와 선형 결합해서 표현 가능한 모델을 선형 회귀 모델이라고 합니다. 반면 비선형 모델은 회귀 계수들을 선형 결합해서 표현하지 못하는 모델을 뜻합니다. 따라서 선형 회귀 모델은 모델의 형태가 반드시 "선형", 즉 직선 형태여야 합니다. 그것이 1개의 변수로 1개의 ..
바이어스와 분산 트레이드 오프 (bias and variance trade-off) 바이어스(Bias)와 분산(Variance)은 머신러닝에서 가장 중요한 통계 개념 중 하나입니다. 바이어스와 분산에 대한 정의를 기반으로, 머신러닝 모델이 데이터에 대해 가지게 되는 오류를 바이어스와 분산으로 나누어 설명할 수 있기 때문입니다. 바이어스란 머신러닝 모델이 잘못된 가정을 함으로써 생기는 오차입니다. 즉 바이어스가 크다는 것은 실제 데이터 분포와 모델이 예측한 데이터 분포 사이의 차이가 크다는 것입니다. 따라서 바이어스가 클수록 모델이 과소적합(underfitting)될 가능성이 높습니다. 분산이란 훈련용 데이터에 내재된 변동(fluctuation) 때문에 발생하는 오차입니다. 즉 훈련용 데이터 사이사이의 차이가 커서 값이 일정한 패턴을 보이지 않고 제멋대로 튄다면, 즉, '퍼진 정도'를 나..
선형 함수 (linear function) 선형 함수(linear function)란 데이터의 관계가 서로 직선 형태를 띠는 함수를 의미한다. ex) y = x, y = x+2, y = 2*x1 + 3*x2 -5, ... 그러나 엄밀히 말하면 superposition 형태를 만족할 때 선형 함수라고 말할 수 있다. superposition : f(a) + f(b) = f(a+b) 이 관점에서 보면, 다항 함수도 결국 선형 함수다. ex) y = x^2+1에서, x^2을 하나의 새로운 변수인 z로 치환하면 y = z+1이 되어 선형 함수가 된다. 따라서 이 관점을 채택한다면 단순 선형 회귀, 다중 선형 회귀라는 용어 뿐만 아니라 '다항 선형 회귀'라는 용어도 사용가능하다. 그러나 보통은 맨 처음의 설명을 많이 따르기에, '다항 회귀'라는 용어를 사..
L1, L2 Norm & L1, L2 loss & L1, L2 규제 # L1, L2 Norm Norm은 벡터의 크기를 측정하는 방법이고, 두 벡터 사이의 거리를 측정하는 방법이기도 합니다. L1 Norm은 서로 다른 두 벡터를 나타내는 각 원소들의 차이의 절댓값의 합입니다. L2 Norm은 서로 다른 두 벡터 사이의 유클리드 거리(직선 거리)입니다. # L1, L2 loss L1 loss는 실제값과 예측값 사이의 오차의 절댓값 합입니다. 그리고 L2 loss는 실제값과 예측값 사이의 오차 제곱 합입니다. L2 loss는 오차의 제곱 합을 더해나가기 때문에 Outlier(이상치)에 더욱 민감하게 반응합니다. 따라서 L1 loss가 L2 loss에 비해 Outlier에 좀 더 robust, 즉 둔감하다고 할 수 있습니다. 그렇기에 Outlier가 중요한 상황이라면 L1 lo..
교차 검증 (Cross Validation) & 훈련/검증/테스트 데이터 # Cross Validation은 무엇이고 어떻게 해야 하나요? 모델에 들어가는 데이터를 크게 훈련 데이터, 검증 데이터, 테스트 데이터로 나눌 수 있습니다. 이때 교차 검증이란 훈련 데이터로 모델이 잘 훈련되었는지를 검증 데이터를 사용해 검증하는 방법 중 하나입니다. 훈련 집합: 모델을 학습시킬 때 사용하는 데이터 집합 검증 집합: 수많은 종류의 학습된 모델이 있을 때, 그 중 최적의 모델(즉 최적 하이퍼 파라미터)을 선택하기 위해 사용하는 데이터 집합 테스트 집합: 검증을 거친 최종 모델의 일반화 성능을 검증할 때 사용하는 데이터 집합 보통 훈련 데이터로 모델을 훈련한 후, 검정 데이터를 사용해 모델이 어떻게 검증되나를 지켜보며 그에 따라 모델의 하이퍼 파라미터를 조정하고 모델의 성능을 올립니다. ..
차원의 저주와 차원 축소 개념 # 차원의 저주에 관해 설명해주세요. 차원의 저주는 저차원에서의 직관이 고차원에서는 성립하지 않는다는 것에서 시작됩니다. 2차원의 단위면적을 가진 정사각형 안에 있는 점을 무작위로 선택할 때 가장자리에 있는 점을 선택할 가능성은 매우 낮다고 합니다. 하지만 10,000차원의 단위면적을 가진 초입방체(hyper cube)에서는 이 가능성이 99.99 이상이라고 합니다. 이처럼 저차원에서의 직관이 고차원에서는 성립하지 않습니다. 또한, 고차원일수록 데이터가 차지하는 공간이 적어집니다. 즉, 특정 범위 안에 들어가는 데이터의 개수가 적어집니다. 그에 따라 필요한 데이터의 개수도 기하급수적으로 증가하고, 그러므로 계산량도 많아져 계산 시간도 오래 걸립니다. 이런 문제들이 바로 차원의 저주라 할 수 있겠습니다. ..
정규화(Normalization)의 목적과 방법들 # 정규화를 왜 해야 할까요? 정규화의 방법은 무엇이 있나요? 우리가 아무리 좋은 데이터를 갖고 있어도 모델에 학습시키기 위해선 스케일링(Scaling)을 해줘야 합니다. 머신러닝 모델은 데이터가 가진 feature(특징)을 뽑아서 학습합니다. 이때 모델이 받아들이는 데이터의 크기가 들쑥날쑥하다면 모델이 데이터를 이상하게 해석할 우려가 있습니다. 예를 들어 아파트 가격을 예측한다고 합시다. 아파트 가격에 영향을 미치는 요소로는 지어진 지 몇 년이나 되었는지, 현재 가격은 얼마인지, 연 가격 상승률은 얼마인지 등등이 있을 것입니다. 각각을 5, 1억, 0.1이라고 칩시다. 그렇다면 모델이 세 가지의 feature를 보고 학습할 땐 5와 0.1은 무시하고 1억만 중요하게 볼 수도 있겠죠? 저는 실제로 이러한..

반응형