머신러닝은 크게 지도 학습 / 비지도 학습/ 강화 학습으로 나눌 수 있다. 이번 포스팅에서는 지도학습, 비지도학습, 강화학습에 대한 개념과 차이, 해당 알고리즘에 대해 간략하게 소개하겠습니다.
지도학습
✔️정답이 있는 데이터를 활용해 데이터를 학습
위 그림처럼 토끼 사진에 토끼라고 라벨링된 데이터와, 판다사진에 판다라벨링이 되어있는 데이터를 학습시키면, 토끼사진을 넣었을 때 토끼라는 정답을 알려주는 것이 지도학습이다.
✔️ 종류
1) 분류 (Classification)
: 주어진 데이터를 클래스 별로 구별해 내는 과정
: 데이터와 데이터의 레이블 값을 학습시키고, 데이터가 주어졌을 때 학습된 모델을 통해 어느 범주에 속한 데이터인지 판단하고 예측
1️⃣ 로지스틱 회귀
: 연속형 변수를 예측하는 선형 회귀와 다르게, 범주형 변수를 예측)
2️⃣ 나이브 베이즈
: 미리 발생한 사건들을 학습시킨 모델을 만든 후 새로운 데이터가 들어오면 이전의 사건들을 기반으로 이 데이터가 어떤 행동을 할 것인지 예측하는 원리
3️⃣ 결정 트리 (Decision Tree)
: 데이터가 주어졌을 때 각 노드의 단계를 거치며 분류를 하게 되며 마지막 노드에 도달했을 때 그 노드의 값으로 데이터의 클래스를 예측하는 방식
4️⃣ 서포트 벡터 머신(SVM)
: 클래스를 분류할 수 있는 다양한 경계선이 존재하는데, 그 중 최적의 라인을 찾아내는 원리
5️⃣ K-최소 근접 알고리즘 (K-Nearest Neighbor , KNN)
: 데이터들 간의 유사한 특징을 기준으로 분류하는 알고리즘. 주어진 데이터의 주변 이웃 데이터들의 특징을 파악하고 가장 유사한 데이터 그룹에 포함되도록 하는 방식
6️⃣ 신경망 (Deep Neural Network)
: Input layer를 통해 학습할 데이터를 입력하고 여러 층의 Hidden layer를 거쳐 Output layer로 결과를 도출한다. 이 때 output 값으로 얻은 예측 값과 실제 값의 차이를 계산하여 신경망의 가중치(Weight) 값을 조정하여 학습을 반복한다.
7️⃣ 앙상블 학습 (Ensemble Learning)
: 여러개의 분류기에서 각각 예측을 수행하고, 그 예측을 결합해서 더 나은 예측 결과를 도출해내는 방법
: 보팅, 배깅, 부스팅, 스태킹 등 다양한 방식 존재 (-> 추후 포스팅 예정)
2) 회귀 (Regression)
: 종속 변수와 하나 이상의 독립 변수 간의 미래 사건을 예측하는 방법
: 수치적 가치를 추정한다는 측면에서 관측치가 어느 범주에 속하는지를 식별하는 분류 모델과 다르다.
비지도학습
✔️정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화 하여 새로운 데이터에 대한 결과를 예측하는 방법
위 그림처럼 정답이 없이 섞여있는 토끼와 판다 사진을 모델 스스로 데이터의 특성을 파악하여 비슷한 것 끼리 묶어준다.
✔️ 종류
1) 군집 (Clustering)
- 각 그룹을 더 작은 그룹으로 세분화
1️⃣ K-means
: 데이터를 K개의 군집으로 묶는 알고리즘
: K-NN 알고리즘과 K개의 점을 지정하여 거리를 기반으로 구현되는 거리기반 분석 알고리즘이라는 점이 유사
2️⃣ 계층 군집 분석 (HCA, Hierarchical Cluster Analysis)
: KNN 알고리즘과 동일한 거리 기반 모델로, 거리가 가까운관측치들은 비슷한 특징을 가질 것이라는 전제하에 클러스터링을 수행하는 기법
: 설명변수를 통한 예측 목적이 아닌 데이터 축소 목적을 가짐
: 군집의 개수가 정해지지 않았을 때 사용 (군집의 개수를 결정하기 위해서도 사용)
3️⃣ 기댓값 최대화 (Expectation Maximization)
: 단순히 어떤 분포 모델을 주어진 데이터에 최대한 가깝게 피팅하는 것 뿐만 아니라 데이터의 잠재적인 표현 또한 고려하여 모델을 피팅
: 관측되지 않는 잠재변수에 의존하는 확률 모델에서 최대가능도나 최대사후확률을 갖는 매개변수를 찾는 반복적인 알고리즘
2) 시각화 (Visualization)와 차원 축소 (Dimensionality Reduction)
- 시각화 : 레이블이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현을 만들어줌
- 차원축소 : 너무 많은 정보를 잃지 않으면서 데이터를 간소화
1️⃣ 주성분 분석 (PCA, Principal Component Analysis)
: 가장 널리 사용되는 차원 축소 기법 중 하나로, 원 데이터의 분포를 최대한 보존하면서 고차원 공간의 데이터들을 저차원 공간으로 변화
: 주성분이라 함은, 그 방향으로 데이터들의 분산이 가장 큰 방향벡터
2️⃣ 커널PCA (Kernel PCA)
:비선형 함수인 커널함수를 이용하여 비선형 데이터를 고차원 공간으로 매칭
3️⃣ 지역적 선형 임베딩(LLE, Locally-Linear Embedding)
: PCA와 다차원 척도법은 데이터가 비선형 구조를 가지고 있을 때에는 구조를 파악하지 못하여 최적점을 찾아내지 못한다는 단점
: 비선형 구조를 가진 데이터의 차원 축소방법
: 고유벡터를 사용하는 방법으로 다루기가 쉽고, 지역 최적점에 빠지지 않을 수 있다는 장점
4️⃣ t-SNE (t-distributed Stochastic Neighbor Embedding)
: 높은 차원의 복잡한 데이터를 2차원에 차원 축소하는 방법
: 낮은 차원 공간의 시각화에 주로 사용하며 차원 축소할 때는 비슷한 구조끼리 데이터를 정리한 상태이므로 데이터 구조를 이해하는 데 도움을 줍니다.
3) 연관 규칙 학습 (Association Rule Learning)
- 대량의 데이터에서 특성 간의 흥미로운 관계를 찾는다.
1️⃣ 어프라이어리 (Apriori)
: 어떤 두 아이템 집합이 번번히 발생하는가를 알려주는 일련의 규칙들을 생성하는 알고리즘
2️⃣ 이클렛(Eclat)
강화학습
✔️강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 알파고, 각종 게임등이 있다.
알파고는 바둑을 두는 방법을 학습하기 위해 먼저 대량의 과거 바둑 기보를 통해 인간 바둑 기사들을 모방 학습하고, 그 이후에는 자기 자신을 상대로 계속해서 시행착오를 거쳐 경기력을 개선해나간다.
출처
https://blog.naver.com/mhn_noonai/222285873816
https://jiwonkkim.github.io/probability%20and%20statistics/2021/01/07/pas_em/
https://yngie-c.github.io/machine%20learning/2020/10/06/isomap_and_lle/
'통계 > 머신러닝 MachineLearning' 카테고리의 다른 글
[ML] 주성분 분석 PCA와 차원의 저주 (1) | 2023.11.20 |
---|---|
[ML] ChatGPT로 알아보는 LightGBM (0) | 2023.05.12 |
[ML] Target Leakage / Data Leakage (데이터 누수) (0) | 2023.03.03 |
[ML] 회귀 모델 성능 평가 지표 개념과 파이썬 코드 (MAE,MSE,RMSE,R2,MAPE,MPE) (0) | 2022.10.13 |
댓글