是什麼讓探索變難
兩個性質會把普通任務變成 難探索問題(hard-exploration problem)。第一是 稀疏獎勵(sparse reward):環境沉默數百甚至數千步,只在最後才吐出獎勵,因此幾乎沒有梯度把智慧體拉向成功。第二是與 信用分配問題(credit-assignment problem)糾纏在一起的 延遲獎勵(delayed reward):即使獎勵終於到來,智慧體還得弄清楚是過去眾多動作中的哪些該記功。
图示:智能体在环境中执行动作,并获得状态与奖励反馈。
在稀疏獎勵下,第 1 篇的 無方向方法毫無希望——隨機動作基本上永遠不會串成那條漫長而正確的序列。這正是本主題一切方法之所以被發明、之所以重要的局面。
目前為止的工具箱
在面對最難的情況之前,先盤點一下。你現在握有一個分層的 探索策略工具箱,大致從最便宜到最強大:
- 無方向抖動——ε-greedy、Boltzmann:加起來毫不費力,獎勵接近時就夠用。
- 樂觀與後驗——UCB、Thompson/後驗抽樣:有原則、可證明高效,但需要不確定性估計。
- 計數式與偽計數:用密度模型把樂觀擴展到高維狀態。
- 好奇心——ICM、RND:對陌生事物給予內在獎勵;RND 能躲開雜訊電視陷阱。
脫離與脫軌
在最難的任務上,內在獎勵方法會苦於兩個相連的病症。脫離(detachment):智慧體把起點附近的新奇紅利耗盡,飄去探索別的區域,卻遺忘了一個有潛力但只探索了一部分的前緣——它已從那塊未完成的區域脫離,且可能再也回不去。脫軌(derailment):即使它記得某個有潛力的狀態,它賴以離開該狀態的隨機探索,也會把它從當初抵達該狀態所走的那條漫長而脆弱的路徑上撞下來。
内在奖励方法在外在奖励 r^e 之上叠加一个新颖性奖励 r^i——但一旦起点附近的奖励被耗尽,智能体就可能发生脱离。
這兩者合起來,意味著智慧體不斷重複探索淺層地帶,幾乎無法在自己最好的發現上繼續累積。進展的前緣崩塌得比推進還快。
Go-Explore:記住、返回,再探索
Go-Explore 演算法用一個簡單到近乎顯而易見、卻被所有人略過的想法,正面迎擊脫離與脫軌:先可靠地返回一個有潛力的狀態,然後才從那裡探索。 它維護一份它所抵達過、有趣狀態的明確檔案(archive)。每次迭代它會:(1) 從檔案中挑一個狀態,(2) 返回那裡——靠重播儲存的軌跡或重設一個確定性模擬器,而不是寄望隨機動作能重現那條路徑——並 (3) 從這個穩固的立足點探索,把找到的任何新狀態加進檔案。
从一个被记住的根节点出发、向外分支探索的状态树。
藉由把「返回」與「探索」分開,Go-Explore 永不脫軌(返回是可靠的,不是隨機的),也永不脫離(檔案是永久記憶)。它著名地成為第一個徹底解開《蒙特祖瑪的復仇》與《Pitfall》的方法,得分遠超先前方法。接著第二階段會把找到的解穩健化(robustify)——訓練一個神經網路策略去模仿檔案中的致勝軌跡,讓它即使在環境隨機時也能運作,而不只在確定性的探索階段。
這就是探索的整個弧線:從盲目的擲硬幣,到樂觀與好奇心,再到能記住自己去過哪裡、並刻意返回去推進前緣的系統。精通何時該動用哪一項工具,是強化學習中最深刻的實務技能之一。