본문 바로가기
카테고리 없음

강화학습Reinforcement learning 데이터셋을 미리 준비하지 않고, 환경과 상호작용하면서 데이터를 수집하고 학습

by 혜룐 2025. 3. 12.

지도학습/비지도학습 예시코드는 이전 글로 갈음하고 강화학습부터 정리를 해보자. (작성중~)


지도학습(Supervised Learning)에서 분류(Classification)와 회귀(Regression)의 차이점

분류(Classification)와 회귀(Regression)의 주요 차이점:

  1. 출력값의 유형:
    • 분류: 이산적인 범주나 클래스를 예측합니다 (예: 스팸/정상 이메일, 개/고양이/말 이미지)
    • 회귀: 연속적인 값을 예측합니다 (예: 주택 가격, 온도, 주가)
  2. 목적:
    • 분류: 입력 데이터를 미리 정의된 범주 중 하나로 할당하는 것
    • 회귀: 입력 변수와 출력 변수 사이의 관계를 모델링하여 연속적인 값을 예측하는 것
  3. 일반적인 평가 지표:
    • 분류: 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 점수, 혼동 행렬(Confusion Matrix)
    • 회귀: MAE(Mean Absolute Error), MSE(Mean Squared Error), RMSE(Root Mean Squared Error), R²
  4. 알고리즘 예시:
    • 분류: 로지스틱 회귀, 서포트 벡터 머신(SVM), 결정 트리, 랜덤 포레스트, 신경망
    • 회귀: 선형 회귀, 릿지/라쏘 회귀, 의사결정 트리, 신경망
  5. 출력층 구조:
    • 분류: 소프트맥스(다중 클래스) 또는 시그모이드(이진 분류) 활성화 함수를 사용
    • 회귀: 선형 활성화 함수(또는 활성화 함수 없음)를 사용
      • 회귀 모델의 출력층:
        • 주로 선형(Linear) 활성화 함수 사용 또는 활성화 함수 없음
        • 어떤 값이든 출력 가능 (음수, 양수, 소수점 등 제한 없음)
        • 출력 뉴런은 보통 1개 (다변량 회귀의 경우 여러 개 가능)
  6. 손실 함수:
    • 분류: 교차 엔트로피(Cross-Entropy) 손실 함수 사용
    • 회귀: 평균 제곱 오차(MSE) 같은 손실 함수 사용

비지도학습(Unsupervised Learning)의 주요 기법 중 하나인 클러스터링(Clustering)

클러스터링(Clustering):

클러스터링은 레이블이 없는 데이터를 유사한 특성을 가진 그룹(클러스터)으로 나누는 기법입니다. 지도학습과 달리 정답 레이블 없이 데이터의 내재된 구조를 발견하는 것이 목적입니다.

주요 특징:

  1. 목적: 데이터 포인트들을 서로 유사한 것끼리 그룹화하여 데이터의 숨겨진 패턴이나 구조를 발견
  2. 입력 데이터: 레이블이 없는 데이터(정답이 주어지지 않음)
  3. 알고리즘 종류:
    • K-means: 데이터를 K개의 클러스터로 나누며, 각 클러스터의 중심(centroid)과의 거리를 최소화
    • 계층적 클러스터링(Hierarchical Clustering): 상향식(bottom-up) 또는 하향식(top-down) 방식으로 클러스터 계층 구조 형성
    • DBSCAN: 밀도 기반 클러스터링으로 밀집된 영역을 찾아 클러스터링
    • 가우시안 혼합 모델(GMM): 데이터가 여러 가우시안 분포의 혼합에서 생성됐다고 가정하고 클러스터링
  4. 평가 지표:
    • 실루엣 계수(Silhouette Coefficient)
    • 데이비스-볼딘 지수(Davies-Bouldin Index)
    • 칼린스키-하라바스 지수(Calinski-Harabasz Index)
  5. 응용 분야:
    • 고객 세분화(Customer Segmentation)
    • 이상 탐지(Anomaly Detection)
    • 문서 분류
    • 이미지 분할(Image Segmentation)
    • 유전자 발현 분석

지도학습과의 차이점:

  • 지도학습(분류, 회귀)은 입력과 출력 간의 매핑을 학습하는 반면, 클러스터링은 데이터 자체의 구조만 분석
  • 클러스터링은 정답 레이블 없이 데이터의 유사성만으로 그룹화
  • 평가가 더 주관적이고 어려울 수 있음 (정답이 없기 때문)

차원 축소(Dimensionality Reduction):

차원 축소는 고차원 데이터를 더 낮은 차원의 공간으로 변환하면서도 원본 데이터의 중요한 특성과 구조를 최대한 보존하는 기법이다.

주요 특징:

  1. 목적:
    • 데이터의 차원(특성/변수 수)을 줄여 계산 효율성 향상
    • 과적합(Overfitting) 위험 감소
    • 데이터 시각화 용이
    • 노이즈 제거 및 데이터 압축
  2. 주요 기법:
    • PCA(Principal Component Analysis, 주성분 분석):
      • 데이터의 분산을 최대화하는 방향(주성분)으로 데이터를 투영
      • 선형 차원 축소 기법 중 가장 보편적인 방법
    • t-SNE(t-distributed Stochastic Neighbor Embedding):
      • 고차원 데이터의 유사도 관계를 저차원에서 보존하는 기법
      • 주로 시각화 목적으로 사용됨
    • LDA(Linear Discriminant Analysis, 선형판별분석):
      • 클래스 간 분산을 최대화하고 클래스 내 분산을 최소화하는 방향으로 투영
      • 지도학습적 성격도 있음
    • 오토인코더(Autoencoder):
      • 신경망을 사용한 비선형 차원 축소 기법
      • 인코더와 디코더 구조로 데이터를 압축했다가 복원
  3. 차원의 저주(Curse of Dimensionality):
    • 고차원 공간에서는 데이터 포인트들이 희소해져 모델링이 어려워짐
    • 필요한 학습 데이터의 양이 차원에 따라 기하급수적으로 증가
    • 차원 축소는 이 문제를 완화하는 데 도움이 됨
  4. 응용 분야:
    • 이미지 압축 및 처리
    • 텍스트 마이닝(단어 임베딩)
    • 유전체 데이터 분석
    • 추천 시스템
    • 기계학습 전처리 단계

클러스터링과의 관계: 차원 축소와 클러스터링은 종종 함께 사용됩니다. 먼저 차원 축소로 데이터의 차원을 낮춘 후, 클러스터링 알고리즘을 적용하면 계산 효율성이 높아지고 더 의미 있는 클러스터를 찾을 수 있다.

심층 강화학습에서도 고차원의 상태 공간(state space)을 효과적으로 표현하기 위해 차원 축소 기법이 활용


Reinforcement learning

  1. 지도학습(Supervised Learning): 레이블이 있는 데이터로 학습 (분류, 회귀)
  2. 비지도학습(Unsupervised Learning): 레이블 없는 데이터에서 패턴 발견 (클러스터링, 차원 축소)
  3. 강화학습(Reinforcement Learning): 환경과 상호작용하며 보상을 최대화하는 정책 학습

강화학습의 주요 특징

  • 에이전트와 환경: 에이전트가 환경과 상호작용하며 학습
    • 에이전트의 행동에 따라 다음 상태와 보상을 반환하는 함수를 가지고 있습니다.
  • 시행착오(Trial and Error): 다양한 행동을 시도하고 결과를 관찰하며 학습
  • 보상 신호(Reward Signal): 행동의 좋고 나쁨을 알려주는 피드백
  • 정책(Policy): 상태에 따라 어떤 행동을 할지 결정하는 전략
  • 지연된 보상(Delayed Reward): 즉각적인 피드백이 아닌 나중에 받는 보상도 고려

강화학습은 다른 ML 방법론과 달리 데이터셋을 미리 준비하지 않고, 환경과 상호작용하면서 데이터를 수집하고 학습한다.

보상신호를 좀더 얘기해보면, 예를 들어 CartPole에서 막대가 넘어지지 않고 유지될 때마다 +1 보상을 주는것이다.

  • 환경은 각 행동 후에 명시적인 보상값을 반환합니다.
  • 예: CartPole에서 막대가 넘어지지 않고 유지될 때마다 +1 보상
  • 보상은 환경 설계자가 미리 정의합니다 (게임 점수, 목표 달성 여부 등)

경험 데이터 수집

  • 에이전트가 행동을 취함 → 환경이 상태 변화와 보상 제공 → 이 정보를 저장
  • 데이터 형태: (현재 상태, 행동, 보상, 다음 상태, 종료 여부)
  • 이러한 경험 데이터를 "경험 리플레이 버퍼(Experience Replay Buffer)"에 저장

학습하는것은 모든 Reward의 합이 가장 큰것이 되도록 하는것이 목표가 되겠다.

바둑을 예를 들면, 에이전트가 돌을 놓는 행동을 취했을때, 그 행동이 진짜 가치 있는 게임이었는가는 끝나야 알수있다. delayed rewards는 강화학습을 어렵게 만드는 요소 중 하나인데. 에이전트는 어떤 행동이 나중에 좋은 결과로 이어질지 예측해야 하기 때문이다.

강화학습 과정은 이런 순환적 구조로 진행된다. 에이전트는 보상(reward)를 최대화하는 방향으로 학습하는 것이 핵심이다.

"어떤 상태(state)에서 어떤 행동(action)을 취하는 것이 최대의 보상(reward)을 얻을 수 있는가"를 학습하는 과정을 말한다.

  • 에이전트는 환경으로부터 현재 상태(state)를 관측
  • 이 정보를 바탕으로 에이전트는 어떤 행동(action)을 취할지 결정
  • 에이전트의 행동은 환경에 영향
  • 환경은 변화하고 새로운 상태를 에이전트에게 제공

다른 예시로는

  • 체스: 수를 둘 때마다 보상을 받는 것이 아니라 게임 종료 시 승패로 보상
  • 금융 투자: 투자 결정의 실제 보상은 오랜 시간이 지난 후에 실현됨
  • 로봇 학습: 복잡한 기술을 배울 때 중간 단계에서는 보상이 없고 전체 작업 완료 후에만 보상이 주어질 수 있음

이런 환경에서 에이전트는 미래의 보상을 현재 행동과 연결시키는 방법을 학습해야한다.


Rewards

리워드를 어떻게 정의하느냐를 생각해보면, 게임은 보다 리워드를 정의하기 쉽다.

Policy

강화학습에서 '리워드(reward)'는 핵심적인 개념이다. 에이전트가 취한 액션(action)에 대해 환경으로부터 받는 피드백이다.

리워드의 특징은 다음과 같다

  1. 피드백 메커니즘: 에이전트가 취한 행동이 얼마나 좋았는지 수치적으로 알려줌.
  2. 목표 지향성: 에이전트는 이 리워드를 최대화하는 방향으로 학슴.
  3. 지연된 보상: 즉각적인 리워드도 있지만, 게임을 이기는 것처럼 나중에 큰 보상을 받는 경우도 있다.

게임에서의 리워드 예시

  • 점수 획득: 게임 스코어가 올라가는 것
  • 레벨 클리어: 게임의 특정 단계를 완료했을 때
  • 게임 종료: 게임에서 승리하거나 패배했을 때 (승리는 큰 양수 리워드, 패배는 음수 리워드)
  • 생존: 게임에서 더 오래 살아남을수록 작은 양수 리워드가 계속 주어지는 경우

에이전트는 이러한 리워드 신호를 통해 어떤 행동이 좋고 나쁜지 배우게 되고, 결국 최적의 행동 정책(policy)을 학습하게 된다.


Exploration & Exploitation

탐색(Exploration) 

  • 새로운, 시도해보지 않은 행동을 취해보는 것
  • 목적: 환경에 대한 더 많은 정보 수집, 혹시 더 좋은 전략이 있는지 발견
  • 예: 항상 가던 식당 말고 새로운 식당 시도해보기

활용(Exploitation)

  • 지금까지 알게 된 정보를 바탕으로 최선의 행동 선택
  • 목적: 현재 알고 있는 최적의 전략으로 보상 최대화
  • 예: 가장 맛있다고 알려진 메뉴만 계속 주문하기

언제 어떤 것을 사용하는가?

강화학습에서는 이 둘 사이의 균형을 맞추는 것이 중요하다.

  • 초기 학습 단계: 탐색(Exploration) 비율이 높음
    • 환경에 대한 정보가 적을 때
    • 다양한 상태-행동 쌍을 경험해야 할 때
    • 모델이 불완전할 때
  • 후기 학습 단계: 활용(Exploitation) 비율이 높음
    • 충분한 경험을 쌓은 후
    • 최적에 가까운 정책을 발견했을 때
    • 안정적인 성능이 필요할 때

균형을 맞추는 방법

  1. ε-greedy 정책:
    • ε 확률(예: 10%)로 무작위 행동(탐색)
    • 1-ε 확률(예: 90%)로 최선의 행동(활용)
    • 학습이 진행됨에 따라 ε을 점차 감소시킴
  2. 소프트맥스/볼츠만 탐색:
    • 각 행동의 예상 가치에 비례하여 확률 할당
    • 높은 가치의 행동이 더 자주 선택되지만, 낮은 가치의 행동도 가끔 시도됨
  3. UCB(Upper Confidence Bound):
    • 불확실성이 높은 행동에 추가 보너스 부여
    • "이 행동이 실제로는 더 좋을 수도 있다"는 가능성 고려

그렇다. 둘은 트레이드오프해야 하는 개념이다. 탐색과 활용 사이의 균형은 문제의 특성, 학습 단계, 그리고 위험 감수 성향에 따라 조정되어야한다. 데이터를 조금더 모아야 할때 Exploration를 고려한다고 한다.