통계/머신러닝 MachineLearning

[ML] 지도학습, 비지도학습, 강화학습

sseozytank 2022. 11. 28.

출처 : https://busy.org/@urobotics/5bksow

머신러닝은 크게 지도 학습 / 비지도 학습/ 강화 학습으로 나눌 수 있다. 이번 포스팅에서는 지도학습, 비지도학습, 강화학습에 대한 개념과 차이, 해당 알고리즘에 대해 간략하게 소개하겠습니다. 

지도학습 

✔️정답이 있는 데이터를 활용해 데이터를 학습

https://www.thebaleun.com/

위 그림처럼 토끼 사진에 토끼라고 라벨링된 데이터와, 판다사진에 판다라벨링이 되어있는 데이터를 학습시키면, 토끼사진을 넣었을 때 토끼라는 정답을 알려주는 것이 지도학습이다.   

 

 

✔️ 종류 

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)

: 종속 변수와 하나 이상의 독립 변수 간의 미래 사건을 예측하는 방법

: 수치적 가치를 추정한다는 측면에서 관측치가 어느 범주에 속하는지를 식별하는 분류 모델과 다르다. 

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=istech7&logNo=50152615207

 


지도학습 

 

✔️정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화 하여 새로운 데이터에 대한 결과를 예측하는 방법

https://www.thebaleun.com/

 

 

 

 

위 그림처럼 정답이 없이 섞여있는 토끼와 판다 사진을 모델 스스로 데이터의 특성을 파악하여 비슷한 것 끼리 묶어준다. 

 

✔️ 종류
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://opentutorials.org/course/4548/28949

 

알파고는 바둑을 두는 방법을 학습하기 위해 먼저 대량의 과거 바둑 기보를 통해 인간 바둑 기사들을 모방 학습하고,  그 이후에는 자기 자신을 상대로 계속해서 시행착오를 거쳐 경기력을 개선해나간다. 

 

 


출처 

 

https://iphoong.tistory.com/6

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/

https://gaussian37.github.io/ml-concept-t_sne/

https://brunch.co.kr/@namujini/22

댓글