반응형

Machine Learning 75

[Machine Learning][Metrics] Loss Function(손실 함수) / Cost Function (비용함수)

Loss Function (손실 함수) / Cost Function (비용함수) 통계학, 경제학 등에서 널리 쓰이는 함수로 머신러닝에서도 손실함수는 예측값과 실제값에 대한 오차를 줄이는 데에 유용하게 사용 측정한 데이터를 토대로 산출한 모델의 출력값(예측값)과 정답(실제값)의 오차를 정의하는 함수 신경망을 학습할 때, 학습이 잘 되고 있는지 평가하는 하나의 지표로 사용 Cross-Entropy 라고도 한다. 손실함수(Loss Function): 한 개의 데이터 포인트에서 나온 오차를 최소화하기 위해 정의되는 함수 비용함수(Cost Function): 모든 오차를 일반적으로 최소화하기 위해 정의되는 함수 목적함수(Objective Function): 어떠한 값을 최대화 혹은 최소화 시키기 위해 정의되는 함..

Data Mining (데이터 마이닝)

Data Mining (데이터 마이닝) 다양한 관점에서 데이터를 분석해 의미를 도출 (데이터의 특징을 알아내는 것이 중점) 데이터를 탐색하고 분석하여 의미 있는 패턴이나 규칙을 발견하는 것 일반적으로 데이터 웨어하우스나 연결된 데이터 세트 컬렉션 등 축적된 데이터에서 유용한 정보를 추출하는 과정 보유한 데이터를 다양한 관점에서 분석하고, 그 결과를 유용한 정보로 조합하는 일 방대한 데이터 속에 숨어있던 패턴과 상관성을 통계적 수법들로 식별하여 가치를 부여 숫자가 아닌 데이터도 처리한다는 점에서 통계처리와 구분 데이터 추출 → 데이터 정제 → 데이터 변경 → 데이터 분석 → 데이터 해석 → 보고서 작성 CRISP- DM (Cross-Industry Standard Process -Data Mining) B..

[Unsupervised Learning][Clustering] K-means (K 평균)

K-means (K 평균) 데이터 간의 거리를 사용해 가까운 거리에 있는 데이터끼리 하나의 클래스로 묶는 알고리즘 거리를 계산하기 위해 데이터는 수치화된 데이터야 함 데이터를 k개의 클러스터로 분류 1. 사용자로부터 입력받은 k의 값에 따라, 임의로 클러스터 중심(centroid) k개를 설정한다. 2. k개의 클러스터 중심으로부터 모든 데이터가 얼마나 떨어져 있는지 계산한 후에, 가장 가까운 클러스터 중심을 각 데이터의 클러스터로 정한다. 3. 각 클러스터에 속하는 데이터들의 평균을 계산해서 클러스터 중심을 옮겨준다. 4. 보정된 클러스터 중심을 기준으로 2, 3단계를 반복한다. 5. 더이상 클러스터 중심이 이동하지 않으면 알고리즘을 종료한다. 장점 시간 복잡도가 O(n)으로 빠른 편 이해하기 쉽고 구..

[Supervised Learning][Classification] Naïve Bayes

나이브 베이즈 (Naïve Bayes) 나이브 베이즈 분류 알고리즘은 데이터를 나이브(단순)하게 독립적인 사건으로 가정하고, 이 독립 사건들을 베이즈 이론에 대입시켜 가장 높은 확률의 레이블로 분류를 실행하는 알고리즘 Bayes' theorem (베이즈 정리) 어떤 사건이 서로 배반하는 원인 둘에 의해 일어난다고 할 때 실제 사건이 일어났을 때 이것이 두 원인 중 하나일 확률을 구하는 정리 조건부 확률(사후 확률)을 구하는 것을 말하며, 어떤 사건이 일어난 상황에서, 그 사건이 일어난 후 앞으로 일어나게 될 다른 사건의 가능성을 구하는 것. 즉, 기존 사건들의 확률(사전 확률)을 알고 있다면, 어떤 사건 이후의 각 원인들의 조건부 확률을 알 수 있다 단, 기존 사건들의 확률을 알지 못하다면 베이즈 정리는..

[Machine Learning][Model Performance Measure] Precision, Recall, Accuracy, F1 score, FPR, ROC curve, AUC

Classification Performance Measure Confusion Matrix (Binary Classification) Confusion Matrix (Multi-Class Classification) True Positive(TP) 실제 True인 정답을 True라고 예측 (정답) 맞는 것을 올바르게 예측한 것 True Negative(TN) 실제 False인 정답을 False라고 예측 (정답) 틀린 것을 올바르게 예측한 것 False Positive(FP) 실제 False인 정답을 True라고 예측 (오답) 틀린 것을 맞다고 잘못 예측한 것 False Negative(FN) 실제 True인 정답을 False라고 예측 (오답) 맞는 것을 틀렸다고 잘못 예측한 것 Precision(정밀도..

[Supervised Learning][Regression] Ridge Regression, Lasso Regression

Ridge Regression 릿지도 회귀를 위한 선형 모델 최소 제곱법에서 사용한 것과 예측 함수를 사용. 단, 가중치의 절대값을 가능한 작게 만드는 것이 목적 → 규제: 과대 적합이 되지 않도록 모델을 강제로 제한 L2규제, 계수의 L2노름의 제곱을 패널티로 적용 ※ 과대적합(Overfitting) 가진 정보를 모두 사용해서 너무 복잡한 모델을 만드는 것 ※ 과소적합(Underfitting) 너무 간단한 모델이 선택되는 것 모델이 너무 간단해서 데이터의 면면과 다양성을 잡아내지 못하고 훈련 세트에도 잘 맞지 않는 경우 Lasso Regression L1규제를 사용. 계수의 절대 값의 합을 패널티로 사용 일반적으로 릿지 회귀를 선호하지만 특성이 많고 그 중 일부분만 중요하다면 라쏘가 좋은 선택일 수 있다.

[Unsupervised Learning][Clustering] DBSCAN

DBSCAN(Density-based Spatial Clustering of Application with Noise) data의 분포가 세밀하게 몰려 있어서 밀도가 높은 부분을 중심으로 클러스터링을 하는 방식 어떠한 점을 기준으로 반경 ε 내에 점이 n개 이상 있으면 하나의 군집으로 인식 밀도 기반 클러스터링 비선형 클러스터의 군집이나 다양한 크기를 갖는 공간 데이터를 보다 효과적으로 군집하기 위해 이웃한 개체와의 밀도를 계산하여 군집하는 기법 K-Means와 같이 군집 이전에 클러스터의 개수가 필요하지 않고 잡음에 대한 강인성이 높기 때문에 현재까지도 다양한 분야에서 활용 Algorithm eps-neighbors와 minPts를 사용하여 군집을 구성 Eps(ε) : 클러스터에 이웃을 포함할 수 있는..

[Machine Learning] 차원축소 (Dimensionality Reduction)

차원축소 (Dimensionality Reduction) 가지고 있는 방대한 양의 데이터에서 필요한 특성만 추출하는 방법 너무 많은 정보를 잃지 않으면서 데이터를 간소화 새로운 데이터를 잘 예측해주는 '설명력'있는 모델을 구현하기 위해 데이터의 특성을 잘 설명해주는 중요한 차원들만 골라주는 작업 차원축소를 통해 중요한 특징들만 골라 어떻게 분포하고 있는지 대략적으로 확인 모델이 복잡해질수록 필요한 연산량이 많이지기 때문에 시간이 오래 걸리나, 차원축소를 통해 필요한 특징들만 골라내서 연산도 가볍고 데이터 저장공간 확보도 용이 PCA (주성분 분석, Principal Component Analysis) 차원축소의 가장 대표적인 알고리즘 분산이 최대인 축을 찾고 이 축과 직교이면서 분산이 최대인 두번째 축을..

[Machine Learning] Tensorflow GPU

NVIDIA Graphic Card Driver 장착된 그래픽 카드에 맞춰 그래픽카드 드라이브 설치 www.nvidia.co.kr/Download/Find.aspx?lang=kr NVIDIA Driver 다운로드 - 고급 검색 SD Studio 드라이버 Studio 드라이버는 핵심 주요 크리에이티브 애플리케이션에 최상의 경험을 제공합니다. NVIDIA는 최고의 크리에이티브한 애플리케이션에 중점을 둔 광범위한 테스트를 시행하며, www.nvidia.co.kr 호환되는 CUDA와 cuDNN 버전은 아래 링크에서 확인할 수 있다. Windows: https://www.tensorflow.org/install/source_windows#tested_build_configurations Mac / Linux:ht..

[Supervised Learning][Classification] SVM(Support Vector Machine)

SVM(Support Vector Machine) 각 훈련 데이터 포인트들의 클래스 결정 경계(decision boundary)를 구분하는 것을 학습 Support Vector: 두 클래스 사이의 경계에 위치한 데이터 포인터 새로운 데이터 포인트에 대해 예측할 때는 데이터 포인트와 각 서포트 벡터와의 거리를 측정 서로 다른 클래스를 지닌 데이터 사이의 간격이 최대가 되는 선이나 평면을 찾아 이를 기준으로 각 데이터를 분류하는 모델 데이터 사이에 존재하는 여백을 최대화, 일반화하여 성능을 극대화 Margin 서포트 벡터와 결정 경계 사이의 거리 SVM의 목표는 마진을 최대로 하는 결정 경계를 찾는 것 Decision boundary(결정 경계): 서로 다른 분류값을 결정하는 경계 데이터의 벡터 공간을 N차..

[Supervised Learning] Decision Tree

Decision Tree (결정 트리) 분류와 회귀 문제에 널리 사용하는 모델 결정에 다다르기 위해 예/아니오 질문을 이어 나가면서 학습 결정 트리의 학습은 정답에 가장 빨리 도달하는 예/아니오 질문(테스트) 목록을 학습한다는 뜻 트리 만들기는 모든 리프 노드가 순수 노드가 될 때까지 진행 모델이 매우 복잡해지고 훈련 데이터에 과대 적합(overfitting)됨 적절한 리프 노드의 샘플 개수와 트리의 깊이에 제한을 둬서 과대 적합 방지해야 함 과대 적합(overfitting)을 막기 위해 사전 가지치기(pre-pruning)와 데이터 포인트가 적은 노드를 삭제하거나 병합하는 방법 사용 장점 수학적인 지식이 없어도 결과를 해석하고 이해하기 쉽다 수치 데이터 및 범주 데이터에 모두 사용 가능하다 단점 ove..

[Supervised Learning][Regression] Linear Regression

Linear Model 입력 특성에 대한 선형 함수를 만들어 예측을 수행 특성 개수: p + 1 Linear Regression 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석 기법 선형 예측 함수를 사용해 회귀식을 모델링하고 알려지지 않은 파라미더를 데이터로부터 추정 회귀식을 선형 모델이라고 함 >> y가 없는 x값에 대해 y를 예측 x와 y의 관계를 정량화 Simple Linear Regression (단순 선형 회귀) 1개의 설명 변수에 기반 (독립변수 x가 1개) Multiple Lineare Regression (다중 선형 회귀) 둘 이상의 설명 변수에 기반 (독립 변수 x가 2개 이상) 여러 독립 변수에 의해 영향을 받는 경우로 2개의 독립 변수면 그래프는..

[Supervised Learning][Classification] KNN(K-Nearest Neighbor)

k-최근접 이웃(K-Nearest Neighbor, KNN) 가장 간단한 머신러닝 알고리즘 장점 구현이 쉽다 알고리즘을 이해하기 쉽다 수학적으로 거리를 계산하는 방법만 알면 이해하기가 쉽다 숫자로 구분된 속성에 우수한 성능을 보인다. 별도의 모델 학습이 필요 없다. Hyper-parameter가 적다 단점 예측 속도가 느리다 하나의 데이터를 예측할 때마다 전체 데이터와의 거리를 계산해야 한다 메모리를 많이 사용한다 노이즈 데이터(수집된 데이터가 참값만 가지고 있지 않을 경우)에 예민하다 예측값이 편향될 수 있다 학습된 모델이 아닌 가까운 이웃을 통해 예측하기 때문에 예측값이 틀릴 가능성이 상대적으로 높아진다 가장 가까운 훈련 데이터 포인트 하나를 최근접 이웃으로 찾아 예측하는 방법 숫자 k와 거리 측정 ..

[Machine Learning] Transfer Learning

Transfer Learning 학습 데이터가 부족한 분야의 모델 구축을 위해 데이터가 풍부한 분야에서 훈련된 모델을 재사용하는 학습 기법 특정한 task(classfication, detection, segmentation 등)에 대하여 학습된 딥러닝 모델을 다른 task로 transfer하여 해당 모델을 사후적으로 학습하는 개념 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용 이미 학습된 모델의 weight들을 transfer하여 자신의 model에 맞게 학습 시키는 방법 기존의 만들어진 모델을 사용하여 새로운 모델을 만들 시 학습을 빠르게 하며, 예측을 더 높이는 방법 적은 데이터만을 학습시킬 경우 overfitting 가능성 증가 많은 da..

728x90
반응형