2017-04-25 30 views
0

學習者可能正處於訓練階段,在那裏它會更新一堆時代的Q表。加強學習:在Q-learning培訓完成後,我是否必須忽略超參數(?)?

在這個階段,Q表會更新爲gamma(貼現率),學習率(alpha),並且動作將由隨機動作率選擇。

經過一段時間後,當獎勵變得穩定後,讓我稱之爲「訓練完成」。那麼在那之後我必須忽略這些參數(伽馬,學習率等)嗎?

我的意思是,在訓練階段,我從Q-表像這樣的動作:

if rand_float < rar: 
    action = rand.randint(0, num_actions - 1) 
else: 
    action = np.argmax(Q[s_prime_as_index]) 

但經過訓練階段,我必須刪除rar,這意味着我得從操作像這樣的Q桌子?

action = np.argmax(self.Q[s_prime]) 
+0

你使用哪些語言和庫?添加標籤。 – user31264

+0

我不使用任何庫...我自己做了整個系統 – user3595632

+0

似乎這是一個問題stats.stackexchange.com或ai.stackexchange.com – user31264

回答

2

一旦價值函數收斂(值停止變化),您不再需要運行Q值更新。這意味着gamma和alpha不再相關,因爲它們隻影響更新。

epsilon參數是探索策略(e-greedy)的一部分,有助於確保代理無限次訪問所有狀態。這是確保代理人的價值函數最終收斂到正確價值的重要因素。然而,一旦我們認爲價值函數收斂了,就沒有必要繼續隨機採取行動,我們的價值函數並不認爲是最好的;我們認爲價值函數是最優的,所以我們通過貪婪地選擇它所說的在每個州中最好的行爲來提取最優策略。我們可以將epsilon設置爲0.

+0

謝謝,尼克! :) – user3595632

+0

還有一件事。在訓練狀態下,我是否必須在每個新時代重新啓動「rar」?如果我在每個時代都重新啓動'rar',它就不會收斂! ..認爲它會花費那麼多時間....? – user3595632

+0

正如巴勃羅的回答指出的那樣,「你應該減少劇集數量(或步驟)的epsilon參數(在你的情況下)。」所以不要每一集重新初始化它,只要讓它繼續衰減。 –

1

儘管@Nick Walker提供的答案是正確的,但這裏還是一些附加信息。

你所談論與技術上稱爲「勘探開採權衡」的理念密切相關。從Sutton & Barto book

劑具有利用它已經知道爲了獲得 獎勵,但它也有爲了做出更好的行動 選擇在未來的探索。困難之處在於,無論是勘探還是開採都不能在沒有完成任務的情況下完成。 代理商必須嘗試各種操作,並逐漸傾向於看起來最好的那些 。實現勘探開採權衡

一種方法是使用的ε-貪婪探索,這是您使用的代碼示例中的內容。所以,最後,一旦代理人已經收斂到最優策略,代理人必須只選擇那些利用當前知識的人,即,你可以忘記rand_float < rar部分。理想情況下,你應該減少epsilon參數(在你的情況下)與劇集(或步驟)的數量。

在另一方面,對於學習率,這一點,實在值得指出的是,理論上該參數應遵循Robbins-Monro conditions

enter image description here

這意味着,學習率應漸進下降。所以,再一次,一旦算法已經收斂,你可以(或更好地,你應該)安全地忽略學習速率參數。

實際上,有時您可以簡單地保持一個固定的epsilon和alpha參數,直到您的算法收斂,然後將它們設置爲0(即忽略它們)。