[RL] 강화 학습(Reinforcement Learning)

2024. 6. 23. 23:14·🤖 ai logbook
728x90
반응형

 

 

머신러닝의 학습 방법

머신러닝의 학습 방법에는 크게 지도학습, 비지도학습, 강화학습으로 나눌 수 있다.

 

1. 지도 학습 (Supervised Learning)
정답이 있는 데이터 (레이블)를 통해 모델을 학습시키는 방법 (Prediction)
분류 : 스팸 메일 필터링 (스팸/정상 메일 분류), 이미지 분류 (고양이/강아지 분류)
회귀 : 주택 가격 예측, 주식 가격 예측

  • 장점 : 명확한 목표와 정답이 존재해 모델 성능을 쉽게 평가할 수 있음
  • 단점 : 많은 양의 레이블링 된 데이터가 필요하며, 레이블링 작업에 시간과 비용이 많이 소요될 수 있음.

2. 비지도 학습 (Unsupervised Learning)
정답 레이블 없이 데이터 자체의 특징과 패턴을 분석하는 방법 (Featuring)
군집화 : 고객 세분화, 문서 분류
차원 축소 : 데이터 시각화, 노이즈 제거

  • 장점 : 레이블링 된 데이터가 필요하지 않아 데이터 수집 및 활용이 용이
  • 단점 : 명확한 목표가 없어, 모델 성능 평가가 어렵고, 결과 해석이 모호하다

3. 강화 학습 (Reinforcement Learning)
에이전트가 환경과 상호작용하며 보상을 극대화하는 방향으로 행동을 학습하는 방법

  • 장점 : 복잡하고 동적인 환경 (수학적 모델이 불가능한 대규모 MDP : Markov Decision Process)에서 효과적으로 학습
  • 단점 : 학습 시간이 오래걸리고, 설계가 어려움

 

강화학습의 역사

강화학습의 역사를 살펴보면, 그 뿌리가 "최적제어(Optimal Control)"와 "심리학(Psychology) : trial-and-error learning"에 기반을 두고 있음을 알 수 있다.

 

Optimal Control

시간에 따른 동적 시스템의 행동을 최적화하는 컨트롤러를 설계하는 문제로 수학적인 방법론이다.

1950년대에 미국의 수학자 Richard Bellman에 의해 Linear Dynamic Programming 이론으로 개발되었다.

이 방법은 두가지 제한 사항이 잇었는데, Dynamic Programming 자체가 환경에 대한 완전한 지식이 필요하다는 점 (모델에 대한 지식), Dynamic Programming은 상태 공간의 크기에 따라 계산 비용이 급격히 증가하는 문제 (차원의 저주)를 가지고 있었다.

이러한 제한 사항 때문에, 최적 제어 문제를 해결하기 위한 다른 접근 방식이 개발되어야 했고, 강화 학습이 해결 방법을 제공해 주었다.

 

Psychology (trial-and-error learning)

동물이 환경에서 행동의 결과를 통해 학습하는 방식을 설명하는 용어이다.

이 개념은 심리학자 Edward Thorndike에 의해 제안되었으며, 그의 '효과의 법칙'에 따르면, 행동이 긍정적인 결과를 가져오면 그 행동이 강화되고, 부정적인 결과를 가져오면 약화된다는 이론을 제시했다.

이는 강화학습에서 보상을 통해 에이전트가 행동을 학습하는 방식과 매우 유사하다.

 

 

강화학습(Reinforcement Learning)?

 

강화학습(RL:Reinforcement Learning)은 에이전트(agent)가 환경(environment)과 상호작용하며 스스로를 학습하는 알고리즘이다. (supervisor가 없으며, 오직 reward signal만 존재한다)

강화학습의 핵심은 보상을 최대화하는 방향으로 에이전트의 행동을 조정하는 것이며, 이를 통해 에이전트는 어떤 상태에서 어떤 행동을 취하는 것이 최선인지를 학습하게 된다.

 

구성요소

  • 에이전트(Agent)
    학습하고 결정을 내리는 주체
    예를 들어 게임을 하는 플레이어, 로봇, 자율주행 자동차 등이 에이전트가 된다.
    에이전트는 환경(Environment)에 대한 관찰을 바탕으로 행동(action)을 선택하고, 그 결과로 얻는 보상(reward)을 통해 자신의 행동을 개선한다.
  • 환경(Environment)
    환경은 에이전트가 상호작용하는 모든 것을 의미한다.

    예를 들어 게임의 규칙, 로봇이 움직이는 공간, 자율주행 자동차가 운행하는 도로 등이 환경에 해당한다.
    에이전트의 행동(Action)에 대해 환경은 반응하며, 새로운 상태(state)와 함께 보상(reward)을 제공합니다.
    (에이전트의 행동에 따라 환경은 상태를 변화시킨다.)
  • 행동(Action)
    에이전트가 주어진 상태에서 선택할 수 있는 각각의 가능한 선택사항이다.
  • 보상(Reward)
    에이전트가 행동을 취하면, 환경은 그에 대한 보상을 제공한다.

    보상은 긍정적(즉, 보상. reward) 또는 부정적(즉, 처벌. punishment) 일 수 있으며, 이는 에이전트의 행동을 모델링하는 데 중요한 역할을 한다.
  • 정책(Policy)
    에이전트가 주어진 상태에서 어떤 행동을 선택할지 결정하는 규칙 (에이전트의 행동 정책)

    강화학습의 목표는 최적의 정책을 찾는 것이다.

 

강화학습으로 할 수 있는 일들

1. Chip Placement with Deep Reinforcement Learning - Google

[2004.10746] Chip Placement with Deep Reinforcement Learning (arxiv.org)

 

Chip Placement with Deep Reinforcement Learning

In this work, we present a learning-based approach to chip placement, one of the most complex and time-consuming stages of the chip design process. Unlike prior methods, our approach has the ability to learn from past experience and improve over time. In p

arxiv.org

* RePlAce : SOTA(State Of The Art)
* Manual : expert

* WNS(Worst Negative Slack) : 칩 내부에서 신호가 전달되는 데 필요한 시간과 실제 도착 시간의 차이를 의미.

* TNS(Total Negative Slack) : 모든 타이밍 경로의 Negative Slack 값을 합산한 값.

* congestion H/V : 칩 내부의 수평 및 수직 방향 배선 혼잡도.

 

논리적 설계 도면을 실제 물리적 공간에 구현하는 P&R (Placement & Routing) 공정의 핵심 단계인 Chip Placement 문제에 강화학습을 적용해 본 논문.
Chip Placement란 Netlist를 구성하는 소자들의 위치를 결정(부품을 배치하고 선을 연결)하는 과정을 말하며, Chip Placement 문제란 주어진 공간에 반도체 소자들을 최적으로 배치하는 조합 최적화 문제를 말한다.
(즉, Chip NetList의 Node를 Chip Canvas에 어떻게 배치하는 것이 가장 최적화된 배치인가)
여기서, 최적화된 배치란, PRA가 최소화된 배치라고 할 수 있으며, 해당 강화학습의 에이전트는 전력(Power), 성능(Performance), 면적(Area)을 종합적으로 고려하여 최소화하는 것을 목표로 학습하게 된다.
(에이전트는 다양한 배치를 시도하고, 그 결과에 대한 보상(PRA)를 받으면서 최적의 배치 방법을 스스로 학습하게 된다)

강화학습을 적용하기 위해서는 MDP 문제로 정의하는 것이 필요하다. 
여기서 MDP는 상태(state), 행동(action), 보상(reward), 그리고 상태 전이 확률(state transition probability)로 구성된다.

 

  • 상태(State): 칩 배치 과정중에 발생할 수 있는 모든 가능한 상황 (현재까지 chip canvas에 배치된 부품들의 위치, 아직 배치되지 않은 부품들의 목록, Chip canvas의 빈 공간 정보 등)
  • 행동(Action): 에이전트가 현재 상태에서 선택할 수 있는 모든 가능한 행동. (다음에 배치할 부품을 선택하고, 해당 부품을 chip canvas의 어느 위치에 배치할지 결정하는 행동을 포함. 이때, 칩의 density나 간섭등을 고려하여 유요한 행동만 선택하여야 함)
  • 보상(Reward): 에이전트가 특정 상태에서 특정 행동을 취했을 때 받는 보상을 의미. PRA 목표를 달성하기 위한 적절한 보상함수를 설계하여야 함. (부품 간의 배선 길이가 짧아질 수록 더 큰 보상을 주는 방식)
  • 상태 전이 확률(State Transition Probability): 현재 상태에서 특정 행동을 취했을 때 다음 상태로 변화하는 확률 분포를 의미.

#DRL #PPO

 

2. ChatGPT - RLHF(Reinforcement Learning from Human Feedback)

기존의 LLM은 그저 "다음 토큰이 무엇인가"만 학습하였다. 즉, 주어진 Prompt를 바탕으로 가장 확률이 높은 문장을 생성할 뿐, 생성된 텍스트가 좋은 텍스트인지에 대한 검증이 불가능했다. (Hallucination(환각) 현상 발생)

ChatGPT는 RLHF를 도입( 인간의 피드백을 학습에 반영)하면서 답변의 품질을 향상 시킬 수 있었다.

 

  • 상태(State): 이전 대화 내용, 사용자의 질문 등
  • 행동(Action): 모델이 생성하는 다음 토큰 (단어, 문장 부호 등)
  • 보상(Reward): 생성된 답변의 품질을 평가하며, 사람이 선호하는 답변에 높은 보상을, 그렇지 않은 답변에 낮은 보상을 부여
  • 상태 전이 확률(State Transition Probability): 다음 상태는 현재 상태, 생성된 토큰, 그리고 환경(사용자 입력 등)에 의해 확률적으로 결정.

#DRL #PPO

 

3. DRIFT: Deep Reinforcement Learning for Functional Software Testing

https://arxiv.org/pdf/2007.08220

시스템 복잡성 증가에 따라 더욱 중요해지는 두 가지 소프트웨어 테스트 요구사항을 해결하기 위해 강화학습을 활용하였다.
- fully automatic : 방대한 test case를 수동으로 작성하는 것은 사실상 불가능에 가까우며, 따라서 test는 완전히 자동화되어야 한다.

- sample-efficient : test를 합리적인 상호 작용 횟수로 완료할 수 있는 능력이 필요하다.

즉, DRIFT의 목표는 특정 Functional software-Testing 및 coverage requirements을 효율적으로 충족하는 강화 학습 에이전트를 학습시키는 것에 있다.

 

  • 상태 (State) :  GUI 요소들의 계층 구조를 나타내는 트리 형태의 데이터 구조 (AutomationID, ClassName, ControlType, ProcessName 등의 속성)
  • 행동 (Action): 클릭, 스크롤 등 사용자가 GUI와 상호작용할 수 있는 모든 가능한 행동을 의미
  • 보상 (Reward): Smoke Testing(가낭 기본적인 부분 테스트)를 목표로, 로그를 생성하는 API 함수를 사용하여 특정 기능이 성공적으로 수행되었는지 확인
  • 상태 전이 확률 (State Transition Probability) : 현재 상태에서 특정 행동을 취했을 때 다음 UI 상태로 변화하는 확률 분포

즉,  GUI의 트리 구조 표현을 상태로 사용하고, 사용자 상호작용을 행동으로, 스모크 테스트 성공 여부를 보상으로 정의하여 MDP를 구성한다. 

 

#DRL #DQN

 

강화학습 적용의 어려운 점

1. 강화 학습에서는 에이전트의 행동이 환경에 영향을 미치고, 변화된 환경은 다시 에이전트의 다음 행동에 영향을 미치게 된다. 즉, 이러한 상호작용 때문에 에이전트가 경험하는 데이터는 독립적이고 동일한 분포를 따르지 않는다. (Non-IID Data. 즉, 각 데이터가 서로 독립적이지 않거나, 동일한 확률 분포를 따르지 않는 경우를 의미)
이는 결국, 데이터 편향, 불균형, 변동성, 상관관계, 숨겨진 변수 등 다양한 문제를 야기하여 모델 학습을 어렵게 만들고 일반화 성능을 저하시키게 된다. (Agent가 지속적으로 실수를 했을 때, 개선이 불가능할 수 있다)

2. Exploration vs. Exploitation

Exploration : 에이전트는 새로운 행동을 시도하여 환경에 대한 정보를 얻고 더 나은 정책을 찾고자 한다.

Exploitation : 에이전트는 현재까지 알고 있는 최선의 정책을 따라 행동하여 보상을 극대화하려 한다.

너무 탐색(Exploration)에 치중하면, 이전에 배운 보상(경험)을 잃어버려 성능이 떨어질 수 있고,
너무 착취(Exploitation)에 치중하면 더 나은 정책을 찾을 기회를 놓칠 수 있다.

Exploration와 Exploitation 사이의 균형을 찾는 것이 어렵다.

3. 강화 학습에서는 즉각적인 보상뿐만 아니라 미래의 보상까지 고려해야 한다. 예를 들면, 바둑에서 현재의 수는 몇 수 뒤의 승패에 영향을 미칠 수 있는데, 어떤 행동이 최종적인 보상에 얼마나 기여했는지를 파악하기란 쉽지 않다.
(알파고가 대단했던 이유이기도 하다)

 

 

728x90
반응형

'🤖 ai logbook' 카테고리의 다른 글

Simpson’s Paradox - 통계의 거짓말  (0) 2025.02.19
[paper] DeepSeek-R1 정리 및 Ollama를 이용해서 DeepSeek-R1 모델 간단하게 사용해보기  (0) 2025.02.10
[RL] MDP - Bellman equation  (0) 2024.06.25
[RL] 마르코프 결정 과정 (Markov decision processes, MDP)  (0) 2024.06.23
[RL] 간단한 OpenAI Gym 튜토리얼 (CartPole)  (0) 2023.08.28
[RL] Deep Deterministic Policy Gradient (DDPG)  (0) 2023.08.21
[paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development)  (0) 2023.08.16
[RL] Actor-Critic  (0) 2023.08.10
'🤖 ai logbook' 카테고리의 다른 글
  • [RL] MDP - Bellman equation
  • [RL] 마르코프 결정 과정 (Markov decision processes, MDP)
  • [RL] 간단한 OpenAI Gym 튜토리얼 (CartPole)
  • [RL] Deep Deterministic Policy Gradient (DDPG)
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (207) N
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (57) N
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    온라인 강의 추천
    데이터사이언스 입문
    datascience
    deeplearning
    ADsP
    Python
    데이터분석준전문가
    기본권의기초이론
    Coursera
    민법
    인공지능 입문
    방통대
    근로기준법
    IBM
    법학과
    머신러닝
    형법
    빅데이터분석기사
    자격증
    certificate
  • hELLO· Designed By정상우.v4.10.3
이소야
[RL] 강화 학습(Reinforcement Learning)
상단으로

티스토리툴바