기계 학습(ML)에서는 다양한 모델들이 사용되며, 각 모델은 다른 알고리즘과 특성을 가지고 있습니다. 다음은 일반적으로 사용되는 몇 가지 ML 모델의 예시입니다.
선형 회귀(Linear Regression): 선형 관계를 모델링하여 연속적인 출력 값을 예측하는 회귀 문제에 사용됩니다. 최소제곱법을 사용하여 예측값과 실제값의 오차를 최소화하는 선형 함수를 찾습니다.
로지스틱 회귀(Logistic Regression): 이진 분류 문제에 사용되며, 입력 변수와 출력 변수 간의 로지스틱 함수를 통해 확률을 예측합니다. 경사 하강법 등의 최적화 알고리즘을 사용하여 모델을 학습시킵니다.
의사 결정 트리(Decision Tree): 데이터의 속성과 목표 변수 간의 의존 관계를 트리 구조로 모델링합니다. 데이터를 분할하는 규칙을 학습하여 예측을 수행하며, 분류와 회귀 문제에 모두 사용될 수 있습니다.
랜덤 포레스트(Random Forest): 여러 개의 의사 결정 트리를 조합한 앙상블 모델입니다. 각 트리의 예측 결과를 종합하여 더 정확한 예측을 수행할 수 있습니다. 과적합을 줄이고 안정성을 높이는 효과가 있습니다.
서포트 벡터 머신(Support Vector Machine, SVM): 분류 및 회귀 문제에 사용되며, 데이터를 고차원 공간으로 매핑하여 최적의 결정 경계를 찾습니다. 데이터를 가장 잘 분류하는 초평면을 찾는 최적화 문제로 변환하여 해결합니다.
신경망(Neural Network): 뉴런들의 계층적인 구조로 이루어진 모델입니다. 다층 퍼셉트론, 합성곱 신경망, 순환 신경망 등 다양한 유형의 신경망이 있으며, 다양한 복잡한 문제에 적용할 수 있습니다.
군집화(Clustering) 모델: 비지도 학습 알고리즘으로, 유사한 특성을 가진 데이터 포인트들을 그룹으로 나눕니다. K-평균 군집화, 계층적 군집화, DBSCAN 등이 있습니다.
나이브 베이즈(Naive Bayes): 베이즈 정리를 기반으로 하는 확률적 분류 모델입니다. 특성 간의 독립성을 가정하고, 각 클래스에 대한 사후 확률을 계산하여 분류를 수행합니다. 자연어 처리나 스팸 필터링 등에 자주 사용됩니다.
K-최근접 이웃(K-Nearest Neighbors, KNN): 데이터 포인트와 가장 가까운 이웃들의 레이블을 기반으로 분류나 회귀를 수행합니다. 거리 측정 방법과 이웃의 개수(K)를 설정하여 예측을 수행합니다.
신경망 기반 모델들:
합성곱 신경망(Convolutional Neural Network, CNN): 이미지 처리와 컴퓨터 비전에 특화된 신경망 구조입니다. 합성곱 계층과 풀링 계층을 이용하여 공간적인 구조를 파악하고 이미지 특징을 추출합니다.
순환 신경망(Recurrent Neural Network, RNN): 순차적인 데이터 처리에 특화된 신경망 구조입니다. 이전의 정보를 기억하고 현재 입력과 함께 처리하여 순차 데이터의 패턴을 학습합니다. 자연어 처리나 시계열 데이터에 유용합니다.
변환자(Transformer): 주로 자연어 처리에 사용되는 모델로, 어텐션 메커니즘을 활용하여 입력 시퀀스 간의 관계를 파악합니다. 번역, 요약, 감성 분석 등에 활용됩니다.
앙상블 모델(Ensemble): 여러 개의 개별 모델을 결합하여 예측을 수행하는 방법입니다. 랜덤 포레스트와 부스팅(Boosting) 알고리즘인 그래디언트 부스팅(Gradient Boosting)과 에이다부스트(AdaBoost) 등이 있습니다. 앙상블은 개별 모델의 예측을 종합하여 정확도를 향상시키고, 과적합을 줄이는 효과가 있습니다.
강화학습(Reinforcement Learning): 에이전트가 환경과 상호작용하며 보상을 최대화하는 방향으로 학습하는 방법입니다. 강화학습은 게임, 로봇 제어, 자율 주행 등의 문제에 활용되며, 상호작용을 통해 최적의 정책(policy)을 학습합니다.
서포트 벡터 회귀(Support Vector Regression, SVR): 회귀 문제에 사용되며, SVM의 아이디어를 회귀에 적용한 모델입니다. 데이터 포인트들 사이의 마진을 최대화하며 회귀 함수를 학습하여 예측을 수행합니다.
순서형 로지스틱 회귀(Ordinal Logistic Regression): 명목형 또는 서열형 타깃 변수가 있는 분류 문제에 사용됩니다. 로지스틱 회귀를 확장하여 다중 클래스 분류를 수행하는 모델입니다.
협업 필터링(Collaborative Filtering): 추천 시스템에 사용되는 모델로, 사용자의 과거 행동이나 다른 사용자의 행동을 기반으로 아이템을 추천합니다. 사용자-아이템 행렬이나 이웃 기반 협업 필터링 방법 등이 있습니다.
시계열 분석(Time Series Analysis): 시간에 따라 변화하는 데이터를 다루는 모델입니다. ARIMA(AutoRegressive Integrated Moving Average), LSTM(Long Short-Term Memory), Prophet 등이 있으며, 시계열 데이터의 패턴을 예측하거나 분석합니다.
베이지안 신경망(Bayesian Neural Network): 신경망에 베이지안 추론을 적용한 모델입니다. 가중치에 대한 사후 분포를 추정하여 예측 불확실성을 포함한 결과를 제공합니다.
변이형 오토인코더(Variational Autoencoder, VAE): 생성 모델로, 주어진 데이터의 잠재 변수를 학습하여 새로운 데이터를 생성하는 모델입니다. 데이터의 잠재적인 구조를 학습하고 다양한 샘플을 생성할 수 있습니다.
확률적 그래프 모델(Probabilistic Graphical Models): 변수들 사이의 의존 관계를 그래프로 표현하고 확률 모델을 구축하는 방법입니다. 베이지안 네트워크와 마코프 네트워크가 대표적인 예시입니다. 확률적 그래프 모델은 변수 간의 조건부 독립성을 활용하여 추론과 예측을 수행합니다.
DeepAR: 시계열 데이터에 대한 생성 모델로, LSTM 기반의 신경망 구조입니다. 다변량 시계열 데이터를 예측하고, 각 시점의 예측 분포를 출력하여 불확실성을 고려합니다.
주성분 분석(Principal Component Analysis, PCA): 데이터의 차원을 축소하는 기법으로, 고차원 데이터를 낮은 차원의 부분 공간으로 변환합니다. 데이터의 분산을 최대화하는 주성분들을 찾아 차원 축소 및 시각화, 노이즈 제거 등에 사용됩니다.
라이브러리/프레임워크 기반 모델들:
TensorFlow: 구글에서 개발한 오픈소스 머신러닝 라이브러리로, 신경망 모델을 구축하고 학습시키는 데에 많이 사용됩니다.
PyTorch: 토치(Torch) 기반의 오픈소스 머신러닝 라이브러리로, 딥러닝 모델을 쉽게 구축하고 학습시킬 수 있습니다.
Scikit-learn: 파이썬 기반의 머신러닝 라이브러리로, 다양한 머신러닝 알고리즘과 도구를 제공합니다. 데이터 전처리, 모델 학습, 평가 등 다양한 기능을 지원합니다.
배깅(Bagging)과 부스팅(Boosting) 알고리즘들: 앙상블 학습의 일종으로, 여러 개의 기본 모델을 조합하여 예측을 수행합니다.
AdaBoost: 약한 학습기(weak learner)를 순차적으로 학습시켜 가중치를 업데이트하며 예측을 수행하는 알고리즘입니다.
Gradient Boosting: 경사 하강법을 사용하여 이전 모델의 잔차를 예측하는 모델을 학습시키는 방식으로 예측 성능을 향상시킵니다. XGBoost, LightGBM, CatBoost 등이 대표적인 Gradient Boosting 기반 모델입니다.
이 외에도 다양한 ML 모델이 존재합니다. 선택하는 모델은 문제의 특성, 데이터의 특징, 성능 요구사항 등을 고려하여 결정해야 합니다.
'Machine Learning' 카테고리의 다른 글
generalization error 란 무엇인가? (0) | 2023.06.03 |
---|---|
머신러닝 모델의 성능평가 방법들 (0) | 2023.05.25 |
한분야의 전문가가 Data Science를 배워야 하는 이유 (0) | 2023.05.24 |
Data Science의 대표적인 도구들은? (0) | 2023.05.24 |
labelling 되어있지 않은 대량의 data를 해석하는 방법 (0) | 2023.05.24 |