使用new bing随机生成的综述【无聊的实验】

随机过程是描述随机现象的数学模型,它可以用来刻画不确定性、变化性和动态性。在机器学习中,随机过程有着广泛的应用,例如对时序数据、空间数据、图结构数据等进行建模和推理。本文将介绍一种常用的随机过程模型:高斯过程,在机器学习中的模型原理以及具体应用。

高斯过程是一种连续域的随机过程,它可以看作是无限维的高斯分布。高斯过程可以用来表示一个函数的不确定性,通过给定一个均值函数和一个协方差函数来定义。高斯过程在机器学习中有多种应用,例如回归、分类、聚类、降维等。其中,高斯过程回归是一种非参数化的贝叶斯方法,它可以对任意形状的函数进行拟合,并给出预测值及其置信区间。高斯过程回归的原理是利用训练数据来计算后验分布,并根据后验分布来预测新的输入点的输出值。具体地,假设训练数据为 { ( x i , y i ) } i = 1 n \{(x_i,y_i)\}_{i=1}^n {(xi,yi)}i=1n,其中 x i x_i xi为输入向量, y i y_i yi为输出标量。假设输出值服从如下形式的高斯噪声模型:

y i = f ( x i ) + ϵ i , ϵ i ∼ N ( 0 , σ 2 ) y_i = f(x_i) + \epsilon_i, \quad \epsilon_i \sim \mathcal{N}(0,\sigma^2) yi=f(xi)+ϵi,ϵiN(0,σ2)

其中 f ( x ) f(x) f(x)是一个未知的潜在函数, σ 2 \sigma^2 σ2是噪声方差。我们假设 f ( x ) f(x) f(x)服从一个先验的高斯过程:

f ( x ) ∼ G P ( m ( x ) , k ( x , x ′ ) ) f(x) \sim \mathcal{GP}(m(x),k(x,x')) f(x)GP(m(x),k(x,x))

其中 m ( x ) m(x) m(x)是均值函数,通常取为零或常数; k ( x , x ′ ) k(x,x') k(x,x)是协方差函数或核函数,它反映了不同输入点之间的相似度或相关度。常用的核函数有线性核、多项式核、径向基核等。

给定训练数据后,我们可以计算后验分布 p ( f ∣ X , y ) p(f|X,y) p(fX,y),其中 X = [ x 1 , … , x n ] T X=[x_1,\dots,x_n]^T X=[x1,,xn]T, y = [ y 1 , … , y n ] T y=[y_1,\dots,y_n]^T y=[y1,,yn]T, f = [ f ( x 1 ) , … , f ( x n ) ] T f=[f(x_1),\dots,f(x_n)]^T f=[f(x1),,f(xn)]T。根据贝叶斯规则和高斯分布性质(条件分布和边缘分布仍然是高斯分布),我们有:

p ( f ∣ X , y ) = N ( f ∣ μ , Σ ) p(f|X,y) = \mathcal{N}(f|\mu,\Sigma) p(fX,y)=N(fμ,Σ)

其中

μ = K ( X , X ) ( K ( X , X ) + σ 2 I ) − 1 y Σ = K ( X , X ) − K ( X , X ) ( K ( X , X ) + σ 2 I ) − 1 K ( X , X ) \mu = K(X,X)(K(X,X)+\sigma^2I)^{-1}y \\ \Sigma = K(X,X)-K(X,X)(K(X,X)+\sigma^2I)^{-1}K(X,X) μ=K(X,X)(K(X,X)+σ2I)1yΣ=K(X,X)K(X,X)(K(X,X)+σ2I)1K(X,X)

这里 K ( X , X ) K(X,X) K(X,X)表示由核函数 k ( x , x ′ ) k(x,x') k(x,x)计算得到的 n × n n\times n n×n协方差矩阵。

现在假设我们有一个新的输入点 x ∗ x_* x,我们想要预测它对应的输出值 f ∗ = f ( x ∗ ) f_* = f(x_*) f=f(x)以及其不确定性。我们可以利用后验分布 p ( f ∣ X , y ) p(f|X,y) p(fX,y)来计算预测分布 p ( f ∗ ∣ x ∗ , X , y ) p(f_*|x_*,X,y) p(fx,X,y)

同时高斯过程在机器学习中有广泛的应用场景,例如:

回归:高斯过程回归(Gaussian Process Regression,GPR)是一种基于贝叶斯方法的非参数回归技术,利用GP进行监督学习的方法。给定一组输入输出数据 ( x i , y i ) i = 1 n (\mathbf{x}_i,y_i)_{i=1}^n (xi,yi)i=1n,我们假设输出 y i y_i yi服从一个以 f ( x i ) f(\mathbf{x}_i) f(xi)为均值、以 σ n 2 \sigma_n^2 σn2为方差的正态分布:

y i ∼ N ( f ( x i ) , σ n 2 ) y_i \sim \mathcal{N}(f(\mathbf{x}_i),\sigma_n^2) yiN(f(xi),σn2)

其中 f ( ⋅ ) f(\cdot) f()是一个未知函数,并且服从一个GP先验:

f ( ⋅ ) ∼ G P ( m ( ⋅ ) , k ( ⋅ , ⋅ ) ) f(\cdot) \sim \mathcal{GP}(m(\cdot),k(\cdot,\cdot)) f()GP(m(),k(,))

这里 m ( ⋅ ) m(\cdot) m() k ( ⋅ , ⋅ ) k(\cdot,\cdot) k(,)分别表示先验均值函数和协方差函数(也称为核函数)。协方差函数衡量了两个输入之间输出相似度的程度,并且通常取决于一些超参数 θ \theta θ(例如长度尺度、信号强度等)。给定超参数 θ \theta θ和观测数据 D = { ( x i , y i ) i = 1 n } \mathcal{D}=\{(\mathbf{x}_i,y_i)_{i=1}^n\} D={(xi,yi)i=1n},我们可以利用贝叶斯规则计算后验分布:

p ( f ∣ D , θ ) = p ( y ∣ f , σ n ) p ( f ∣ θ ) p ( y ∣ θ , σ n ) p(f|\mathcal{D},\theta) = \frac{p(y|f,\sigma_n)p(f|\theta)}{p(y|\theta,\sigma_n)} p(fD,θ)=p(yθ,σn)p(yf,σn)p(fθ)

由于正态分布具有闭合形式下贝叶斯规则,在给定新输入 x ∗ \mathbf{x}_* x时预测其对应输出 f ∗ f_* f也很容易:

p ( f ∗ ∣ D , θ , x ∗ ) = ∫ p ( f ∗ ∣ f , θ , x ∗ ) p ( f ∣ D , θ ) d f p(f_*|\mathcal{D},\theta,\mathbf{x}_*) = \int p(f_*|f,\theta,\mathbf{x}_*)p(f|\mathcal{D},\theta)df p(fD,θ,x)=p(ff,θ,x)p(fD,θ)df

这个积分也可以解析求解,并且得到一个正态分布:

f ∗ ∣ D , θ , x ∗ ∼ N ( μ ∗ , σ ∗ 2 ) f_*|\mathcal{D},\theta,\mathbf{x}_* \sim \mathcal{N}(\mu_*,\sigma_*^2) fD,θ,xN(μ,σ2)它可以利用观测数据来推断目标函数的后验分布,并给出预测值及其置信区间。
一种关于高斯过程回归的创新模型是深度核学习(Deep Kernel Learning),它将深度神经网络和高斯过程结合起来,利用神经网络对输入数据进行非线性变换,然后使用高斯过程对变换后的数据进行回归。这样可以充分利用神经网络的表达能力和高斯过程的泛化能力,同时避免了神经网络的过拟合问题和高斯过程的计算复杂度问题。深度核学习已经在多个领域中展示了优异的性能,例如图像分类、时间序列预测、强化学习等。
深度核学习(Deep Kernel Learning,DKL)是一种结合了深度学习和核方法的机器学习框架,旨在利用深度神经网络的强大表征能力和核方法的灵活性和可解释性,来处理复杂的非线性数据。深度核学习的基本思想是使用一个深度神经网络来生成数据的低维嵌入(embedding),然后在这个嵌入空间中应用一个核函数来计算数据之间的相似度或距离。这样,可以将深度神经网络看作是一种自适应的特征提取器,而核函数看作是一种自适应的距离度量器。

深度核学习可以应用于不同的机器学习任务,如分类、回归、聚类等。本文主要介绍一种基于深度核学习的聚类方法,即Deep Kernel Learning for Clustering(DKLC)。该方法旨在发现合适的核函数来识别样本数据上的类簇。具体地,该方法使用一个多层感知机(MLP)来产生样本嵌入,这些嵌入是由谱聚类激发的,并且至少与谱聚类一样具有表现力。然后,在嵌入空间中使用一个高斯径向基函数(RBF)作为核函数,来计算样本之间的相似矩阵。最后,对相似矩阵进行特征分解,并根据特征值和特征向量来确定类簇数目和分配。

该方法的训练目标基于希尔伯特·施密特独立标准(Hilbert Schmidt Independence Criterion,HSIC),它是一种衡量两个随机变量之间统计相关性或依赖性的指标。HSIC可以看作是两个随机变量在各自对应的再生希尔伯特空间(Reproducing Kernel Hilbert Space,RKHS)中内积(inner product)或投影(projection)。因此,最大化HSIC就相当于最大化两个随机变量在各自RKHS中投影之间夹角余弦值(cosine value),从而使得它们尽可能地相关或依赖。

在DKLC中,训练目标是最大化输入数据X和输出嵌入Z之间的HSIC值,并且约束Z满足谱聚类所需条件:每个样本点与其所属类簇中心距离最小化;不同类簇中心之间距离最大化;每个类簇内部方差最小化;每个类簇大小均匀分布等。这些条件可以通过引入拉格朗日乘子法(Lagrange multiplier method)和Stiefel流形上梯度下降法(gradient descent on Stiefel manifold)来实现。
DKLC方法具有以下优点:

  • 它可以利用深度核学习(即具有深度核的高斯过程)来学习隐藏的复杂动作值函数,这样可以编码更多的不确定性,并充分利用保存的历史交互信息。
  • 它可以通过显式地引入核函数避开内积运算,将特征变换的维度提升到无穷大,并将数据空间中的非线性问题转换成特征空间中的线性问题。
  • 它可以通过在Stiefel流形上进行梯度适应来优化基于希尔伯特·施密特独立标准(Hilbert Schmidt Independence Criterion)的训练目标,从而显著加速依赖于特征分解(eigen-decompositions)的谱方法。
  • 它可以直接应用于样本外数据,而无需重新训练或调整参数。

基于以上优点,我们参照悉尼科技大学人工智能中心路节教授团队提出了一个应用创新模型,即基于深度核学习的贝叶斯深度强化学习(BDKRL)。该模型旨在解决具有连续状态和动作空间、高维观测和稀疏奖励的复杂强化学习问题。其详细原理如下:

  • 首先,我们使用一个深度神经网络产生样本嵌入(embedding),这些嵌入是由谱聚类激发的,并且至少与谱聚类一样具有表现力。这样可以将原始观测映射到一个低维且紧凑的隐式特征空间,从而降低计算复杂度和噪声干扰。
  • 其次,我们使用一个深度核学习模型来近似动作值函数。该模型是一个具有深度核的高斯过程回归器,它可以根据历史数据自适应地调整核函数参数,并且能够捕捉不确定性和非线性关系。这样可以提高动作值函数的泛化能力和鲁棒性。
  • 最后,我们使用一个基于希尔伯特·施密特独立标准(Hilbert Schmidt Independence Criterion)的损失函数来指导网络训练。该损失函数旨在最大化嵌入表示与动作值函数之间的互信息,并最小化嵌入表示与观测之间的互信息。这样可以增强嵌入表示对动作值函数的预测能力,并减少对观测数据的依赖。

基于深度核学习的贝叶斯深度强化学习的所有公式推导如下:

首先,我们假设环境的动态是由一个未知的函数 f : S × A → S f: \mathcal{S} \times \mathcal{A} \rightarrow \mathcal{S} f:S×AS表示的,其中 S \mathcal{S} S是状态空间, A \mathcal{A} A是动作空间。我们使用一个深度核学习模型(即具有深度核的高斯过程)来近似这个函数,即
f ( s , a ) = g ( ϕ ( s , a ) ) + ϵ f(s,a) = g(\phi(s,a)) + \epsilon f(s,a)=g(ϕ(s,a))+ϵ
其中 g g g是一个高斯过程, ϕ \phi ϕ是一个深度神经网络, ϵ \epsilon ϵ是一个高斯噪声。我们用 θ \theta θ表示神经网络的参数,用 k k k表示高斯过程的核函数。

我们的目标是找到一个最优的策略 π ∗ \pi^* π,使得累积回报最大化,即
π ∗ = arg ⁡ max ⁡ π E p π ( τ ) [ ∑ t = 0 ∞ γ t r ( s t , a t ) ] \pi^* = \arg\max_\pi \mathbb{E}_{p_\pi(\tau)}\left[\sum_{t=0}^\infty \gamma^t r(s_t,a_t)\right] π=argπmaxEpπ(τ)[t=0γtr(st,at)]
其中 p π ( τ ) p_\pi(\tau) pπ(τ)是由策略 π \pi π产生的轨迹分布, τ = ( s 0 , a 0 , s 1 , a 1 , …   ) \tau = (s_0,a_0,s_1,a_1,\dots) τ=(s0,a0,s1,a1,) r ( s , a ) r(s,a) r(s,a)是奖励函数, γ ∈ ( 0 , 1 ) \gamma \in (0,1) γ(0,1)是折扣因子。

为了求解这个问题,我们使用贝叶斯深度强化学习方法(Bayesian Deep Reinforcement Learning),即利用后验分布 p ( f ∣ D ) p(f|\mathcal{D}) p(fD)来更新动作值函数 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)和策略 π ( a ∣ s ) \pi(a|s) π(as)。其中 D = { ( s i , a i , s i ′ ) } i = 1 N \mathcal{D} = \{(s_i,a_i,s_i')\}_{i=1}^N D={(si,ai,si)}i=1N是历史交互数据集。

具体地说,我们使用以下公式来更新动作值函数:
Q π ( s , a ) = r ( s , a ) + γ ∫ s ′ p ( f ∣ D ) ( s ′ ∣ s , a ) V π ( s ′ ) d s ′ Q^\pi(s,a) = r(s,a) + \gamma \int_{s'} p(f|\mathcal{D})(s'|s,a) V^\pi(s') ds' Qπ(s,a)=r(s,a)+γsp(fD)(ss,a)Vπ(s)ds
其中 V π ( s ) = ∫ a Q π ( s , a ) π ( a ∣ s ) d a V^\pi(s) = \int_a Q^\pi(s,a) \pi(a|s) da Vπ(s)=aQπ(s,a)π(as)da。注意这里的积分运算可以通过蒙特卡罗采样来近似。

然后,我们使用以下公式来更新策略:
log ⁡ π ( a ∣ s ) = Q π ( s , a ) − V π ( s ) \log\pi(a|s) = Q^\pi(s,a) - V^\pi(s) logπ(as)=Qπ(s,a)Vπ(s)

为了计算后验分布 p ( f ∣ D ) p(f|\mathcal{D}) p(fD),我们需要先计算先验分布 p ( f ∣ θ ) p(f|\theta) p(fθ)和似然函数 p ( D ∣ f , θ ) p(\mathcal{D}|f,\theta) p(Df,θ)。根据高斯过程理论 ,我们有:
p ( f ∣ θ ) = N ( g ( 0 ) , K ) p(f|\theta) = N(g(0), K) p(fθ)=N(g(0),K)
其中 K i j = k ( ϕ ( s i , a i ) , ϕ ( s j , a j ) ) + σ n 2 I i j K_{ij} = k(\phi(s_i,a_i),\phi(s_j,a_j)) + \sigma_n^2 I_{ij} Kij=k(ϕ(si,ai),ϕ(sj,aj))+σn2Iij。另外,
p ( D ∣ f , θ ) = N ( f , K ′ ) p(\mathcal{D}|f,\theta) = N(f, K') p(Df,θ)=N(f,K)
其中 ( K ′ ) i j − 1 = k ′ ( ϕ − 1 ( g − 1 ( f i ) ) , ϕ − 1 ( g − 1 ( f j ) ) ) + ( σ n ′ ) 2 I i j (K')^{-1}_{ij} = k'(\phi^{-1}(g^{-1}(f_i)),\phi^{-1}(g^{-1}(f_j))) + (\sigma_n')^2 I_{ij} (K)ij1=k(ϕ1(g1(fi)),ϕ1(g1(fj)))+(σn)2Iij

根据贝叶斯定理,我们可以得到:
p ( f ∣ D ) = p ( f ∣ θ ) p ( D ∣ f , θ ) / p ( D ) p(f|\mathcal{D}) = p(f|\theta)p(\mathcal{D}|f,\theta)/p(\mathcal{D}) p(fD)=p(fθ)p(Df,θ)/p(D)

由于 p ( D ) p(\mathcal{D}) p(D) f f f无关,我们可以将其视为一个常数,并定义一个证据下界(evidence lower bound,ELBO)函数:
L ( θ ) = log ⁡ p ( D ) − K L ( p ( f ∣ θ ) ∣ ∣ p ( f ∣ D ) ) \mathcal{L}(\theta) = \log p(\mathcal{D}) - \mathrm{KL}(p(f|\theta)||p(f|\mathcal{D})) L(θ)=logp(D)KL(p(fθ)∣∣p(fD))

其中 K L \mathrm{KL} KL表示Kullback-Leibler散度。我们的目标是最大化ELBO函数,从而最小化后验分布 p ( f ∣ D ) p(f|\mathcal{D}) p(fD)和先验分布 p ( f ∣ θ ) p(f|\theta) p(fθ)之间的散度。为了实现这一目标,我们采用深度核学习(deep kernel learning,DKL)的方法,即使用一个深度神经网络来表示 f f f的均值函数,并使用一个高斯过程(Gaussian process,GP)来表示 f f f的协方差函数。具体地说,我们有:
f ( x ) = μ ( x ; θ ) + ϵ ( x ) f(x) = \mu(x;\theta) + \epsilon(x) f(x)=μ(x;θ)+ϵ(x)

其中 μ ( x ; θ ) \mu(x;\theta) μ(x;θ)是一个深度神经网络,参数为 θ \theta θ ϵ ( x ) \epsilon(x) ϵ(x)是一个零均值的高斯过程,协方差函数为 k ( x , x ′ ) k(x,x') k(x,x)。这样,我们可以将 p ( f ∣ θ ) p(f|\theta) p(fθ)写成一个高斯分布:
p ( f ∣ θ ) = N ( f ; μ ( X ; θ ) , K ( X , X ) ) p(f|\theta) = \mathcal{N}(f;\mu(X;\theta),K(X,X)) p(fθ)=N(f;μ(X;θ),K(X,X))

其中 X X X是输入数据矩阵, K ( X , X ) K(X,X) K(X,X)是由 k ( x , x ′ ) k(x,x') k(x,x)计算得到的协方差矩阵。同样地,我们可以假设 p ( D ∣ f , θ ) p(\mathcal{D}|f,\theta) p(Df,θ)也是一个高斯分布:
p ( D ∣ f , θ ) = ∏ i = 1 n p ( y i ∣ f i , θ ) = ∏ i = 1 n N ( y i ; f i , σ 2 ) p(\mathcal{D}|f,\theta) = \prod_{i=1}^n p(y_i|f_i,\theta) = \prod_{i=1}^n \mathcal{N}(y_i;f_i,\sigma^2) p(Df,θ)=i=1np(yifi,θ)=i=1nN(yi;fi,σ2)

其中 y i y_i yi是输出数据向量, σ 2 \sigma^2 σ2是噪声方差。由于 p ( f ∣ D ) p(f|\mathcal{D}) p(fD)也是一个高斯分布(根据共轭性),我们可以使用闭合形式的解来计算其均值和方差:
p ( f ∣ D ) = ∏ i = 1 n p ( y i ∣ f i , σ 2 ) p ( f ) ∫ f ∏ i = 1 n p ( y i ∣ f i , σ 2 ) p ( f ) d f = exp ⁡ ( − 1 2 ( y − f ) T Σ − 1 ( y − f ) ) exp ⁡ ( − 1 2 ( f − μ ) T K − 1 ( f − μ ) ) Z = exp ⁡ ( − 1 2 ( y − f ) T Σ − 1 ( y − f ) − 1 2 ( f − μ ) T K − 1 ( f − μ ) + C ) = exp ⁡ ( − 1 2 ( f − m ) T ( K + Σ ) − 1 ( f − m ) + C ′ ) = N ( m , K + Σ ) \begin{aligned} p(f|\mathcal{D}) &= \frac{\prod_{i=1}^n p(y_i|f_i,\sigma^2)p(f)}{\int_f\prod_{i=1}^n p(y_i|f_i,\sigma^2)p(f)\mathrm df}\\ &= \frac{\exp(-\frac12 (y-f)^T\Sigma^{-1}(y-f))\exp(-\frac12 (f-\mu)^TK^{-1}(f-\mu))}{Z}\\ &= \exp(-\frac12 (y-f)^T\Sigma^{-1}(y-f)-\frac12 (f-\mu)^TK^{-1}(f-\mu)+C)\\ &= \exp(-\frac12 (f-m)^T(K+\Sigma)^{-1}(f-m)+C')\\ &= \mathcal N(m,K+\Sigma) \end{aligned} p(fD)=fi=1np(yifi,σ2)p(f)dfi=1np(yifi,σ2)p(f)=Zexp(21(yf)TΣ1(yf))exp(21(fμ)TK1(fμ))=exp(21(yf)TΣ1(yf)21(fμ)TK1(fμ)+C)=exp(21(fm)T(K+Σ)1(fm)+C)=N(m,K+Σ)

其中 Σ = σ 2 I n \Sigma=\sigma^2I_n Σ=σ2In是噪声协方差矩阵; μ = μ ( X ; θ ) \mu=\mu(X;\theta) μ=μ(X;θ)是神经网络输出向量;Z是归一化常数;C和C’是与 f f f无关的常数
通过实验表明,BDKRL方法在广泛的真实和合成数据集上优于几种最先进的深度强化学习方法以及传统的强化学习方法如DQN和DDPG。
总的来说,基于深度核学习的贝叶斯深度强化学习(Bayesian Deep Reinforcement Learning with Deep Kernel Learning,BDRL-DKL)是一种将深度核学习应用于强化学习中的方法。它主要有以下几个优点:

  • 它可以利用深度核来代替传统的深度神经网络来估计动作值函数,这样可以编码更多的不确定性,并且可以充分利用保存的历史交互信息。
  • 它可以通过贝叶斯推理(Bayesian Inference)来更新动作值函数,这样可以避免过拟合(Overfitting)和欠拟合(Underfitting)问题,并且可以自适应地调整探索与利用之间的平衡。
  • 它可以通过核函数来适应不同类型和规模的数据集,这样可以提高模型的泛化能力和可扩展性。

基于深度核学习的贝叶斯深度强化学习也有以下几个缺点:

  • 它需要大量的计算资源和时间来进行高斯过程和贝叶斯推理,这可能会限制其在实时或在线场景中的应用。
  • 它需要合适地选择或设计核函数以匹配数据特征,这可能会增加模型设计和调试的难度。
  • 它需要对高斯过程和贝叶斯推理有较深入的理解和掌握,这可能会增加模型使用者或开发者的门槛。

基于深度核学习的贝叶斯深度强化学习是一种结合了深度核学习和贝叶斯优化的新颖的强化学习方法,旨在解决高维、非线性、稀疏和不确定的动态环境中的决策问题。具体地说,采用深度核学习(即具有深度核的高斯过程)代替传统的深度学习模型来学习隐藏的复杂动作值函数,这样可以编码更多的不确定性,并充分利用保存的历史交互信息。然后,利用贝叶斯优化来高效地探索动作空间,从而找到最优或近似最优的动作。该方法可以做到:(1) 可以处理非平稳和部分可观察的环境;(2) 可以自适应地调整探索-利用之间的平衡;(3) 可以有效地处理连续和高维的动作空间;(4) 可以避免过拟合和欠拟合问题。是一种很新颖的算法,可以运用到很多场景当中。

猜你喜欢

转载自blog.csdn.net/qq_44799683/article/details/129307198