JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

探索與利用的兩難

為什麼一個只追逐當下最佳猜測的智慧體會卡住——以及最簡單的隨機化解法:ε-greedy 與 Boltzmann。

用一家餐廳理解兩難

想像你搬到一個新城鎮。你嘗試的第一家還不錯的餐廳,就成了你已知的好選擇。每天晚上你都要抉擇:回到你已經喜歡的那家(利用你已知的資訊),還是試試某家可能更好、也可能更差的新店(探索)。每晚都回老店,你或許永遠發現不了兩條街外那家超棒的餐廳;每晚都賭一把,你又會吃下一堆難吃的晚餐。這就是 探索與利用的取捨(explore–exploit tradeoff),它是每一個學習型智慧體的核心。

在強化學習中,智慧體一開始並不知道哪些動作最好——它只能透過嘗試動作、並觀察回傳的 獎勵(reward)來學習。因此它不能單純挑選最佳動作:在探索得夠多之前,它對「最佳」的認知可能根本是錯的。整個 探索策略(exploration strategies)領域,談的就是如何聰明地花用你有限的嘗試次數。

智能体–环境循环:智能体尝试一个动作,只能从返回的奖励中学习——正是这一循环带来了探索与利用的权衡。

强化学习循环示意图:智能体向环境发送动作,环境返回新状态和奖励。

兩種探索方式:盲目 vs. 有方向

從一開始就值得牢記一個深刻的區分:有方向 vs. 無方向探索(directed vs. undirected exploration)。無方向探索注入的隨機性會忽略智慧體已知的資訊——它只是偶爾做點別的事有方向探索則刻意導向智慧體不確定的動作或狀態,用自己的知識來判斷哪裡的無知最值得去消除。

本篇介紹兩種著名的無方向方法——它們便宜、通用,對簡單問題已經夠用。後續篇章則會建構有方向的方法,在探索變難時取勝。

ε-greedy:用擲硬幣來探索

ε-greedy 是實務強化學習的主力。以機率 1 − ε 選取你目前估計最好的動作(貪婪選擇);以機率 ε 改為均勻隨機挑一個動作。常見的 ε 是 0.1——也就是 10% 的時間在探索。它能自然搭配 Q-learningDQN(深度 Q 網路)這類價值方法,其中「最好」就是估計價值最高的那個動作。

a_t = \begin{cases} \arg\max_{a} Q(a) & \text{with probability } 1-\varepsilon \\[4pt] \text{a uniformly random action} & \text{with probability } \varepsilon \end{cases}

ε-贪心动作选择:以 1 − ε 的概率选取当前最优(贪心)动作,否则以 ε 的概率均匀随机选取动作。

關鍵技巧是 退火(annealing):一開始用較高的 ε(在你所知甚少時大量探索),並在訓練過程中讓它衰減到一個很小的下限。前期你要的是廣度;後期你要的是兌現收益。保留一個不為零的小下限,能讓智慧體對變化中的世界保持警覺。

def epsilon_greedy(q_values, epsilon):
    if random() < epsilon:
        return random_action()      # explore: any action
    return argmax(q_values)         # exploit: current best

# anneal epsilon from 1.0 down to a 0.05 floor
epsilon = max(0.05, 1.0 - step / decay_steps)
ε-greedy 的動作選擇,搭配線性衰減的 ε。

Boltzmann:依好壞程度探索,而非只看是/否

Boltzmann 探索(也稱 softmax 探索)在選哪一個非貪婪動作上更聰明。它不把所有非最佳動作都當成同等值得隨機一試,而是用 softmax 把價值估計轉成機率分布:高價值動作被選中的次數較多,低價值的則很少。一個 溫度(temperature) 參數 τ 控制分布的散布程度——τ 高時選擇趨近均勻(大量探索),τ 低時則趨近貪婪。

\pi(a) = \dfrac{e^{\,Q(a)/\tau}}{\sum_{b} e^{\,Q(b)/\tau}}

玻尔兹曼(softmax)探索:每个动作的概率随其估计价值 Q(a) 增大,温度 τ 控制选择的贪心程度。

Boltzmann 修正了 ε-greedy 的一個缺陷——它不再對明顯很糟的動作花同等心力——但它仍是無方向探索:它只看估計的價值,從不看那個估計有多不確定。一個被試過 1,000 次的動作,和一個只試過一次的動作,只要估計價值剛好相同,就會受到一樣的對待。

盲目探索會在哪裡崩潰

當良好行為距離當前只差幾個幸運動作時,隨機抖動就管用。但許多任務屬於 難探索問題(hard-exploration problems):獎勵只有在一長串精確的動作之後才出現,因此靠擲硬幣偶然碰上它的機率小到天文數字。在經典 Atari 遊戲《蒙特祖瑪的復仇》中,ε-greedy 可以胡亂掙扎數千萬幀,得分仍是零。

网格世界上的 Q-learning:智能体必须连续走对许多步才能拿到奖励——这正是盲目、无方向的随机探索举步维艰之处。

交互式网格世界,Q-learning 智能体逐格移动,通过探索抵达远处的目标奖励。