簡體   English   中英

在強化學習中定義狀態,Q和R矩陣

[英]Defining states, Q and R matrix in reinforcement learning

我是RL的新手,正在介紹幾本書和教程,但是我有一個基本問題,希望在這里找到基本答案。

參考的主要書籍: Sutton&Barto第二版和一個博客

問題描述(僅Q學習方法):代理必須從點A到達點B,並且它是一條直線,點B是靜態的,只有代理的初始位置始終是隨機的。 ----------- A(60,0)--------------------------------- -B(100,0)------------->

保持簡單性Agent始終朝前進方向移動。 B始終處於X軸位置100,這也是一個進球狀態,並且在第一次迭代中A處於60 X軸位置。 因此,動作將只是“前進”和“停止”。 獎勵結構是在A到達點B時獎勵代理商100,否則保持0,而當A越過B時獎勵-500。 因此,特工的目標是到達並停在位置B。

1)在這種情況下,從A點到B點需要多少個狀態? 以及如何為此定義Q和R矩陣? 2)如果發現新狀態,如何添加新的行和行?

任何幫助將不勝感激。

Q_matrix的實現:

Q_matrix((find(List_Ego_pos_temp == current_state)) , 
                    possible_actions) = Q_matrix(find(List_Ego_pos_temp == current_state),possible_actions) + this.learning_rate * (Store_reward(this.Ego_pos_counter) + ...
                    this.discount * max(Q_matrix(find(List_Ego_pos_temp == List_Ego_pos_temp(find(current_state)+1))),possible_actions) - Q_matrix((find(List_Ego_pos_temp == current_state)) , possible_actions));

該實現在matlab中。 List_Ego_pos_temp是一個臨時列表,用於存儲代理的所有位置。

同樣,可以說有十個狀態1到10,我們還知道代理在每種狀態下以什么速度和距離移動才能到達狀態10,並且代理始終只能順序移動,這意味着代理可以從s1到s2到s3到s4直到10,而不是s1到s4或s10。 假設在s8是目標狀態,獎勵= 10,s10是終極狀態,獎勵是-10,從s1到s7,它收到的獎勵為0。因此,如果當前狀態是計算Q表的正確方法被認為是狀態1,下一個狀態是狀態2,在下一次迭代中,當前狀態是狀態2,下一個狀態是狀態3,依此類推? 這將正確地計算Q表,因為已經饋入了下一個狀態,並且沒有預測到什么?

由於您是在這種情況下定義問題的,因此許多變量都取決於您。

  1. 您可以定義一個最小狀態(例如0)和一個最大狀態(例如150),並將每個步驟定義為一個狀態(因此您可以擁有150個可能的狀態)。 那么100將是您的目標狀態。 然后,您的操作將定義為+1(向前移動一步)和0(停止)。 然后,對於所有可能的狀態和所有動作,Q矩陣將為150x2矩陣。 獎勵將是您定義的標量。

  2. 由於您已定義了整個Q矩陣,因此無需添加新的列和行。

祝你好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM