두 포인트간의 유사도를 찾는데 사용되는 Kernel Function

두 포인트간의 유사도를 찾는데 사용되는 Kernel Function
Photo by Mockup Graphics / Unsplash

Definition

  • **커널 함수(Kernel Function)**는 기계 학습과 통계에서 사용되는 함수로, 두 데이터 포인트 간의 유사도를 측정합니다
  • . 주로 비선형 데이터를 고차원 공간으로 변환하여 선형 분리가 가능하게 하는 데 사용됩니다.
  • 커널 함수는 Support Vector Machines (SVM), Gaussian Process, 커널 PCA와 같은 다양한 알고리즘에서 핵심적인 역할을 합니다.

Motivation

  • 기계 학습에서 많은 데이터는 비선형적 패턴을 따릅니다. 이러한 비선형성을 해결하기 위해 커널 함수가 도입되었습니다
  • . 커널 함수는 원래 공간에서 복잡한 비선형 문제를 고차원 공간으로 변환하여 선형적으로 분리 가능하게 만들어줍니다.
  • 이는 모델의 성능을 크게 향상시키며, 더 복잡한 데이터 패턴을 효과적으로 학습할 수 있게 합니다.

Pros & Cons

Pros

  1. 비선형 문제 해결: 고차원 공간으로 데이터를 변환하여 비선형 문제를 선형 문제로 변환합니다.
  2. 유연성: 다양한 커널 함수가 존재하여 데이터 특성에 맞는 커널을 선택할 수 있습니다.
  3. 효율성: 커널 트릭을 사용하여 계산 비용을 절감하면서도 고차원 공간에서의 계산을 가능하게 합니다.

Cons

  1. 커널 선택의 어려움: 최적의 커널 함수를 선택하는 것은 어려운 문제일 수 있습니다.
  2. 고계산 비용: 커널 행렬을 계산하는 데 많은 계산 자원이 필요할 수 있습니다.
  3. 과적합: 적절한 정규화를 하지 않으면 과적합(overfitting)의 위험이 있습니다.

주요 커널 함수

1. 선형 커널 (Linear Kernel)

  • $K(x, y) = x \cdot y$
  • 선형 커널은 데이터가 선형적으로 분리될 수 있는 경우에 적합합니다.
  • 즉, 입력 공간에서 두 클래스가 직선으로 분리될 수 있는 경우, 선형 커널을 사용하는 것이 가장 효율적입니다
  • 이러한 데이터는 고차원으로 매핑할 필요 없이 간단한 선형 모델로도 충분히 좋은 성능을 낼 수 있습니다.
  • 유즈케이스
    • 텍스트 분류: 텍스트 데이터는 고차원 희소 벡터로 표현되며, 선형 커널이 좋은 성능을 발휘할 수 있습니다.
    • 선형 회귀 및 분류 문제: 데이터가 선형적으로 분포된 경우 사용합니다.

2. 다항식 커널 (Polynomial Kernel)

  • $K(x, y) = (\alpha x \cdot y + c)^d$
  • 다항식 커널은 비선형적으로 분포된 데이터를 모델링하기 위해 사용됩니다.
  • 선형 커널과 달리, 다항식 커널은 입력 공간에서 비선형 관계를 학습할 수 있습니다.
  • 이는 데이터가 고차원에서 더 잘 분리될 수 있는 경우에 유용합니다.
  • 다항식 커널은 비선형성을 도입하여 선형 모델의 한계를 극복하고, 더 복잡한 패턴을 학습할 수 있게 합니다.
  • 유즈케이스
    • 이미지 분류: 이미지 데이터는 비선형적 패턴을 가지므로 다항식 커널이 적합할 수 있습니다.
    • 복잡한 비선형 관계가 존재하는 데이터셋: 데이터가 단순히 선형적으로 분리되지 않는 경우 사용합니다.

3. 가우시안 RBF 커널 (Gaussian RBF Kernel)

  • $K(x, y) = \exp\left(-\frac{|x - y|2}{2\sigma2}\right)$
  • RBF 커널은 매우 유연하고 강력한 커널로, 데이터가 어떤 형태로 분포하든지 상관없이 잘 작동합니다.
  • 이는 비선형 데이터의 복잡한 패턴을 캡처할 수 있으며, 고차원 공간에서 선형적으로 분리할 수 없는 데이터를 잘 분리할 수 있게 합니다.
  • RBF 커널은 유사도를 거리 함수로 변환하여, 가까운 데이터 포인트끼리는 높은 유사도를, 먼 데이터 포인트끼리는 낮은 유사도를 부여합니다.
  • d유즈케이스
    • 비선형 패턴을 학습해야 하는 모든 기계 학습 문제: 특히, 비선형적으로 분포된 데이터에서 좋은 성능을 보입니다.
    • SVM에서의 분류 문제: 다양한 형태의 데이터를 효과적으로 분류할 수 있습니다.

Sample

import numpy as np  
import matplotlib.pyplot as plt  
from sklearn.svm import SVC  
from sklearn.datasets import make_moons, make_circles  
from sklearn.preprocessing import StandardScaler  
from sklearn.pipeline import Pipeline  
  
# 데이터 생성  
X, y = make_moons(noise=0.1, random_state=42)  
  
# 커널 함수 비교  
kernels = ['linear', 'poly', 'rbf']  
titles = ['Linear Kernel', 'Polynomial Kernel', 'Gaussian RBF Kernel']  
  
plt.figure(figsize=(12, 4))  
  
for i, kernel in enumerate(kernels):  
    clf = Pipeline([  
        ('scaler', StandardScaler()),  
        ('svc', SVC(kernel=kernel, gamma='auto'))  
    ])  
    clf.fit(X, y)  
      
    plt.subplot(1, 3, i+1)  
    plt.title(titles[i])  
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis', edgecolors='k')  
      
  
    xx, yy = np.meshgrid(np.linspace(X[:, 0].min()-1, X[:, 0].max()+1, 100),  
                         np.linspace(X[:, 1].min()-1, X[:, 1].max()+1, 100))  
    Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])  
    Z = Z.reshape(xx.shape)  
    plt.contour(xx, yy, Z, levels=[0], linewidths=2, colors='red')  
    plt.contourf(xx, yy, Z, alpha=0.3, cmap='viridis')  
  
plt.tight_layout()  
plt.show()

Read more

Chi-Square Test와 T-Test는 데이터 특성에 따라 선택하여 사용합니다.

Chi-Square Test와 T-Test는 데이터 특성에 따라 선택하여 사용합니다.

Chi-Square Test가 A/B/C Test에서 사용되는 구체적인 경우 * 범주형 데이터 분석: 각 그룹에서 클릭하거나 전환된 사람의 수를 비교할 때, 이 데이터를 범주형 변수로 간주하고 Chi-Square Test를 적용할 수 있습니다. * 다중 그룹 비교: A/B/C 테스트에서 세 개 이상의 그룹을 비교해야 할 때, Chi-Square Test는 모든 그룹 간의 독립성을

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

배경 * 아래 글을 DANBI에서 보다가 더 알아보게 되었습니다. OLS를 떠받치는 몇 개의 기둥이 있는데 그중 실용적으로 가장 중요한 것이 일치성(consistency)다. 쉽게 말해서 OLS를 통해 도출된 추정량이 있을 때 샘플사이즈가 커지면서 이 값이 참 값으로 접근한다는 것이다. 일치성이 충족되면 우리는 적당하게 큰 표본에 대해서 추정치가 좋은 속성을 지니고 있다고

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

사람들이 AI가 필요하다고 생각하는 시점 저 판사를 얼른 AI로 교체해야 한다. 유튜브에서 뉴스를 보다 보면 정말 많이 보이는 덧글입니다. 이러한 내용의 덧글이 달릴 때마다, 정말 많은 사람들이 공감을 표하곤 합니다. 왜 이렇게 사람들은 이러한 주장에 공감을 표하는 것일까? AI는 시킨대로 하기 때문에 공정하다는 인식 여러 이유가 있겠지만, 사람들은 아마 AI가

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

1. BG/NBD 모델이란? * BG/NBD(Beta-Geometric/Negative Binomial Distribution) 모델은 **고객의 생애 가치(Customer Lifetime Value, CLV)**를 추정하는 데 사용되는 확률적 모델입니다. * 특히 고객이 반복 구매를 할지, 아니면 더 이상 활동하지 않을지를 추정하는 데 유용합니다. 이 모델은 고객의 구매 행태를 두 가지 중요한 개념으로 나눕니다: * 고객은 활성(active)