머신러닝

[ML] 주성분 분석(PCA)과 선형판별분석(LDA)을 통한 차원 축소(dimensionality reduction)
·
Artificial Intelligence/Machine Learning
주성분 분석 (PCA, principal component analysis) 데이터의 피처(feature)가 굉장히 많은 경우를 생각해보자. 피처가 적을 때보다 계산 비용이 증가하고, 불필요한 피처가 있는 경우 심지어 일반화 성능은 더 나빠질 수 있다. 또한 차원의 저주(curse of dimensionality)를 생각하면 가능한 유용한 정보만을 남기는 방향, 즉 피처를 줄이는 것이 바람직하다. 그렇다고 단순한 피처 선택(feature selection)으로 일부 피처를 제거하는 것은 결국 정보를 제거하는 것이기에 정말 쓸모없는 피처가 아닌 이상 바람직하지 않다.이와 같은 문제점을 보완하기 위해 차원 축소 기법이 활용된다. 차원 축소는 말 그대로 데이터의 차원을 줄여 압축하는 방법이다. 예를 들어 3차..
[ML] 간단한 피처 선택(feature selection)
·
Artificial Intelligence/Machine Learning
결정트리 활용 결정트리(참고링크) 모델을 활용하여 피처를 선택하는 방법이다. 트리 모델을 통해 분류 혹은 회귀를 진행하면 학습된 트리 모델이 나오고 이를 통해 각 피처의 중요도를 확인할 수 있다. 이때 중요도가 낮은 피처를 제외하는 방법이다.위 처럼 시각화하면 확인할 수 있다. 사용하는 라이브러리 혹은 프레임워크에 따라 확인 방법은 다르다.수학적으로는 노드의 불순도를 계산하는 것을 활용하는데, 불손도 감소량은 다음과 같다.i(t)=i(t)NtLNti(tL)NtRNti(tR)여기서 i(t) 는 부모 노드의 불순도, i(tL), i(tR) 은 각각 왼쪽 자식과 오른쪽 자식의 불순도, ..
[ML] 서포트 벡터 머신(SVM, support vector machine)
·
Artificial Intelligence/Machine Learning
서포트 벡터 머신 (SVM) 서포트 벡터 머신은 데이터를 구분하는 선을 찾는 선형 분류기로, 분류 문제를 해결하기 위한 알고리즘이다. 단순히 아무 선이나 그리는 것이 아니라, 주어진 데이터를 가장 잘 분류할 수 있는 선, 또는 다차원 공간에서는 면이나 초평면(hyperplane)을 찾는 것이 목표다.서포트 벡터 머신은 클래스 간의 경계선(decision boundary)을 찾고, 이 경계선과 각 클래스에서 가장 가까운 데이터 포인트들 간의 거리를 최대화하려 한다. 이때 경계선에 가장 가까이 위치한 데이터 포인트들을 서포트 벡터(support vectors)라고 하며, 이들과 경계선 사이의 거리를 마진(margin)이라고 한다. 서포트 벡터 머신의 핵심은 이 마진을 최대로 만드는 초평면을 찾는 것이다.주어..
[ML] K-최근접 이웃(K-NN, K-nearest neighbors)
·
Artificial Intelligence/Machine Learning
K-최근접 이웃 (K-Nearest Neighbors) 논파라매트릭(non-parametric) 알고리즘으로 K 개의 가장 근접한 이웃을 확인하고 분류를 결정하는 알고리즘이다.풀어 설명하면 먼저 K 와 거리 측정 방법(distance metric)을 선택한다. 그리고 분류하려는 대상을 놓고, 주변 대상, 즉 원래 데이터와 거리를 계산하여 가장 가까운 K 개를 선택한다. 이제 K 개의 데이터를 통해 투표(voting)하고 대상을 분류한다.간단한 알고리즘인데 거리 측도, 거리에 따라 가중치를 둘 것인지 여부를 결정하는 것에 따라 결과값이 달라질 수 있다. 거리 측도는 민코프스키 거리의 특수한 형태인 맨해튼 거리와 유클리드 거리를 많이 사용하는데, 마할라노비스 거리(참고링크) 등 다..
[ML] 결정트리(decision tree)와 랜덤포레스트(random forest)
·
Artificial Intelligence/Machine Learning
결정트리 (Decision Tree) 결정트리는 의사결정나무 혹은 영어 그대로 읽어 디시전트리라고도 불리며, 다양한 트리 모델의 기초가 되는 모델이다.루트노드라 불리는 가장 위부터 시작하여 차례대로 의사결정을 해가며 분기를 하는데, 쉽게 생각하면 if-else 문으로 분기되는 이진트리라 생각하면 될 듯 하다. 덕분에 사람의 의사결정 과정과 유사하여 이해가 쉽다.위와 같은 간단한 결정트리가 있을 수 있다. (참고링크)결정트리는 수학의 트리 개념을 가져왔기 때문에 그 용어들을 많이 따라간다. 결정이 이뤄지는 부분을 규칙노드(decision node)라 하는데, 그 중 처음결정이 이뤄지는 노드를 루트노드(root node)라 하며, 규칙노드로 분기하여 가장 마지막 결정값이 들어가는 부분을 리프노드(leaf n..
[ML] 로지스틱 회귀(logistic regression)
·
Artificial Intelligence/Machine Learning
시그모이드 함수 (Sigmoid Function) y=11+ex시그모이드 함수는 위와 같은데, 그림으로 그려보면 아래와 같다.즉 (0,0.5) 를 기준으로 점대칭이고, x 가 커지면 1 로, 작아지면 0 으로 수렴한다.시그모이드 함수를 x 에 대해 미분하면 다음과 같다.yx=y(1y)시그모이드 함수 자체는 성공 확률과 실패 확률의 비율에서 유도된다. 이를 오즈 함수(odds function)라 하는데 성공확률이 p 일 때 다음과 같다.odds(p)=p1p그러나 이 함수의 결과값의 범위는 $[0, \in..
[ML] 정칙화(regularization)와 릿지회귀(ridge regression), 라쏘회귀(LASSO regression), 엘라스틱넷회귀(elastic net regression)
·
Artificial Intelligence/Machine Learning
정칙화 (Regularization) 정규화, 규제화, 일반화 등으로 쓰기도 하는데, 헷갈릴 여지가 있으므로 정칙화라고 하겠다.이는 모델의 과적합(overfitting)을 방지하고, 모델을 좀 더 일반화(generalization)하기 위한 일종의 규제(penalty)를 가하는 것이다. 정확히는 손실함수에 규제를 가하여 극단적인 가중치(weight)를 갖지 않도록 만든다.흔히 L1 정칙화라고 하는 라쏘(LASSO)와 L2 정칙화라고 하는 릿지(rigde), 이 두가지를 합친 엘라스틱넷(elastic net), 드롭아웃(dropout)이 대표적 정칙화 방법이다. 릿지회귀 (Ridge Regression) 릿지회귀는 가중치 제곱합을 규제항으로 추가하는데, 규제항은 다음과 같다.$$ \| \mathbf{w} ..
[ML] 선형회귀모델(linear regression model)
·
Artificial Intelligence/Machine Learning
단순회귀 및 다중회귀 (Simple Regression and Multiple Regression) 단순회귀는 간단하게 하나의 피처로 아웃풋을 예측하는 모델이다.y^=wx+b여기서 w 는 가중치(weight), x 가 피처(feature), b 는 편향(bias)이다. 목표는 데이터를 통해 y 를 가장 잘 예측하는 wb 를 찾는 것이다. 그리고 y 를 가장 잘 설명한다는 것은 일반적으로 아래와 같은 MSE 를 최소로 한다는 것을 의미한다.MSE=1ni=1n(y^iyi)2다시 손실함수 j 로 쓰면 다음과 같다. 앞에 1/2 ..
[ML] 분류 모델 평가(evaluation)
·
Artificial Intelligence/Machine Learning
오차행렬 (Confusion Metrix) 내가 예측한 클래스와 실제 클래스가 어떻게 되는지를 확인하는 쉬운 방법 중 하나이다. 오차행렬이 아니라 혼동행렬이라고도 한다.이진분류라 하면 아래와 같이 실제값이 참(positive)인 경우와 거짓(negative)인 경우를 열로, 예측값이 참인 경우와 거짓인 경우를 행으로 넣어 아래와 같이 만들 수 있다. 행에 실제값을, 열에 예측값을 넣는 경우도 있으니 확인해야 한다. actual positiveactual negativepredicted positiveTP(true positive)FP(false positive)predicted negativeFN(false negative)TN(true negative)이진분류가 아니라 다중..
[ML] 경사 하강법(gradient descent)
·
Artificial Intelligence/Machine Learning
필요 이유 머신러닝에서의 목표는 최적의 가중치(weight)를 구하는 것이다. 최적의 가중치란 손실함수(loss function) 혹은 비용함수(cost function)로 정의된 함수값이 가장 작은 지점에 해당하는 가중치를 의미한다.수학적으로 최저점을 찾는 가장 간단한 방법은 기울기가 0 되는 지점을 찾고, 그 지점이 최소인지 확인하는 것이다. 간단한 문제, 예를 들어 선형회귀와 같은 문제에서는 이를 통해 최적의 회귀계수를 비교적 쉽게 계산할 수 있다. 이때 기울기가 0 이 되는 지점을 찾기 위한 대표적인 해석적 방법이 정규방정식(normal equation)이다.XTXβ=XTYβ^=(XTX)1XTY이 정규방..
애스터로이드