由之前的章节得到心理学中强化学习的最简递推公式:Vt=Vt−1+a∗(rt−Vt−1),被称为简单强化学习模型(navie reinforcement learning model)。但是简单的强化学习(PEi = ri − ;i = Vi -1+ )无法解释以上三种条件反射现象。
以下通过Python代码模拟基于简单强化学习模型的遮蔽效应的形成过程。
# Naïve modelfrom scipy.stats import bernoulliimport numpy as npimport matplotlib.pyplot as pltdefovershadow(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, Ba =0.05# learning rateT =100# number of trialsr, A, B =overshadow(T)Va = np.empty(T)Vb = np.empty(T)for i inrange(T):# loop trialsif 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()```
图1 简单强化学习模型下刺激A和B的价值更新过程。
基于此,1972年Robert A. Rescorla和Allan R. Wagner提出了瑞思考勒-瓦格纳(Rescorlar-Wagner, RW)模型。根据RW模型,当多个刺激存在的时候,预测误差(Prediction error)应该为奖赏减去所有出现刺激的价值( PEi=ri−∑KNVK,其中第i个trial,一种出现N个刺激)。在更新刺激的价值时,只更新出现了刺激的价值。因此对于同时出现两种刺激的刺激价值的更新过程为: