강화 학습에서 상태를 정의하는 방법?


14

강화 학습과 그 변형을 공부하고 있습니다. 알고리즘이 작동하는 방식과 MDP에 적용되는 방법을 이해하기 시작했습니다. 내가 이해하지 못하는 것은 MDP의 상태를 정의하는 과정입니다. 대부분의 예제와 자습서에서는 그리드의 사각형 또는 이와 유사한 사각형과 같은 간단한 것을 나타냅니다.

보행하는 로봇 학습 등과 같은보다 복잡한 문제의 경우 이러한 상태를 정의하는 방법은 무엇입니까? 학습 또는 분류 알고리즘을 사용하여 해당 상태를 "학습"할 수 있습니까?

답변:


14

RL (Reinforcement Learning)의 상태 표현 문제는 감독 또는 비지도 학습의 기능 표현, 기능 선택 및 기능 엔지니어링 문제와 유사합니다.

RL의 기초를 가르치는 문헌은 모든 상태를 열거 할 수 있도록 매우 간단한 환경을 사용하는 경향이 있습니다. 이를 통해 테이블의 기본 롤링 평균으로 가치 추정치를 단순화하여 이해하고 구현하기가 더 쉽습니다. 표 학습 알고리즘은 또한 이론적으로 수렴에 대한 합리적인 보장을 가지고 있습니다. 즉, 수백만 개 미만의 상태를 갖도록 문제를 단순화 할 있다면 시도해 볼 가치가 있습니다.

가장 흥미로운 제어 문제는이 수를 분리하더라도 해당 수의 상태에 맞지 않습니다. 이것은 " 차원의 저주 "때문입니다. 이러한 문제의 경우 일반적으로 로봇, 다양한 위치, 각도, 기계 부품의 속도 등 다양한 기능의 벡터로 상태를 나타냅니다. 지도 학습과 마찬가지로 특정 학습 프로세스에서 사용하기 위해이를 학습 할 수 있습니다. 예를 들어 일반적으로 모두 숫자로 표시하고 신경망을 사용하려면 표준 범위 (예 : -1 ~ 1)로 정규화해야합니다.

다른 기계 학습에 적용되는 위의 우려 외에도 RL의 경우 Markov 속성에 관심이 있어야합니다. 상태는 충분한 정보를 제공하므로 예상되는 다음 보상 및 조치가 주어진 다음 상태를 정확하게 예측할 수 있습니다. 추가 정보가 필요하지 않습니다. 예를 들어 바퀴 달린 로봇의 공기 밀도 또는 온도 변화로 인해 작은 차이가 완벽 할 필요는 없으며 일반적으로 내비게이션에 큰 영향을 미치지 않으므로 무시할 수 있습니다. RL 이론을 고수하는 동안 본질적으로 무작위 인 모든 요소도 무시할 수 있습니다. 에이전트가 전체적으로 덜 최적 일 수 있지만 이론은 여전히 ​​작동합니다.

결과에 영향을 미치는 일관된 알 수없는 요인이 있고 논리적으로 추론 될 수있는 경우 (아마도 상태 또는 작업 기록에서) 추론 할 수 있지만 상태 표시에서 제외한 경우 더 심각한 문제가있을 수 있으며 상담원이 학습에 실패 할 수 있습니다 .

여기서 관찰상태 의 차이를 주목할 가치가 있습니다 . 관찰은 수집 할 수있는 일부 데이터입니다. 예를 들어 로봇의 관절 위치를 피드백하는 센서가있을 수 있습니다. 상태는 Markov 속성을 가져야하므로 단일 원시 관측치로는 적절한 상태를 만들기에 충분한 데이터가 없을 수 있습니다. 이 경우 사용 가능한 데이터에서 더 나은 상태를 구성하기 위해 도메인 지식을 적용하거나 부분적으로 관찰 가능한 MDP (POMDP)를 위해 설계된 기술을 사용하려고 시도 할 수 있습니다. 상태 데이터의 누락 된 부분을 효과적으로 작성하려고합니다. 통계적으로. 이를 위해 RNN 또는 숨겨진 마르코프 모델 ( "믿음 상태"라고도 함)을 사용할 수 있으며 어떤 식 으로든 "요청한대로 " 상태를"학습 "하는 학습 또는 분류 알고리즘 .

마지막으로 사용하려는 근사 모델 유형을 고려해야합니다. 지도 학습과 비슷한 방법이 여기에 적용됩니다.

  • 도메인 지식을 기반으로 설계된 기능을 사용한 간단한 선형 회귀 분석은 매우 효과적입니다. 선형 근사법이 작동하도록 다른 상태 표현을 시도하는 데 열심히 노력해야 할 수도 있습니다. 이 간단한 접근법은 비선형 근사치보다 안정성 문제에 대해 더 강력하다는 장점이 있습니다.

  • 다층 신경망과 같은 더 복잡한 비선형 함수 근 사기. 보다 "원시"상태 벡터를 제공 할 수 있으며 숨겨진 레이어가 적절한 추정치로 이어지는 구조 또는 표현을 찾을 수 있기를 바랍니다. 어떤면에서는 이것도 "상태를"학습 "하는 학습 또는 분류 알고리즘 이지만 RNN이나 HMM과는 다른 방식입니다. 상태가 자연스럽게 화면 이미지로 표현 된 경우이 방법은 합리적인 방법 일 수 있습니다. 이미지 데이터의 기능 엔지니어링을 직접 파악하는 것은 매우 어렵습니다.

DeepMindAtari DQN 작품 팀 은 피처 엔지니어링과 심층 신경망에 의존하여 결과를 달성했습니다. 이 기능 엔지니어링에는 이미지를 다운 샘플링하여 이미지를 그레이 스케일로 줄이고 중요한 Markov 속성에서는 단일 상태를 나타내는 4 개의 연속 프레임을 사용하여 객체 속도에 대한 정보가 상태 표현에 포함되도록했습니다. 그런 다음 DNN은 이미지를 상태 값에 대한 예측에 사용할 수있는 고급 기능으로 처리했습니다.


3

복잡한 문제를 모델링하는 일반적인 초기 방법은 이산화 였습니다. 기본적으로 복잡하고 연속적인 공간을 그리드로 분할합니다. 그런 다음 불연속 선형 공간을 위해 설계된 클래식 RL 기술을 사용할 수 있습니다. 그러나 당신이 상상할 수 있듯이 조심하지 않으면 많은 문제가 발생할 수 있습니다!

Sutton & Barto의 고전 서적 강화 학습 (Reinforcement Learning) 에는 다른 방법으로 이에 대한 제안이 있습니다. 하나는 타일 ​​코딩으로 , 새로운 두 번째 에디션 의 섹션 9.5.4에서 다룹니다. 입니다. 타일 ​​코딩에서 우리는 그리드 간격이 다른 많은 그리드를 생성합니다. 그런 다음 격자를 서로 겹쳐 놓습니다. 이것은 불연속 영역의 불균일 한 모양을 만들고 다양한 문제에 잘 작동 할 수 있습니다.

섹션 9.5는 또한 연속 공간을 방사형 기저 함수 및 거친 코딩을 포함하여 개별 MDP로 인코딩하는 다양한 다른 방법을 다룹니다. 확인 해봐!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.