IT지식/인공지능

[인공지능] 강화학습 프로세스 - 4단계로 정리하기

매 석 2022. 11. 6. 18:36
반응형

 

 

1. 강화학습 프로세스의 단계

1. 문제 파악하기
2. 강화학습 문제로 정의하기
3. 강화학습 기법 선택 및 에이전트 학습하기
4. 강화학습 에이전트 성능 평가 및 배포하기

 

 

2. 문제 파악하기

- 강화학습 프로젝트에서 필수적이고 중요한 단계이다. 일반적으로 '제어 또는 행동을 찾는 문제인가?',
  '최적의 행동이 무엇인지 정의할 수 있는 평가 지표가 있는가?'라는 두 질문에 '그렇다'라면 강화학습을
  시도해 볼 만한 문제라고 간주한다.
  강화학습 기법은 문제를 주로 마르코프 결정 과정으로 정의한다.
  마르코프 결정 과정은 '가장 중요한 성질은 새로운 상태가 현재 상태와 행동에만 의존한다'는 것이다.
  이전 상태와 이전 행동은 독립적이어야만 마르코프 결정 과정이라 할 수 있다. 
  또한 마르코프 결정 과정에는 상태와 별개로 '관찰'이라는 개념이 있다.
  환경의 실제 상태와 에이전트가 환경을 관찰한 것을 따로 생각하는 것이다. 
  일반적인 마르코프 결정 과정에서는 에이전트가 환경의 상태를 그대로 관찰할 수 있다 가정한다.
  만약 에이전트가 환경의 상태를 온전히 관찰하지 못하는 상황이라면 POMDP로 정의해야 한다.

 

 

3. 강화학습 문제로 정의하기

- 환경, 에이전트, 상태, 행동, 보상을 정의해야 한다.
  환경을 정의하기 위해서는 해당 문제의 성격을 살펴봐야 한다.

  시뮬레이터가 주어진 상황이라면 어떠한 입출력을 받는지 상세히 알아야 한다.
  입력은 에이전트의 행동을 정의하는 데 필요하고, 출력은 상태와 보상을 정의할 때 필요하다.
  시뮬레이터가 주어지지 않은 상황이라면 3가지 선택지가 있다.
  시뮬레이터를 만들거나, 실전에서 강화학습 에이전트를 학습하는 것 또는 오프라인 강화학습을 하는 것이다.
 

- > 1. 시뮬레이터를 만드는 것은 어렵기에, 시중에 있는 패키지를 사용하는 것이 좋다.

- > 2. 실전에서 강화학습 에이전트를 학습하는 것은 위험할 수 있다.
         예시로 자율주행 자동차는 운전하는 에이전트를 실제 도로 상황에서 학습한다면
         조금만 실수해도 큰 사고가 일어날 수 있기 때문이다. 따라서 문제의 특성에 따라 실전에 강화학습
         에이전트를 학습하는 것이 불가능할 수도 있다.
- > 3. 오프라인 강화학습은 이전에 수집한 상호학습 데이터를 바탕으로 강화학습 에이전트를 학습하는 것을 말한다.
         시뮬레이터를 만들 필요도 없고, 실전에서 위험한 에이전트 학습도 필요 없다. 하지만 오프라인 강화학습의
         큰 단점은 이미 상호작용이 끝난 데이터이기 때문에 그 데이터를 수집할 때 따랐던 정책에 의존한다는 점이다.
         상호작용 데이터는 어떠한 정책을 사용하느냐에 따라 크게 바뀌기에, 강화학습 에이전트 학습에 치명적이다.

- 이러한 방법으로 환경을 정의하였다고 가정하겠다. 이후에는 에이전트, 상태, 행동, 보상을 정의해야 한다.
  에이전트는 내가 원하는 최적 행동을 취하는 주체이다. 보통 에이전트를 어떻게 정의해야 하는지는 명백하다.
  상태는 에이전트가 처한 상황을 전적으로 표현할 수 있는 형태여야 하는데, 같은 상황이라도 상태를 
  다양한 방식으로 정의할 수 있다. 예시로 벽돌 깨기 게임을 하는 에이전트를 학습할 때, 게임 화면의 픽셀을
  그대로 상태로 받아들일 수 있고, 게임 내의 정보를 정제한 후 여러 변수를 만들어 에이전트에게
  제공할 수도 있다. 

 

- 상태를 정의했다면 어떠한 행동을 취할 수 있는지 생각해 봐야 한다.
  만약 에이전트가 선택할 수 있는 행동이 셀 수 있는지, 유한한지 등에 따라 어떻게 행동을
  정의해야 하는지가 달라진다. 
  보상은 가장 설정하기 까다롭다. 강화학습 기법으로 보상을 어떻게 정의하느냐에 따라
  학습의 질이 민감하게 바뀔 수 있기 때문이다. 게임은 점수가 수치화되기에 간단할 수 있지만,
  실생활의 문제에 강화학습을 적용하려면 어렵다. 가장 마지막 목표를 이룰 때만 보상을 준다면
  보상이 희박하여 에이전트가 정보를 효율적으로 습득하지 않을 수도 있다.
  반면 너무 중간 보상을 많이 주면 에이전트는 중간 목표를 이루는 것에 안주해 최종 목표에 도달 못할 수도 있다.

 

4. 강화학습 기법 선택 및 에이전트 학습하기

- Q-학습, DQN, SAC 등과 같은 기법 중에서 선택해도 되고, 직접 새로운 알고리즘을 개발해도 된다.
  강화학습 기법을 선택하는 기준 중 가장 중요한 것은 '강화학습 문제의 성격'이다.
  예시로 Q-학습일 때는 상태와 행동 모두 셀 수 있고, 유한해야 한다.
  반대로 액터-크리틱 기법은 정책을 함수로 나타내기에 연속적으로 행동하는 에이전트를 학습하는데 사용된다.
  만약 같은 문제에 사용할 수 있는 기법이 여러 개면 그래프를 그려 기법을 비교해 볼 수 있다.

 

  강화학습 기법을 선택했다면 그 기법을 사용해 에이전트를 학습해야 한다.
  강화학습 에이전트를 학습하는 법은 지도학습 모델을 학습하는 방법과 매우 비슷하기에 
  강화학습 에이전트 구축을 시작하기 전에 지도학습을 먼저 공부하는 것이 좋다.
  다만 강화학습은 하이퍼파라미터에 상당히 민감하다고 알려져 있으므로, 조금 변함에 따라
  강화학습 에이전트의 성능이 매우 심하게 바뀐다. 따라서 다양한 하이퍼파라미터 조합을 시도해 보는 것이
  중요한 절차이다.

 

 

5. 강화학습 에이전트 평가 및 배포하기

- 강화학습 에이전트는 하나의 환경에서 보상을 최대화하는 것이 목적일 때가 많다.
  따라서 강화학습 에이전트의 성능을 평가할 때는 해당 환경에서 평균적으로 어떠한 보상을 받는지를 바탕으로
  평가를 진행해야 한다. 평가하고자 하는 에이전트가 있다면 시뮬레이터 등으로 환경과 여러 번 상호작용해
  누적 보상을 측정한다. 에이전트의 여러 시도를 이용해 얻은 보상의 평균 중 가장 높은 에이전트를 선택한다.

  때로는 평균 누적 보상 이외에 다른 정보를 사용하기도 한다.
  특히 실전에서 온라인으로 학습과 결정이 동시에 진행되는 상황에는 에이전트의 학습 과정을 사용해
  포괄적으로 평가한다. 에이전트의 학습 과정을 참고하자면, 초기에는 효과적인 정책을 모르기에
  안정적인 보상을 얻기 힘들다. 때로는 학습을 위한 정보를 얻기 위해 낮은 보상의 행동을 계속해야 할 수도 있다.
  하지만 정보를 충분히 얻으면 학습이 진행되고 지속적인 보상을 얻을 것이다. 이는 아래 그래프로 표현 가능하다.

출처 : 12.6 Evaluating Reinforcement Learning Algorithms‣ Chapter 12 Learning to Act ‣ Artificial Intelligence: Foundations of Computational Agents, 2nd Edition (artint.info)


 

  학습의 초기 부분에 누적 보상이 음수였다가 양수로 바뀌는 시점이 언제인지를 참고하면 해당 에이전트가
  언제부터 가치를 더하는 행동을 하는지 알 수 있다. 또한 음수 폭의 깊이를 활용하면 충분한 학습을 하기 위해
  초기에 얼마나 많은 보상을 희생해야 하는지도 가늠할 수 있다. 추가로 누적 보상의 분산을 살펴보며,
  에이전트가 얼마나 안정적으로 학습하는지도 알 수 있다. 마지막으로는 누적 보상의 기울기는 학습이 끝난 후
  에이전트의 평균 보상을 추정하는 값이다.

  배포할 강화학습 알고리즘을 선택했다면 시스템에 배포한다.
  강화학습 모델과 지도학습 모델의 차이점은 배포와 함께 온라인 학습을 할 수 있다는 것이다.
  즉 데이터의 분포가 바뀌었을 때 그에 맞게 정책을 바꿔갈 수 있다는 것이다.
  온라인 학습의 단점은 에이전트는 데이터의 분포가 바뀌었는지 알 수 없기에 이를 확인하기 위해
  적극적으로 탐색할 수도 있다. 때로는 아주 낮은 보상을 얻을 수 있다.
  이와 반대로 시뮬레이터에서 학습을 마친 강화학습 에이전트를 배포한 후 추가 온라인 학습을
  불가하게 할 수도 있다. 다만 이때는 지도학습과 같은 맥락에서 보상을 모니터링하고, 강화학습 에이전트를
  주기적으로 학습해 배포해야 한다.