跟著Sutton經典教材學強化學習中的蒙特卡羅方法

2020-12-11 大數據文摘

大數據文摘出品

作者:Ray Zhang

編譯:halcyon、龍牧雪

用動態規划去解決強化學習的相關問題基本夠了,但還是有很多限制。比如,你知道現實世界問題的狀態轉移概率嗎?你能從任意狀態隨機開始嗎?你的MDP是有限的嗎?

好消息是,蒙特卡羅方法能解決以上問題!蒙特卡羅是一種估計複雜的概率分布的經典方法。本文部分內容取自Sutton的經典教材《強化學習》,並提供了額外的解釋和例子。

初探蒙特卡羅

蒙特卡羅模擬以摩納哥的著名賭場命名,因為機會和隨機結果是建模技術的核心,它們與輪盤賭,骰子和老虎機等遊戲非常相似。

相比於動態規劃,蒙特卡羅方法以一種全新的方式看待問題,它提出了這個問題:我需要從環境中拿走多少樣本去鑑別好的策略和壞的策略?

這一次,我們將再引入回報的概念,它是長期的預期收益:

有時,如果環節不收斂,那麼我們使用折扣因子:

我們將這些回報Gt和可能的At聯繫起來試圖推導出:

根據大數定律,當N逼近∞時,我們能夠得到準確的期望。我們記i次模擬下標為i。

現在,如果這是一個馬爾科夫決策過程(MDP)(99%的強化學習問題都是),那麼我們知道它展現出了強馬爾科夫性質,也即:

有了這些,我們可以很容易推導得到這樣一個事實,即期望中的

是完全無關的,從現在開始,我們將使Gs指示從某個狀態開始的回報(移動那個狀態到t=0)。

解決值函數的一種經典方式是對第一次s的發生的回報進行採樣,也叫首次訪問蒙特卡羅預測。那麼一個找到最優V的一個有效的算法如下:

pi=init_pi()returns=defaultdict(list)for i in range(NUM_ITER):episode=generate_episode(pi)#(1) G=np.zeros(|S|) prev_reward=0 for (state,reward) in reversed(episode): reward+=GAMMA*prev_reward #breaking up replaces s eventually, #so we get first-visit reward. G[s]=reward prev_reward=reward for state in STATES: returns[state].append(state) V={state:np.mean(ret) for state, ret in returns.items()}

另一種方法是每次訪問蒙特卡羅預測,也就是你在每個環節中每一次發生s的回報都進行採樣。在兩種情況下,估計均成平方收斂於期望。

在蒙特卡羅方法的背景下,策略迭代的核心問題是,正如我們之前說過的,如何確保探索和開採?

一種補救大狀態空間探索的方法是,明確我們從一個特定的狀態開始並採取特定的行動,對所有可能性採用輪循方式對它們的回報採樣。這假定我們可以從任何狀態出發,在每一環節的開始採取所有可能的行動,這在很多情況下不是一個合理的假設。然而對於像21點紙牌遊戲這樣的問題,這是完全合理的,這意味著我們可以很容易地解決我們的問題。

在以下代碼中,我們只需要對我們之前的代碼(1)做一個快速的補丁:

# Before(Start at some arbitrary s_0,a_0)episode=generate_episode(pi)# After(Start at some specifics s,a)episode=generate_episode(pi,s,a)# loop through s, a at every iteration.

在線策略ε-貪婪策略

如果我們不能假設我們可以從任何狀態開始並採取任意行動那怎麼辦呢?好吧,那麼,只要我們不要太貪婪或者探索所有的狀態無窮次,我們仍然可以保證收斂,對嗎?

以上是在線策略方法的主要屬性之一,在線策略方法試圖去改善當前運行試驗的策略,與此同時,離線策略方法試圖改善一種不同於正在運行試驗的策略的策略。

說到這裡,我們要規則化「不要太貪婪」。一種簡答的方法是使用我們之前學過的k臂老虎機-ε-貪婪方法。回顧一下,我們以ε的概率從一個給定狀態下所有行動的均勻分布中挑選,以1-ε的概率我們選argmaxtq(s,a)行動。

現在我們問:對於蒙特卡羅方法,這是否收斂到最優π*?答案是它會收斂,但不是收斂到那個策略。

我們從q和一個ε-貪婪策略π(s)開始:

再一次,我們得到這個結論ε-貪婪策略,跟其他貪婪策略一樣,對於Vπ執行單調的改進。如果我們回退到所有的時間步,那麼我們得到:

這就是我們想要的收斂性。

然而,我們需要去發現這個策略實際上收斂到什麼。顯然,即使最優策略是確定性的,我們的策略也被迫是隨機的,不能保證收斂到π*。然而,我們可以修訂我們的問題:

假定不是我們的策略保持以概率ε的隨機性一致選擇行動,而是環境不管我們的策略的規定隨機選擇一個行動,那麼,我們能夠確保一個最優解。證明的大綱在(1)中顯示,如果等式成立,那麼我們π=π,因此我們有Vπ=Vπ於環境,這個等式在隨機性下是最優的。

離線策略:重要性採樣

讓我們介紹一些新的術語!

π是我們的目標策略。我們正努力優化它的預期回報。b是我們的行為策略。我們使b產π以後會用到的數據。π(a|s)>0b(a|s)>0 a∈A。這是收斂的概念。

離線策略方法通常有2個或者多個智能體,其中一個智能體產生另一個智能體需要的數據,我們分別叫它們行為策略和目標策略。離線策略方法比在線策略方法更異想天開,就像神經網絡之於線性模型更異想天開。離線策略方法往往更強大,其代價是產生更高的方差模型和較慢的收斂性。

現在,讓我們討論重要性採樣。

重要性採樣回答了這個問題:「給定Eπ[G],Eπ[G]是什麼?」換句話說,你怎樣使用從b的採樣中獲得的信息去決定π的期望結果。

一種你能想到的直觀方法就是:「如果b選擇a很多,π選a很多,那麼b的行為對於決π的行為是很重要的!」,相反:「如果b選擇a很多,π不曾選擇a,那麼b在a上的行為π在a上的行為沒有什麼重要性」,很有道理,對吧?

所以這差不多就知道重要性採樣的比率是什麼概念了。給定一個軌跡

,在給定策略π的條件下,這條準確的軌跡發生的概率為:

π和b之間的比率是:

普通的重要性採樣

現在,有很多方法可以利用

給我們一個Eπ[G]的很好的估計。最基礎的方法是利用普通的重要性採樣。假定我們採樣了N個環節:

定義S的第一次到達時間為:

我們想要估計Vπ(s),那麼我們可以使用經驗均值去通過首次訪問方法估計值函數:

當然,這可以很容易地推廣到每次訪問方法,但是我想用最簡單的形式來表達我的意思。這說明我們需要不同的方式來衡量每一環節的收益,因為對於π更容易發生的軌跡相比那些永遠不會發生的需要賦予更多的權重。

這種重要性採樣的方法是一種無偏估計量,但它存在極大的方差問題。假定第k個環節的重要性比率

是1000,這個數很大,但是確實可能發生。這是不是意味著獎勵也要1000倍甚至更多呢?如果我們只有一個環節,我們的估計是準確的。從長遠來看,因為我們有一個乘法關係,導致比率可能會爆炸式增長或者消失。這對於估計來說,有點令人擔憂。

加權重要性採樣

為了減小方差,一種簡單直觀的方法就是減少估計的大小,通過除以重要比率的大小的總和(有點像柔性最大激活函數):

這叫做加權重要性採樣,它是一種有偏估計(偏差漸進趨於0),但是減小了方差。在此之前,我們能夠得到一個普通估計量的病態無界方差,但是這裡的每個元素的最大權值都是1,通過此限制了方差有界。Sutton建議,在實踐中,總是使用加權重要性採樣比較好。

增值實現

與許多其它採樣技術一樣,我們可以逐步實現它。假設我們使用上一節的加權重要性採樣方法,那麼我們可以得到一些如下形式的採樣算法:

其中Wk可以是我們的權重。

我們想基於Nn來構造Nn+1,這是可行的。記Cn為

,我們會以如下方式持續更新這個計算和:

Cn的更新規則非常明顯:

現在Vn是我們的值函數,但是一個非常相似的類比也可以應用到我們的行為Qn。

當我們更新值函數的時候,我們也能更新我們的策略π,我們能夠用雖舊但是很好用argmaxtq(s,a)來更新π。

折扣意識重要性採樣

到目前為止,我們已經計算了回報,並採樣了回報得到了我們的估計。然而我們忽視了G的內部結構。它真的只是折扣獎勵的求和,我們未能將它納入到比率中ρ。折扣意識重要性採樣將γ建模為終止的概率。環節的概率在一些時間步t終止,因此必須是一個幾何分布geo(γ):

全部回報可以認為是對隨機變量Rt求期望:

可以構造一個任意的裂項求和如下:

以此類推,我們可以看到,令k從x處開始,那麼我們有γx

將上式代入G得到:

這將導致Rt項中的等效係數1,γ,γ2等。這就意味著,我們現在能夠分解Gt,並且在重要性採樣比率中使用折扣。

現在,回憶我們之前得到的:

如果我們擴展G,我們會有:

注意我們是怎樣在所有的回報中使用相同的比率的。一些回報,Gt.t+1,被整個軌跡的重要性比率相乘,這在模型假設:γ是終止概率下是不正確的。直觀上,我們想要給Gt.t+1Pt.t+1,這很容易:

啊,好多了!這樣,每個部分回報都有他們正確的比率,這極大解決了無界方差問題。

單個獎勵重要性採樣

另一種緩解p和它的方差問題的方式,我們可以將G分解為各個獎勵,然後做一些分析,讓我們研究一下Pt.T-1Gt.T:

對於每一項,我們有Pt.T-1γkRt+k+1。擴展p,我們發現:

在沒有常數γk的情況下求期望:

記住E(AB)=E(A)E(B)若且唯若它們是獨立的。顯然根據馬爾科夫性質,任意π(Ai|Si)和b(Ai|Si)都是獨立於Rt+k+1,(如果i≥t+k+1),且

(b也一樣)。由此我們能夠將它們分離出來,從而得到:

這個式子看起來也許非常醜,但是我們發現:

所以我們可以完全忽略後半部分,從而得到:

這是什麼意思呢?我們完全可以用期望來表示最初的和:

這又一次將減少我們估計量的偏差。

Python中的在線策略模型

因為蒙特卡羅方法通常都是相似的結構。我在Python中創建了一個離散蒙特卡羅類,可以用來插入和運行。

代碼下載:

https://github.com/OneRaynyDay/MonteCarloEngine

"""General purpose Monte Carlo model for training on-policy methods."""from copy import deepcopyimport numpy as npclass FiniteMCModel:def __init__(self, state_space, action_space, gamma=1.0, epsilon=0.1): """MCModel takes in state_space and action_space (finite) Arguments --------- state_space: int OR list[observation], where observation is any hashable type from env's obs. action_space: int OR list[action], where action is any hashable type from env's actions. gamma: float, discounting factor. epsilon: float, epsilon-greedy parameter. If the parameter is an int, then we generate a list, and otherwise we generate a dictionary. >>> m = FiniteMCModel(2,3,epsilon=0) >>> m.Q [[0, 0, 0], [0, 0, 0]] >>> m.Q[0][1] = 1 >>> m.Q [[0, 1, 0], [0, 0, 0]] >>> m.pi(1, 0) 1 >>> m.pi(1, 1) 0 >>> d = m.generate_returns([(0,0,0), (0,1,1), (1,0,1)]) >>> assert(d == {(1, 0): 1, (0, 1): 2, (0, 0): 2}) >>> m.choose_action(m.pi, 1) 0 """ self.gamma = gamma self.epsilon = epsilon self.Q = None if isinstance(action_space, int): self.action_space = np.arange(action_space) actions = [0]*action_space # Action representation self._act_rep = "list" else: self.action_space = action_space actions = {k:0 for k in action_space} self._act_rep = "dict" if isinstance(state_space, int): self.state_space = np.arange(state_space) self.Q = [deepcopy(actions) for _ in range(state_space)] else: self.state_space = state_space self.Q = {k:deepcopy(actions) for k in state_space} # Frequency of state/action. self.Ql = deepcopy(self.Q) def pi(self, action, state): """pi(a,s,A,V) := pi(a|s) We take the argmax_a of Q(s,a). q[s] = [q(s,0), q(s,1), ...] """ if self._act_rep == "list": if action == np.argmax(self.Q[state]): return 1 return 0 elif self._act_rep == "dict": if action == max(self.Q[state], key=self.Q[state].get): return 1 return 0 def b(self, action, state): """b(a,s,A) := b(a|s) Sometimes you can only use a subset of the action space given the state. Randomly selects an action from a uniform distribution. """ return self.epsilon/len(self.action_space) + (1-self.epsilon) * self.pi(action, state) def generate_returns(self, ep): """Backup on returns per time period in an epoch Arguments --------- ep: [(observation, action, reward)], an episode trajectory in chronological order. """ G = {} # return on state C = 0 # cumulative reward for tpl in reversed(ep): observation, action, reward = tpl G[(observation, action)] = C = reward + self.gamma*C return G def choose_action(self, policy, state): """Uses specified policy to select an action randomly given the state. Arguments --------- policy: function, can be self.pi, or self.b, or another custom policy. state: observation of the environment. """ probs = [policy(a, state) for a in self.action_space] return np.random.choice(self.action_space, p=probs) def update_Q(self, ep): """Performs a action-value update. Arguments --------- ep: [(observation, action, reward)], an episode trajectory in chronological order. """ # Generate returns, return ratio G = self.generate_returns(ep) for s in G: state, action = s q = self.Q[state][action] self.Ql[state][action] += 1 N = self.Ql[state][action] self.Q[state][action] = q * N/(N+1) + G[s]/(N+1) def score(self, env, policy, n_samples=1000): """Evaluates a specific policy with regards to the env. Arguments --------- env: an openai gym env, or anything that follows the api. policy: a function, could be self.pi, self.b, etc. """ rewards = [] for _ in range(n_samples): observation = env.reset() cum_rewards = 0 while True: action = self.choose_action(policy, observation) observation, reward, done, _ = env.step(action) cum_rewards += reward if done: rewards.append(cum_rewards) break return np.mean(rewards)if __name__ == "__main__": import doctest doctest.testmod()

如果你想在不同的庫中使用它,可以自己嘗試一下。

舉例:21點紙牌遊戲

在這個例子中,我們使用OpenAI的gym庫。在這裡,我們使用一個衰減的ε-貪婪策略去解決21點紙牌遊戲:

import gymenv = gym.make("Blackjack-v0")# The typical importsimport gymimport numpy as npimport matplotlib.pyplot as pltfrom mc import FiniteMCModel as MCeps = 1000000S = [(x, y, z) for x in range(4,22) for y in range(1,11) for z in [True,False]]A = 2m = MC(S, A, epsilon=1)for i in range(1, eps+1):ep = [] observation = env.reset() while True: # Choosing behavior policy action = m.choose_action(m.b, observation) # Run simulation next_observation, reward, done, _ = env.step(action) ep.append((observation, action, reward)) observation = next_observation if done: break m.update_Q(ep) # Decaying epsilon, reach optimal policy m.epsilon = max((eps-i)/eps, 0.1)print("Final expected returns : {}".format(m.score(env, m.pi, n_samples=10000)))# plot a 3D wireframe like in the example mplot3d/wire3d_demoX = np.arange(4, 21)Y = np.arange(1, 10)Z = np.array([np.array([m.Q[(x, y, False)][0] for x in X]) for y in Y])X, Y = np.meshgrid(X, Y)from mpl_toolkits.mplot3d.axes3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, projection='3d')ax.plot_wireframe(X, Y, Z, rstride=1, cstride=1)ax.set_xlabel("Player's Hand")ax.set_ylabel("Dealer's Hand")ax.set_zlabel("Return")plt.savefig("blackjackpolicy.png")plt.show()

當沒有可用的A時,我們得到一個非常漂亮的圖形,(網絡中Z為Flase)。

我也寫了一個模型的快速的離線策略版本,還沒有潤色過,因為我只想得到一個性能基準,這是結果:

Iterations: 100/1k/10k/100k/1million.Tested on 10k samples for expected returns.On-policy : greedy-0.1636-0.1063-0.0648-0.0458-0.0312On-policy : eps-greedy with eps=0.3-0.2152-0.1774-0.1248-0.1268-0.1148Off-policy weighted importance sampling:-0.2393-0.1347-0.1176-0.0813-0.072

舉例:懸崖行走

對代碼的更改實際上非常小,因為正如我所說的,蒙特卡羅採樣是與環境無關的,我們修改了這部分代碼(除去繪圖部分):

# Before: Blackjack-v0env = gym.make("CliffWalking-v0")# Before: [(x, y, z) for x in range(4,22) for y in range(1,11) for z in [True,False]]S = 4*12# Before: 2A = 4

們運行gym庫得到了Eπ[G]為-17.0。還不錯!懸崖行走問題是一幅一些區域為懸崖一些區域為平臺的地圖。如果你在平臺上行走,你的每一步將獲得-1的獎勵,如果你從懸崖上摔下來,將得到-100的獎勵,將你降落在懸崖上時,你會回到起點,不管地圖多大,每一個環節-17.0似乎是近乎最優的策略。

我們可以看到,蒙特卡羅方法對於計算任意行為和觀察空間具有詭異的概率分布的任務的最優值函數和行為值是一種很好的技術。在未來,我們會考慮蒙特卡羅方法更好的變體,但是這也是強化學習基礎知識中的一塊偉大的基石。

相關焦點

  • 重磅 經典教材 R.Sutton《增強學習導論》最新版
    Sutton 教授的經典教材《增強學習導論》(Reinforcement Learning: An Introduction)第二版近期更新,現書稿的草稿在其主頁提供,新智元編譯圖書的目錄部分,全書(英文版 draft)可在新智元公眾號下載。本書系統性地介紹了增強學習,共548頁,其中不乏許多新穎的應用案例分析。
  • 獨家專訪 | 強化學習教父Richard Sutton:也許能在2030年之前實現...
    2003 年之後,他成了阿爾伯塔大學計算機科學系的教授和 iCORE Chair,在這裡他領導著自己的「強化學習與人工智慧實驗室這個實驗室的名字 RLAI 似乎在說明強化學習(RL)是所有人工智慧問題的解決方案。但是,Sutton 博士在這次採訪之中給了我們一個不同視角的解釋。他指出有些人認為強化學習只是人工智慧問題的強化,但實際上強化學習問題是實現人工智慧的一種抽象的方法。
  • 蒙特婁大學開放MILA 2017夏季深度學習與強化學習課程視頻
    在 Sutton 最開始的課程中,他表明隨著計算力的增長,可擴展的能力也需要增長,這樣才是人工智慧的未來。Sutton 表明,即使是弱一些的一般方法也要比強大的特定方法好。因為監督學習和免模型的強化學習方法在泛化性能上十分欠缺。但是預測學習(Prediction Learning)是可泛化的,因為它是一種無監督學習。
  • Compute Goes Brrr:重溫強化學習之父Sutton關於AI的70年慘痛教訓
    文中,薩頓——這位曾(共同)撰寫過強化學習的教科書的人物——卻聲稱AI研究者們所付出的所有勤奮努力和聰明才華,對於整個大框架幾乎沒有起到任何推動作用。根據薩頓的說法,當前AI進步的主要驅動者,是日益提升的算力被用於實現我們既有的簡單的學習和搜索算法的結果,而其中包含的硬編碼的人類知識只是所需的最低水平。而薩頓認為,基於AI的方法應該是儘可能普適的方法,諸如無約束搜索和學習。
  • 參會福利,到場領周志華、李航、Sutton等人200本經典著作
    《機器學習》周志華著周志華老師的《機器學習》是機器學習領域的經典入門教材之一,內容上涵蓋了機器學習基礎知識的各方面。全書共 16 章,第 1-3 章主要介紹機器學習基礎知識,第 4-10 章主要討論經典而常用的機器學習方法,如決策樹、神經網絡、支持向量機等,第 11-16 章為進階知識,內容涉及特徵選擇與稀疏學習、計算學習理論、半監督學習、概率圖模型、規則學習以及強化學習等。現場共贈送 25 本。2.
  • Compute Goes Brrr:重溫強化學習之父Sutton關於AI的70年慘痛教訓
    文中,薩頓——這位曾(共同)撰寫過強化學習的教科書的人物——卻聲稱AI研究者們所付出的所有勤奮努力和聰明才華,對於整個大框架幾乎沒有起到任何推動作用。根據薩頓的說法,當前AI進步的主要驅動者,是日益提升的算力被用於實現我們既有的簡單的學習和搜索算法的結果,而其中包含的硬編碼的人類知識只是所需的最低水平。而薩頓認為,基於AI的方法應該是儘可能普適的方法,諸如無約束搜索和學習。
  • 2019歐洲自由行之:蒙特卡羅Monte Carlo
    這種聚散離合的戲碼常常在流浪中周而復始的出現與循環,早就司空見慣,已經習以為常!!就像談戀愛一樣,只有純純的初戀最為刻骨銘心,接下來的無數次再怎麼轟轟烈烈的戀情只會在記憶中隨著時光的流逝而煙消雲散。昨日下午的一場陣雨,把我與泰國美眉淋得有如落湯雞,別說幫她拍照,就連摩納哥的王宮都沒來得及逛就打道回府。
  • 免費新書《強化學習:簡介》
    Richard 和 Andrew的 「強化學習:簡介」。在閱讀原文裡面可以下載! 前言Richard 大神是斯坦福畢業的。目前在University of Alberta, 對強化學習裡面的Policy Gradient方法有著巨大的貢獻,並且博士畢業論文裡面提出了牛掰的「actor-critic」架構, 他在不遺餘力的創新和推廣強化學習。
  • 非英語專業學生,大學四年如何合理規劃英語學習?
    選擇適合自己的學習材料。最好是比自己現有水平稍難一些的,這樣可以進一步提升自己的能力,最好從一些經典的教材開始學起。也可以選擇一些難度小一些的原版小說或文章去閱讀,不要選擇一些深奧難懂的經典著作,不然你會很容易失去閱讀興趣。
  • 福建省雜技團奪得蒙特卡羅國際馬戲節"銀小丑"獎
    新華網福州1月19日電(記者許雪毅)新年伊始,摩納哥傳來喜訊,在剛剛落幕的第33屆蒙特卡羅國際馬戲節比賽中,福建省雜技團的《舞者——繩技》奪得本屆比賽的「銀小丑」獎。蒙特卡羅國際馬戲節被譽為雜技界的「奧斯卡」,由摩納哥國王雷尼埃三世於1974年創辦,經過30多年努力,已成為國際雜技、馬戲最高等級的賽場。
  • 馬斯克的OpenAI:全新方案有望取代強化學習,通用人工智慧並非不現實
    2013年,英國一家人工智慧創業公司DeepMind就教會了軟體如何在經典的Atari遊戲中戰勝人類頂級玩家,這在計算機科學界引起了不小的轟動。不久之後,DeepMind就被Google收購。這款神秘軟體背後的奧秘——強化學習,也逐漸成了人工智慧和機器人領域內的研究的熱點。去年,Google再次使用強化學習構建了一款戰勝人類頂級圍棋玩家的軟體。
  • 獨家| AAAI-17獲獎論文深度解讀(下):蒙特卡羅定位和推薦系統
    論文評選是以影響力為基礎的,比如:開啟了一個新的研究(子)領域導致了重要應用回答了一個長期困擾人們的問題/議題或者澄清了之前模糊的地方做出了能夠載入子領域歷史的主要貢獻已經被視為重要的研究,已經被人工智慧裡(或外)的其他領域使用已經被大量引用本屆經典論文有兩篇:一篇經典論文獎,一篇經典論文提名獎(Honorable Mention)。
  • 【強化學習實戰】基於gym和tensorflow的強化學習算法實現
    1新智元推薦【新智元導讀】知乎專欄強化學習大講堂作者郭憲博士開講《強化學習從入門到進階》,我們為您節選了其中的第二節《基於gym和tensorflow的強化學習算法實現》,希望對您有所幫助。同時,由郭憲博士等擔任授課教師的深度強化學習國慶集訓營也將於 10 月 2 日— 6 日在北京舉辦。
  • 獨家| AAAI-17獲獎論文深度解讀(下):蒙特卡羅定位和推薦系統
    論文評選是以影響力為基礎的,比如:開啟了一個新的研究(子)領域導致了重要應用回答了一個長期困擾人們的問題/議題或者澄清了之前模糊的地方做出了能夠載入子領域歷史的主要貢獻已經被視為重要的研究,已經被人工智慧裡(或外)的其他領域使用已經被大量引用本屆經典論文有兩篇:一篇經典論文獎,一篇經典論文提名獎(Honorable Mention)。
  • 強化學習中的線性代數知識
    線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。強化學習(RL)是一系列用於迭代性學習任務的智能方法。由於計算機科學是一個計算領域,這種學習發生在狀態向量、動作等以及轉移矩陣上。狀態和向量可以採用不同的形式。
  • 全球房價最高的蒙特卡羅,這座私人別墅拽在哪?
    蒙特卡羅(Monte Carlo)是「袖珍之國」摩納哥最大的城市,也是世界著名的賭城。迷人的藍色海岸線,浪漫的地中海風情,使蒙特卡羅成為世界著名的度假勝地之一。與其受歡迎的程度一樣火爆的是當地的房價。據報導,蒙特卡羅已連續第二年蟬聯全球房價最高市場榜單桂冠,平均房價高達每平方英尺4420美元(約合每平方米33.8萬人民幣)。「Faoma Live the Luxury Montecarlo 2019」是義大利豪華家具製造商 FAOMA 位於蒙特卡羅的整裝項目。這個現代風格私人別墅的定製項目總面積為400平方米,分布在三個樓層和一個地下室。
  • 七月的色彩,孫大威水墨藝術展在摩納哥蒙特卡羅開幕
    大眾網訊 應摩納哥阿爾貝二世親王的邀請,法國時間2018年7月20日晚6:00,「畫眼看世界」——歐洲站,孫大威水墨藝術作品展在位於蒙特卡羅海岸線的Espace  法國St Jean cap ferrati 市長Jean Francois 先生代表阿爾貝二世親王殿下出席了本次開幕式並致詞,市政展覽館館長Philippe Mari 先生,市政財政部長Richard conte 先生,法國beasolei 市長Jean Louis l』oli 先生,法國著名攝影家Alessandra d』avena 夫人,蒙特卡羅著名藝術品收藏家
  • 「句子級」的深度強化學習方法難以求解器空間
    backpropagation和progressivegradientxpress(引入hinton先驗,更多方法變為基於歷史記錄的scheme)都是深度學習起步之初的主流方法,除此之外還有包括reinforcementlearning和proximalandadaptiverl等重要進展。但是深度學習從起步到發展至今,說的上的諸多進展似乎都停留在rl的範疇。
  • 零基礎日語學習流程,看完你就知道如何避坑!
    想要學習日語的小夥伴,一定要先了解學習日語的流程,其實也可以當做為外語學習的流程,畢竟學習步驟都是大同小異的,今天日本村外教網小編就開始和帶領大家看一看學習日語要知道的流程,以及在日後我們在學習的過程中如何避免入坑。
  • 深度| 超越DQN和A3C:深度強化學習領域近期新進展概覽
    在這篇文章中,我希望探討深度強化學習領域內試圖解決這些挑戰的幾個近期研究方向,並且還會將其與人類認知進行優雅簡潔的對比。DQN 使用了兩個關鍵策略來使 Q 學習適用於深度神經網絡,而且這兩個策略也在後續的深度強化學習研究中得到了成功的應用。