AI Repository/DRL

DRL 환경 - 상태의 설계

조금씩 차근차근 2025. 9. 28. 22:35

DRL을 이용하여 새로운 문제를 해결하려면 일단 환경이 존재해야 한다.
환경의 구현을 위해 디지털 트윈(Digital Twin)과 같은 환경을 구성하는 다양한 방식들이 논의되고 있지만, 그 모든 환경의 구현 이전에는 문제의 모델링이 우선되어야 한다.

 

강화학습의 문제 모델링에 대해서는 다음 네 가지를 고려해야 한다.

  • 상태
  • 행동
  • 보상
  • 전이함수

이번 글에서는 이 중 상태에 집중해서 알아볼 것이다.

 

상태를 구현하는 데에는 다음 세가지를 고려해야 한다.

  • 상태의 완결성(completeness)
    • 상태의 표현이 세상이 제공하는 정보가 충분히 포함되어 있어서 문제를 해결하는 데 무리가 없는가?
  • 상태의 복잡성(complexity)
    • 상태의 표현이 얼마나 효과적이고 상태의 표현을 위해 요구되는 계산량은 얼마인가?
  • 상태 정보 손실(information loss)
    • 상태의 표현에 누락된 정보는 없는가? 예를 들면, 언제 이미지를 그레이스케일링 또는 다운스케일링하는가?

우선, 상태의 예제를 몇 가지를 확인하고, 각 질문에 대한 상세한 정보를 알아보자.

상태의 예제


상태는 위 그림에서 보듯이, 다양한 형태로 존재할 수 있다.
하지만 결국 개발자는 위와 같이 주어진 데이터를 우리가 원하는 형태로 바꿔(전처리) 사용해야 한다.

 

상태의 각 단계에 대해 알아보자.

원시 상태

우리는 우선 '세상에 대한 어떤 정보를/어떤 형태로 포함할 것인지'부터 결정해야 한다.

  • 레이더 데이터
  • 라이다 센서 값
  • RGB 이미지
  • etc.

이렇게 궁극적으로 선택된 정보를 원시 상태(raw state)라 한다.

설계된 상태

문제에 대한 지식을 활용하여 유용하다고 생각하는 정보를 좀 더 직접적으로 표현하면 더 단순한 상태를 설계할 수 있다.

  • 이미지 다운사이징
  • 그레이스케일링

이와 같은 작업을 적용한 것을 설계된 상태(designed state)라 한다.

전처리된 상태

에이전트는 환경으로부터 원시 상태 또는 설계된 상태를 취해서 용도에 맞게 전처리할 수 있다.

  • 일련의 그레이스케일 이미지를 한데 모아서 하나의 입력으로 만들기

이를 전처리된 상태(preprocessed state)라 한다.


이와 같이 상태를 설계를 하는 것은 매우 중요한데, 일반적으로 복잡한 상태는 문제 해결을 더디게 만든다.
"날 것 그대로 표현해야 숨겨진 패턴을 알기 쉬운 것 아닌가?"라는 생각이 들 수 있지만, 복잡한 상태는 모델이 탐색해야 할 범위를 넓혀, 모델을 더욱 방황하게 만든다.

 

따라서 원래의 의도가 무엇인지 파악하고, 의도한 만큼 상태를 단순하게 만드는 것이 중요하다.

이 부분은 '상태의 복잡성' 부분을 읽고 나면 더욱 깊게 이해 가능하다.


상태의 완결성

원시 상태를 설계하는 것에 대해 이야기해보자.
가장 중요한 질문은 "원시 상태가 문제에 대한 충분한 정보를 갖고 있는가"이다.

  • 완전히 관측 가능한 문제(MDP)인가?
  • 부분적으로 관측 가능한 문제(POMDP)인가?

예를 들어, 실제 세상의 로보틱스 시나리오에서는 컴퓨터에서 모터로 신호가 전달되는 데 시간이 걸리기 때문에 고정밀 제어를 위해서는 이러한 효과를 고려해야 한다.

원시 상태를 설계할 때 고려해야 할 것들

  • 관측 가능성
    • 완전히 관측 가능한 문제(MDP)인가?
    • 부분적으로 관측 가능한 문제(POMDP)인가?
  • 데이터 패턴
    • 데이터 유형은 무엇인가?
    • 데이터가 이산적인가? 연속적인가?
    • 데이터의 밀도가 높아질 것인가 낮아질 것인가?
    • 데이터에 순서가 있는가?
  • 상태 공간
    • 상태 공간의 카디널리티는 어떤가?
    • 적은 양의 계산으로 상태를 얻을 수 있나?
  • 필요한 데이터 수
    • 문제 해결을 위해 얼마나 많은 데이터가 필요한가?

카디널리티는 수학적으로 '집합의 원소 개수'를 의미하며, 여기선 데이터의 종류의 수라고 이해해도 좋다.

 

필요한 데이터 수에 대한 간단한 경험적 추정 방법은 다음과 같다.

"사람이 문제를 해결하는 데 필요한 데이터 수 *1000 ~ 100만

 

예를 들어, 사람이 아타리 게임을 잘하는 데는 10~100개 사이의 에피소드가 필요하다.
하지만 알고리즘이 사람과 동일한 수준으로 학습하려면 일반적으로 1,000만개의 프레임(대략 10,000개의 에피소드)이 필요하다.


상태의 복잡성

자료구조 설계에서는 상태 계산의 복잡성을 고려해야 한다.
이러한 복잡성은 다음 두 가지 형태로 나타날 수 있다.

  • 용이성(tractability)
  • 특징 표현의 효과성 (effectiveness of feature representation)

용이성

용이성은 상태 공간의 카디널리티와 연관된다.

이는 컴퓨터공학에서 다루는 complexity개념과 매우 유사하다.

 

간단한 예를 들어보자.
강화학습 알고리즘이 아타리 게임에 대해 잘 작동하기 위해서는 일반적으로 수백만개의 프레임이 필요하다.

  • 다운사이징된 그레이스케일 이미지의 일반적인 프레임은 7KB이다.
    • 따라서 그 합은 총 70GB이다.
  • 반대로, 1MB의 고해상도 이미지를 그대로 사용한다면 어떨까?
    • 총 10TB 상당의 메모리가 필요해진다.

특징 표현의 효과성

또한 이 점도 생각해볼 수 있다.
문제를 충실하게 재생산하는 환경 모델은 너무 많은 원시 데이터를 생성해서 실제적인 계산이 어려워질 수도 있다.
따라서 문제와 관련된 것들을 나타내기 위해 보통은 원시 상태를 압축하고 적절히 설계된 특성을 추출해야 한다.


상태의 복잡성 해결

그럼 이 상태의 복잡성 해결은 크게 어떤 방식으로 해결할 수 있을까?
이는 크게 두가지 방식으로 이야기할 수 있다.

  • 정보 압축
  • 노이즈 제거

이를 수행하는데는 특성 공학이 주요하게 작동한다.
특성 공학에 대해선 추가 설명이 조금 필요하니, 조금 자세히 이야기하도록 하겠다.

특성 공학

잠재적인 특성 표현이 다수 존재한다고 할 때, 동일한 알고리즘이 그 모든 특성에 대해 실행되면 무슨 일이 벌어질까?

  • 저장 용량이 지나치게 커질까?
  • 계산 비용이 너무 많이 들어서 솔루션의 현실성이 떨어질까?
  • 원시 상태로부터 특성을 추출하는 데 들어가는 계산 비용은 얼마인가?

여기서 계산을 용이하게 해주기에 충분하면서, 처리해야 할 데이터를 너무 많이 생성하지 않는 것이 중요하다.

 

특성 공학의 장단점

  • 특성 공학의 장점
    • 상태의 카디널리티가 줄어든다.
    • 모델이 데이터를 처리하는 데 필요한 복잡성도 크게 감소한다.
  • 특성 공학의 단점
    • 그 방식이 문제에 대한 사람의 지식에 의존한다. 즉, 사람의 지식에 의한 편향이 일어날 수 있다.

반드시 특성 공학만이 유리한 것은 아니다.
실제로 OpenAI Five는 도타2를 학습할 때, 크립과 영웅(롤의 미니언과 챔피언), 아이템, 위치, 터렛 정보 등 거의 모든 정보를 1024개의 유닛으로 된 LSTM 네트워크로 전달했다.
그 결과, 2019년 OpenAI Five는 TI(롤의 롤드컵) 전년도 우승팀을 꺾을 수 있었다.


상태 정보 손실

상태를 압축/노이즈 제거 시, 중요한 정보가 소실될 위험 또한 존재한다.
이러한 위험이 발생하지 않게 하는 것이 설계자의 의무다.

 

주로 데이터 손실은 다음과 같은 세가지 경우에 발생하게 된다.

  • 실수로 누락(기본)
    • 중요한 정보가 실수로 배제되지 않았는지 확인해야 한다.
  • 해시 충돌(정량적)
    • 큰 집합을 작은 공간에 매핑할 때, 구별되어야 할 요소가 다른 것과 합쳐지지 않았는지 확인해야 한다.
  • 정보맹(정성적)
    • 사람의 관점에서 미묘한 정보, 정성적 정보, 또는 메타 정보가 손실되지 않았는지 확인해야 한다.

이렇게 글만 봐서는 제대로 이해하기 어렵다.

  • 이미지 그레이스케일링
  • 이산화
  • 부적절한 표현으로 인해 발생하는 메타 정보 손실

지금부터 위 세가지 예시에 대하여 발생할 수 있는 정보 손실에 대해 알아보자.

해시 충돌 1: 이미지 그레이스케일링


이미지 다운사이징/그레이스케일링을 수행할 때는 탐색 과정에서의 중요한 요소가 사라지지 않도록 해야 한다.
그러기 위해서 이와 같이 수정된 데이터를 직접 살펴보는 것은 좋은 시도이다.

해시 충돌 2: 이산화

이산화 시에는 그 사이에 있는 연속된 구간에 존재하는 정보가 손실되게 된다.
그렇다면, 그 손실되는 정보가 중요한 정보는 아닌지 검사 또한 해봐야 한다.

정보맹: 메타 정보 손실

체스를 1차원으로 표현한다고 해보자.
주로 이 정보는 현재 기물의 위치(N: E3)와 체스 기보(NxE3 - 나이트가 E3로 이동하여 기물을 잡음)으로 표현하지만, 초보자는 이 정보를 알기가 어렵다.
게다가 초보자는 이 정보로 기물이 어떠한 규칙으로 움직이는지 또한 이해하기 어렵다.

 

 

이러한 예시가 메타 정보 손실의 예제이다. 메타 정보 손실은 정보 그 자체를 봐서는 분명히 드러나지 않는다.
정보의 외적 맥락을 봐야 한다.

 

 

이러한 메타 정보는 공간에만 발생하는 것이 아니라, 시간 차원에서도 발생할 수 있다.
사진 한장만 봐서는, 차량이 어느쪽으로 이동하는지 알 수 없다.
이는 여러 장의 사진이 시간 순으로 주어진다면, 파악할 수 있는 정보이기도 하다.

 

 

 

이는 역으로 이용할 수 있기도 하다.
기계는 사람보다 변화에 더 민감하다.
따라서 1px변화는 그다지 크다고 인식하지 않을 수도 있다.
하지만 사람은 5px 정도 변화가 일어나야 비로소 이동했다고 느끼고, 이럼에도 학습에 무리는 없다.
그래서 의도적으로 프레임을 건너뛰는 기법 또한 적용할 수 있을 것이다.

요약

세상으로부터 추출된 원시 상태가 문제를 해결하기 위해 필요한 정보를 완벽히 갖추고 잇는지 생각해 봐야 한다.
그런 다음 원시 상태를 이용해서 상태의 표현을 설계할 수 있다.
상태를 설계할 때 고려해야 할 중요한 요소는 다음 세가지를 기준으로 생각할 수 있다.

  • 상태의 복잡도
    • 유용성의 측면에서 상태의 계산 복잡도는 낮아야 한다.
  • 상태의 완결성
    • 상태 정보로 학습할 수 있을 정도의 데이터가 들어가야 한다.
  • 상태 정보 손실 여부
    • 문제 해결에 중요한 정보가 상태 표현에 누락되어선 안된다.

본 글은 단단한 심층강화학습 도서를 참고하여 작성되었습니다.

 

단단한 심층강화학습 - 예스24

심층강화학습의 확고한 기반을 다지기 위한 완벽한 방법!이 책은 이론과 실무적 내용을 독특하게 결합한 심층강화학습 소개서다. 직관적인 설명에서 시작하여 심층강화학습 알고리즘에 대한

www.yes24.com