채니의 개발일기

머신러닝 분류(지도학습,비지도학습, 자기지도학습,강화학습) 본문

인공지능/인공지능 기초

머신러닝 분류(지도학습,비지도학습, 자기지도학습,강화학습)

윤채니챈 2023. 10. 23. 23:52
728x90
반응형

지도학습 vs 비지도학습 vs 자기지도학습 vs 강화학습

 


지도학습 (Supervised Learining)

: 기계학습의 한 방법으로, 입력값과 그에 상응하는 출력값(정답 레이블)을 포함하는 학습 데이터를 사용하여 모델을 학습시키는 방법

: 학습과정에서 모델은 입력값과 출력값 사이의 관계를 학습하게 되며, 이를 통해 새로운 이볅값에 대한 예측을 수행할 수 있게 된다.

 

1. 정답(뭐가 출력돼야 할지)를 알 고 있다. 

ex) 강아지사진과 고양이 사진을 입력값으로 사용할 때  CNN모델을 넣으면 강아지면 1, 고양이면 0을 출력한다. 

2. 지도학습의 예)

  - 회귀(retression) : 회귀는 연속적인 값을 예측한다. 예를들어, 집의 크기, 위치, 방의 수등의 특징을 기반으로 집의 가격을 예측하는 문제는 회귀문제이다. 

  - 분류(Classification) : 분류는 주어진 입력밧을 두 개 이상의 클래스 중 하나로 분류하는 문제에 사용된다. 위의 강아 고양이 분류 문제의 예이다.

 


비지도학습 

 

: 정답을 모른다.

: 학습 데이터에 정답 레이블이 포함되어 있지 안는 방법으로 데이터의 숨겨진 패턴,구조,관계등을 찾아내는데 중점을 둔다. 

 

1. 군집화(Clustering)

-  군집화는 비슷한 특성을 가진 데이터를 같은 그룹으로 묶는 방법

- 예) 몸무게와 키의 입력값을 기반으로 사람들을 여러 그룹으로 분류하는것. 이때, 각 그룹은 비슷한 몸무게와 키를 가진 사람들로 구성된다.
- 대표적인 알고리즘 :  ex)k-means, DBSCAN, ... 

2. 차원축소 (Dimensionality Reduction)

-  차원축소는 데이터의 특성(차원)을 줄이면서도 데이터의 중요한 정보는 최대한 유지하는 방법

- 주로 시각화,데이터의 압축, 노이즈 제거 등의 목적으로 사용

- 대표적인 알고리즘 : PCA(주성분 분석) ,SVD(특이값 분해) ,...

 

3. GAN(Generative Adversarial Network)

- GAN은 두개의 신경망, 생성자(Generator)와 판별자(Discriminator)를 사용하여 데이터를 생성하는 모델

- 생성자는 실제 데이터와 유사한 가짜 데이터를 생성하고, 판별자는 생성된 데이터가 진짜인지 가짜인지 판별한다.

- 이 두 신경망이 서로 경쟁하면서 학습을 진행하게 되는데, 학습이 진행될수록 생성자는 더욱 정교한 가짜 데이터를 생성하게 된다.


자기지도 학습

: lable(정답)이 없는 대량의 데이터를 활용하여 모델을 학습시키는 방식

: 이 방식은 데이터 내부의 정보를 사용하여 '보조문제 (pretext task)'를 정의하고, 이 보조 문제를 통해 모델을 사전학습(pre-training)한다.

: 이후 사전학습된 모델을 실제문제(downstream task)에 적용하기 위해 전이학습(transfer learning)을 수행한다.

 

  • 자기주도학습 주요기법

1. Context Prediciton :

  • 이 방법은 데이터의 일부를 가리거나 제거하고, 모델에게 그 가려진 부분을 예측하게 한다
  • 예) BERT 모델에서 텍스트 일부 단어를 가리고, 가려진 단어를 예측하는 방법

2. Contrastive Learning :

  • 이 방법은 데이터의 다양한 변형 버전을 생성하고, 이러한 변형들이 원래 데이터와 얼마나 유사한지 판결한다. 
  • 주요 아이디어는 유사한 데이터 포인터는 가까이 있어야하고, 다른 데이터 포인트는 멀리 떨어져있어야한다.
  • 예) SimCLR, Moco와 같은 알고리즘

 

 

  • 자기지도 학습과정

1. Pretext Task 학습(Pre-training)

 

- 먼저, 보조문제(pretext task)를 통해 모델을 학습시킨다. 이 단계에서 레이블이 필요하지않는다. 

 

2. DownStream Task 학습(Trnasfer Learning)

- 사전 학습된 모델을 실제 문제(downstream task)에 적용하기 위해 전이학습을 수행한다. 이 단계에서는 일반적으로 레이블이 있는 작은 데이터셋을 활용한다. 

 


강화학습

: 기계학습의 한 분야로, 에이전트(agent)가 환경(environment)과 상호작용하여 보상(reward)를 최대화하는 방향으로 학습하는 방향론이다.

 

  • 강화학습 과정
  • 1. 초기화 :
    에이전트와 환겨을 초기화 상태로 설정 -> 에이전트의 학습파라미터(ex: 가치함수,정책)을 초기화한다.
  • 2. 상호작용:
    에이전트는 현재 상태를 기반으로 행동을 선택한다. 이 행동 선택은 탐험(exploration)과 활용(exploitation)의 균형을 유지하면서 이루어진다.
    선택된 행동을 환경에 적용한다. 
  • 3. 보상 및 다음상태(Observation):
    환경은 에이전트의 행동에 반응하여 보상과 다음상태를 제공한다
  • 4. 학습(Learning):
     에이전트는 받은 보상과 다음 상태를 사용하여 학습알고리즘(예: Q-learning,SARSA,Acotr-Critic등)을 적용하여 자신의 정책 또는 가치함수를 업데이트한다.
  • 5. 반복(Iteration): 
    에이전트는 종료조건(ex: 최대 에피소드 수, 학습의 수렵 등) 이 반복될때까지 상호작용과 학습과정을 반복한다.
  • 평가(Evaluation): 
    주기적으로 또는 학습이 종료된 후에 에이전트의 성능을 평가한다. 이를 통해 학습의 진행상황을 모니터링하고 필요한 경우 학습 파라미터를 조정한다. 

 

- 예를 들어 강화학습를 체스에 비유하자면,,,

1. 에이전트(Agent) : 체스 플레이어 

2. 환경(Environment) : 체스판과 상대방 플레이어이다. 플레이의 움직에 반응하여 게임의 상태를 변경하고, 결과를 제공한다. 

3. 행동(Action): 플레이어가 선택할 수 있는 모든 가능한 체스를 움직인다. 예를 들어, 폰을 한 칸 전진시키거나, 나이트를 L자 형태로 움직이는 것

4. 상태(state): 체스판의 현재 배치이다. 모든 체스 말의 위치와 그들의 상태(ex: 왕이 체크 상태인지 아닌지)를 포함한다.

5. 보상(Reward): 플레이어의 움직임에 따른 결과로, 게임에서 얻는 점수나 피드백이다. 예를 들어, 상대방의 말을 잡았을 때의 점수나, 게임에서 승리했을 때의 큰 보상, 또는 체크메이트를 당했을때 얻는 패널티 등이 잇다. 

6. 에피소드: 초기 상태에서 시작하여 종료 상태의 도달할때까지 상태, 행동 ,보상의 연속된 시퀀스 

 

*시퀀스란 ? : 일련의 요소들을 순서대로 갖는 데이터 구조 ex)리스트, 튜플, 문자열등..

2023.10.13 - [프로그래밍언어/파이썬] - 파이썬- 시퀀스란?

 

파이썬- 시퀀스란?

시퀀스: 일련의 요소들을 순서대로 갖는 데이터 구조를 의미. 시퀀스는 여러 항목들을 정렬된 순서로 저장하며, 각 항목은 고유한 인덱스를 통해 접근 할 수 있다. 시퀀스 타입 1. 리스트(list) :

xcwaonvy.tistory.com

7. 정책 (policy): 플레이어의 전략이다. 주어진 체스판의 상태에서 어떤 움직임을 선택할지 결정하는 규칙또는 방법론을 의미한다.

 

 

 

 

- 체스 게임에서 강화학습 과정 

 

  • 플레이어(에이전트)는 체스판의 현재 상태를 기반으로 움직임(행동)을 선택한다. 
  • 환경(체스판과 상대방)은 움직이에 반응하여 게임의 상태를 변경하고, 그 결과(보상또는 패널티)를 플레이어에 제공한다
  • 플레이어는 이러한 경험을 통해 자신의 전략(정책)을 변경하고 개선하려고한다. 
  • 이과정은 여러게임(에피소드)동안 반복되며, 플레이어는 각 게임에서의 경험을 통해 더 나은 전략을 학습하게 된다.

 

  • 옵티마 (최단패스)찾기 :

옵티마 또는 최단 경로 문제는 그래프에서 두 노드 사이의 가장짧은 경로를 찾는 문제이다. 이 문제는 다양한 알고리즘으로 해결할 수 있다.

 

 

  • Discount Factor :

    강화학습에서의 "dicount facor"는 미래의 보상을 현재의 가치로 환산하는데 사용되는 계수이다. 보통 0과 1사이의 값으로 설정되며, 이값이 1에 가까울 수록 미래의 대한 보상을 중요하게 여기고, 0에 가까울수록 현재의 보상을 더 중요하게 여긴다.
728x90
반응형

'인공지능 > 인공지능 기초' 카테고리의 다른 글

인공지능이란?  (0) 2023.10.02