# [AI] 지도학습, 비지도학습, 준지도학습, 자기지도학습, 강화학습

## 지도학습, 비지도학습, 준지도학습, 자기지도학습, 강화학습

---

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160806_jviSrd4o14v9T7629V?q=80&s=1280x180&t=outside&f=webp)

- **지도학습 Supervised Learning**: 정답(레이블)을 알고 있는 상태에서 학습

- **비지도학습 Unsupervised Learning**: 정답을 모르는 상태에서 새로운 의미나, 관계 찾기

- **준지도학습 Semi-Supervised Learning**: 지도학습 + 비지도학습 (일부 데이터에만 정답)

- **강화학습 Reinforcement Learning**: 정답을 맞춘 경우 보상(가중치), 보상이 높은 것을 더 배우려고 한다 → 지도학습과 유사하지만, 더 좋은 답을 찾아가는 방식

- **자기지도학습 Self-Supervised Learning**: 레이블이 없는 데이터를 학습할 수 있음

## 지도학습

---

### 분류 Classification

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160820_RhySMFpNEWQgtnbkpD?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160826_53sQJJ0q7SvmfBCB34?q=80&s=1280x180&t=outside&f=webp)

- 데이터를 기반으로 새로운 샘플의 ‘범주형 클래스 레이블’ 예측이 목표

- **이진 분류(Binary classification)**: 클래스 레이블 종류가 두 개인 경우

- **다중 클래스 분류 (multi-class classification)**: 클래스 레이블 종류가 세 개 이상)

**데이터 값을 그대로 사용: 규칙(Rule)을 이용한 알고리즘**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160843_ZVSzqTL82aNIkX9GsV?q=80&s=1280x180&t=outside&f=webp)

- **의사결정나무(Decision Tree)**: <예/아니오>라고 대답할 수 있는 질문 (규칙)을 이어 가며 데이터를 구분해 타깃을 학습

**거리(Distance)를 이용한 알고리즘**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160853_g9COilArPR7QPYw9hd?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160901_KdRaLnkauuo1cBGfMk?q=80&s=1280x180&t=outside&f=webp)

- **KNN (K-Nearest Neighbour):** k개의 근접한 이웃으로 데이터를 분류

- **서포트 벡터 머신 (support Vectror Machine; SVM):** 분류를 위해 기준선을 정의

**참고) K-means:**

- 비지도 학습 알고리즘,

- k개 클러스터로 비슷한 값끼리 군집

- 거리를 이용

**경사하강법을 이용한 알고리즘**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160925_AKIRgT13jmbYuUggug?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160930_x63vD0WmGhpkkDeWRl?q=80&s=1280x180&t=outside&f=webp)

- **선형 회귀**

- **로지스틱회귀**

### 회귀 Regression

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/160949_qlm1jjbaWcsM5UiMJo?q=80&s=1280x180&t=outside&f=webp)

- 연속적인 출력 값에 대한 예측이 목표

- ex) 어떤 사람의 나이, 농작물의 수확량, 주식 가격 등 출력 없이 연속성을 가짐

- ex) 시험 점수 예측, 주식 가격 예측, 부동산 가격 예측

Y = W_1 * X_1 + W_2 * X_2 + W_3 * X_3 + ... + W_n * X_n 

- Y: 종속변수, 즉 아파트 가격

- $X_1, X_2, …, X_n$: 방 개수, 방 크기, 주변 학군 등의 독립변수

- $W_1, W_2, …, W_n$: 독립변수의 값에 영향을 미치는 **회귀 계수 Regression coefficients**

- 회귀 예측의 핵심은 최적의 회귀 계수를 찾아내는 것

**회귀의 종류**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161038_HnS09DmTvRxnWQ6sDA?q=80&s=1280x180&t=outside&f=webp)

- 독립변수의 개수에 따라 단일 회귀와 다중 회귀로 나뉜다.

- 단일 회귀: 독립 변수 1개, **선형 회귀**

- 다중 회귀: 독립 변수 여러 개, **비선형 회귀**

### 지도학습 머신러닝 알고리즘

- **로지스틱 회귀 (Logistic Regression):** 일반화 선형 모형 (Generalized Linear Model)에 속하는 모형으로, 데이터가 어떤 범주에 속할지 시그모이드(Segmoid)함수를 사용해 확률을 계산하고, 이 확률은 주어진 임계값에 따라 범주로 분류

- **서포트 벡터 머신 (Support Vector Machine)**: 데이터 분류 목적으로, 데이터가 분류된 각 범주에서 최대한 멀리 떨어져있는 비선형 결정 경계(Decision Boundary)를 정의하는 모델

- **k-최근접 이웃 (k-Nearest Neighbors):** 데이터 간의 거리를 이용해 k개의 근접한 이웃으로 데이터를 분류

- **선형 회귀 (Linear Regression)**: 종속변수 Y에 한 개 이상의 독립변수 X와의 선형 상관 관계를 찾는 통계 모형

- **서포트 벡터 회귀(Support Vector Regression)**: 서포트 벡터 머신 알고리즘이 종속변수 Y가 연속형인 경우 사용되었을 때를 말함

- **결정트리 (Decision Tree)**

    - **분류트리:** 의사 결정 규칙 (Decision Tree)으로 데이터를 소집단으로 분류하는 알고리즘

    - **회귀트리 (Regression Tree)**: 의사 결정 규칙 (Decision Tree)으로 데이터를 예측하는 알고리즘

- **앙상블 (Ensemble)**

- **신경망 (Neural Networks)**

### 딥러닝 지도학습

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161053_0EnIi7QgaKJCJZHvpP?q=80&s=1280x180&t=outside&f=webp)

- **분류 Classification**: 사진에 나와있는 동물이 어떤 동물인지 분류

- **위치 추정 Localization**: 박스의 중심 좌표(x, y), 높이(h), 너비(w) 필요 + 박스 레이블링

- **객체 탐지 Object Detection**: 한 이미지 내 여러 객체에 대해 분류와 위치 추정 수행

- **분할 Segmentation**: 이미지의 모든 픽셀을 대상으로 각 픽셀이 어떤 클래스에 해당하는지 판단

- **인스턴스 분할 Instance Segmentation**: 같은 클래스의 서로 다른 객체도 구분

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161102_6Kk4QN9MvOfJGhwJSC?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161107_0f858VQBFoakon2zIM?q=80&s=1280x180&t=outside&f=webp)

- **자세 추정 Posture Estimation, 얼굴 랜드마크 탐지 Facial Landmark Detection**: 사람의 주요 상체 부위의 좌표를 탐지

## 비지도학습

---

- 비지도학습은 원하는 출력 없이 입력 데이터를 사용 (정답이 없다.)

- 입력 데이터의 구조나 패턴을 찾는 것이 목표

- 미리 정해진 결과가 없고, 방대한 양의 데이터에서 유용한 통찰력을 얻을 수 있다.

- 탐험적이다. 데이터들의 특성을 파악하는 것이 중요하다.

- 비지도 학습 알고리즘은 크게 **클러스터링(Clustering), 차원 축소(Dimentionality Reduction), 연관 규칙 (Association Rules)**으로 구분

### 군집화 Clustering

- 공간상에서 서로 가깝고 유사한 데이터를 클러스터로 그룹(Group)화

- 즉, 비슷한 것들을 찾아서 그룹을 만드는 것

- 레이블이 없는 데이터를 분류

- 비지도 분류라고도 함

- 같은 그룹 내에서는 유사성 가짐

- 다른 그룹 간에는 다른 성질을 가짐

- ex) 고객 분류, 유사 단어 및 이미지 군집화

**군집화 vs 분류**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161143_MiDkvudoBBhnShaBBG?q=80&s=1280x180&t=outside&f=webp)

- 전체 데이터를 비슷한 특성을 가진 것들끼리 일정한 그룹으로 나눔 → 군집화

- 데이터가 어떤 그룹에 들어가는지 판단 → 분류

### 연관 규칙 학습 Association Rule Learning

- 데이터에서 특성 간의 연관성이 있는 흥미로운 규칙을 찾는 방법

- 장바구니 학습이라고도 불림

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161152_F0b7Ngu1rCFMZCRnrH?q=80&s=1280x180&t=outside&f=webp)

데이터를 특성에 따라 그룹화 → **군집화**

연관된 특성을 그룹화 → **연관규칙**

### 차원축소 Dimensionality Reduction

- 고차원 데이터 (변수가 많은 데이터)를 중요한 정보는 유지하면서 더 작은 차원으로 압축

- 저장 공간을 줄이고 잡은(noise) 데이터를 제거해 알고리즘의 예측 성능을 높이는 것이 목표

- 과적합 해결, 모델 성능 향상

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161206_PJlZhzwwmdhBMUH9Jl?q=80&s=1280x180&t=outside&f=webp)

[8. 차원 축소 — 핸즈온 머신러닝(3판)](https://codingalzi.github.io/handson-ml3/dimensionality_reduction.html)

### 비지도학습 알고리즘

**클러스터링 (Clustering)**

- k-Means

- DBSCAN

- 계층 군집 분석 (Hierarchical Cluster Analysis)

- 이상치 탐지 (Outlier Defection), 특이값 탐지 (Novelity Detection)

**차원축소 (Dimensionality Reudction)**

- 주성분 분석 (Principal Component Analysis)

- 커널 PCA(Kernel PCA)

- t-SNE (t-Distributed Stochastic Neighbor Embedding)

**연관 규칙 (Association Rule Learning)**

- Apriori

- Eclat

## 자기지도학습

---

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161230_vUVkDoXgzeMeruOyWF?q=80&s=1280x180&t=outside&f=webp)

- **사전 학습 Pre-Training**: 실제 풀고자 하는 진짜 문제 대신 가짜 문제를 정의하여 해결 (레이블이 없는 데이터 활용)

- **미세 조정 Fine-Tuning**: 레이블이 있는 데이터를 이용하여 일반적인 지도 학습 방식으로 모델 조정

**Context Prediction**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161241_a9nNzA6oIJ7vtU3aKO?q=80&s=1280x180&t=outside&f=webp)

- 사전 학습 단계에서 이미지 구조 및 객체 간 위치를 학습

    - 이미지에서 무작위로 위치를 선정하여 특정 크기의 파란색 패치를 둔다

    - 파란색 패치 주변에 동일한 크기의 패치 배치

    - 모델이 파란색 패치와 주변 패치들의 상대적 위치 관계를 예측하도록 학습

- 레이블이 없는 데이터에도 적용 가능

- 파란색 패치의 위치를 임의로 선정 → 학습 데이터를 무한히 생성 가능

- 이미지의 픽셀값들이 무작위적이지 않고 일정한 패턴을 가진다는 사실을 활용한 방법

**Contrastive Learning**

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161257_EfJROLcPo3kUiAZnjj?q=80&s=1280x180&t=outside&f=webp)

- 이미지 간의 관계를 학습하는 자기 지도 학습 기법

    - 하나의 이미지에 서로 다른 두 가지 변형 (회전, 밝기 조절, 일부 잘라내는 등의 방법)

    - 변형된 이미지 쌍의 출처가 같은지 다른지 인식하도록 모델 학습

- 같은 이미지에서 변형된 쌍: 출력값을 서로 가깝게 만든다

- 서로 다른 이미지에서 변형된 쌍: 출력값을 서로 멀어지게 만든다

- 출처가 다르다면 당기고 Attract, 출처가 다르면 밀어내느 Repel 학습 방식

**자연어 처리**

- Open AI GPT: 단어를 예측하는 방식으로 학습

- Google BERT: 두 가지 방식을 동시에 사용

    - Masked Token Prediction: 문장에 빈칸을 만들고 빈칸에 알맞은 토큰 예측

    - Next Sentence Prediction: 두 문장이 연속된 문장인지 예측

## 강화학습

---

- 동적 환경과 함께 상호 작용하는 피드백 기반 학습 방법

- 에이전트(Agent)가 환경을 관찰하고, 행동(action)을 실행하고, 보상(reward) 또는 벌점(penalty)를 받음

- 정답에 대해 맞춘 경우 가중치(보상) → 가중치(보상)이 더 높은 것을 배우려고 한다.

- 에이전트는 이러한 피드백을 통해 자동으로 학습하고 성능을 향상시킨다.

- 어떤 지도가 없이 일정한 목표를 수행한다.

- 예) 체스 인공지능, 알파고

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161317_Dxv36bOMUXRS1ZNZD5?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161321_gG5jCGF5qlPQKxQb6B?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/161338_MdTGpmyC9zwhUeszsf?q=80&s=1280x180&t=outside&f=webp)

- **에이전트 agent**: 행동을 취하는 주체

- **행동 action**: 에이전트가 취할 수 있는 모든 행동

- **보상 reward**: 에이전트가 action에 따라 받게 되는 보상

- **환경 environment**: 강화 학습이 일어나는 무대 → action

- **상태 state**: 환경의 현재 상태

- **행동 가치 함수 Q**: 특정 state에서 특정 Action을 했을 떄 현재와 미래에 얻을 수 있는 Reward의 합의 끼댓값

- **에피소드 Episode**: 하나의 완전한 시행

### 심층 강화학습 Deep Reinforcement Learning

- Q값을 딥러닝을 통해 학습하는 것을 심층 강화학습이라고 한다

- **Q-Learning**: Episode 내에서 수 많은 Action을 수행하며 Q값을 반복적으로 업데이트, 최적의 행동 가치를 학습하는 방법 (State, Action, Reward, 다음 State의 정보로 Q값 갱신)

- **Exploration**: 기존에 학습하지 않은 새로운 방법을 찾는 것

- **Discount Factor** $\gamma$: Q값을 현재 시점을 가져올 때 곱하는 0과 1 사이의 값

    - 1에 가까울수록 미래의 보상을 중요하게

    - 여러 경로 중 Reward를 더 빠르게 얻을 수 있는 최단 경로를 선택

For the site tree, see the [root Markdown](https://slashpage.com/yerim-devnote.md).
