[RL Notes] 函数逼近中的试探

1. 乐观初始值

  在表格型的方法中,使用乐观初始值有助于鼓励智能体在学习初期进行系统性的试探。类似的技巧也可以用在函数逼近的方法中,通过特定的权重初始化,使得输出乐观的价值。

  例如对于线性方法和二值特征,每个状态至少会激活一个特征,只需将权重初始化为可能得到的最大回报即可得到乐观的初始值。

  而对于如神经网络等的非线性方法,输出的价值是由输入的特征经过非常复杂的非线性计算得到的,就难以通过初始化得到乐观的初始值——即便将所有权重都初始化为正数,输出也可能是负的。

  此外,我们希望函数逼近的方法能够间泛化,而泛化会影响乐观初始值的效果。假设只有一个特征,则所有更新都会影响所有状态的价值,即便使用了乐观初始值,对于从未被访问过的状态,其价值也会随着智能体访问其他状态的而更新,从而变得不那么“乐观”,此时乐观初始值就不会再促使智能体进行系统性的试探。为了让试探更加系统性,对单个状态进行更新时,其影响就要更加“局部”,例如使用瓦片编码构造特征。神经网络也具有局部更新的特点,但它也会进行激进地泛化,实践中,神经网络通常会相对快速地丧失乐观性。

2. $\varepsilon$-贪心

  $\varepsilon$-贪心方法通常会根据动作价值函数贪心地选择具有最大价值的动作,并以一个小概率 $\varepsilon$ 随机地选择动作。它只依赖于动作价值函数,与初始化和逼近方法无关,可以直接用于非线性的函数逼近。$\varepsilon$-贪心根据策略在当前状态附近进行随机试探,并不是一个直接的试探方法,不像乐观初始值那样可以进行系统性的试探。