由之前的章节得到心理学中强化学习的最简递推公式:Vt=Vt−1+a∗(rt−Vt−1),被称为简单强化学习模型(navie reinforcement learning model)。但是简单的强化学习(PEi = ri − ;i = Vi -1+ )无法解释以上三种条件反射现象。
以下通过Python代码模拟基于简单强化学习模型的遮蔽效应的形成过程。
# Naïve model
from scipy.stats import bernoulli
import numpy as np
import matplotlib.pyplot as plt
def overshadow(T):
'''
T: number of trials
'''
r = np.ones(T) # (T,)维全是1的数组
A = np.ones(T) # (T,)维全是1的数组
B = np.ones(T) # (T,)维全是1的数组
return r, A, B
a = 0.05 # learning rate
T = 100 # number of trials
r, A, B = overshadow(T)
Va = np.empty(T)
Vb = np.empty(T)
for i in range(T): # loop trials
if i == 0:
Va[0] = 0 + a*(r[0]-0)
Vb[0] = 0 + a*(r[0]-0)
else:
Va[i] = Va[i-1] + a*(r[i]-Va[i-1])
Vb[i] = Vb[i-1] + a*(r[i]-Vb[i-1])
plt.plot(r, '-k', label='reward')
plt.plot(Va, linewidth=10, label='Va')
plt.plot(Vb, linewidth=2, label='Vb')
plt.xlabel('Trials')
plt.ylabel('Value')
plt.legend()
```
基于此,1972年Robert A. Rescorla和Allan R. Wagner提出了瑞思考勒-瓦格纳(Rescorlar-Wagner, RW)模型。根据RW模型,当多个刺激存在的时候,预测误差(Prediction error)应该为奖赏减去所有出现刺激的价值( PEi=ri−∑KNVK,其中第i个trial,一种出现N个刺激)。在更新刺激的价值时,只更新出现了刺激的价值。因此对于同时出现两种刺激的刺激价值的更新过程为: