2014-10-28 5 views
1

큰 상태 공간을 추상화하여 처리 할 수있는 보강 학습 라이브러리 또는 프레임 워크를 추천 할 수있는 사람은 누구입니까?계층 적 강화 학습의 구현

저는 게임 세계에서 소규모 에이전트를위한 인텔리전스를 구현하려고합니다. 에이전트는 앞뒤로 움직이고 좌우로 움직일 수있는 작은 2 륜 로봇으로 표현됩니다. 지상의 경계를 감지하는 두 개의 센서, 멀리있는 물체를 감지하기위한 몇 개의 초음파 센서, 물체 또는 상대방과의 접촉을 감지하는 몇 개의 범프 센서가 있습니다. 또한 시작 위치를 참조로 사용하여 세계에서의 위치를 ​​추정하기위한 단순한 추측 계산을 수행 할 수 있습니다. 그래서 사용할 수있는 모든 국가의 기능은 다음과 같습니다

edge_detected=0|1 
edge_left=0|1 
edge_right=0|1 
edge_both=0|1 
sonar_detected=0|1 
sonar_left=0|1 
sonar_left_dist=near|far|very_far 
sonar_right=0|1 
sonar_right_dist=near|far|very_far 
sonar_both=0|1 
contact_detected=0|1 
contact_left=0|1 
contact_right=0|1 
contact_both=0|1 
estimated_distance_from_edge_in_front=near|far|very_far 
estimated_distance_from_edge_in_back=near|far|very_far 
estimated_distance_from_edge_to_left=near|far|very_far 
estimated_distance_from_edge_to_right=near|far|very_far 

목표는 보상 신호가 수신 상태를 확인하고, 가능한 한 빨리 그 보상을 획득 할 수있는 정책을 배우는 것입니다. 전통적인 마르코프 모델에서이 상태 공간은 이산 적으로 2985984 개의 가능한 값을 가질 것이며 이는 Q- 학습이나 SARSA와 같은 것을 사용하여 각각을 탐구하기에는 너무 많이합니다.

누구나이 도메인에 적합한 강화 라이브러리 (가급적이면 파이썬 바인딩이 있음) 나 잠재적으로 구현할 수있는 구현되지 않은 알고리즘을 추천 할 수 있습니까?

답변

3

실제 상태는 세계에서 로봇의 위치와 방향입니다. 이러한 센서 판독 값을 사용하는 것은 많은 상태를 구별 할 수 없으므로 근사치입니다.

이제이 길로 가면 선형 함수 근사를 사용할 수 있습니다. 그렇다면이 것은 24 개의 이진 특성 (12 0 | 1 + 6 * 2 | far | very_far)입니다. 이것은 학습을 위해 모든 기능 쌍을 사용할 수있는 작은 숫자입니다. 이 길 아래에서는 기능 의존성을 온라인으로 발견 할 수 있습니다 (예 : Alborz Geramifard의 보고서 참조). 이는 계층 적 학습에 대한 귀하의 관심과 직접 관련이 있습니다.

대안은 로봇의 위치를 ​​추적하고 위치를 RL의 입력으로 사용하기 위해 기존 알고리즘을 사용하는 것입니다.

+0

RL의 컨텍스트에서 선형 함수 근사에 대한 소개를 권장 할 수 있습니까? 나는 그것에 익숙하지 않다. 그리고 그렇습니다. 국가 근사는 의도적입니다. 왜냐하면 로봇이 실제 유클리드 위치와 방향을 절대 알 수없는 "실제 세계"에서 로봇을 시뮬레이트하기 때문입니다. – Cerin

+0

고전 Sutton과 Barto를 추천합니다. http://webdocs.cs.ualberta.ca/~sutton/book/the-book.html –

+0

"모든 기능 쌍을 사용할 수도 있습니다."라는 대답을 발견했습니다. 그 소리는 (2^24)^2 = 2^48 ~ 10^14입니다. 그것은 작지 않습니다 .. – javadba