【习题集四】无监督学习和强化学习
来源:互联网 发布:河北seo按效果付费 编辑:程序博客网 时间:2024/05/29 07:40
1. 监督学习的EM算法 EM for Supervised Learning
我们曾推导过针对无监督学习的EM算法,,其中,我们将p(x)表示为,其中z是隐含参数
下面我们将尝试将EM算法应用于监督学习模型,并讨论“混合线性回归Mixture of Linear Regressors”模型,这是一种专业模型层次化混合Hierarchial Mixture of Expert Model的一个实例,其公式为.
为了简化模型,我们将z设为一个二元变量,并认为p(y|x, z)服从高斯分布,且p(y|x)可由logistic回归模型描述,因此我们有如下公式
其中σ是已知参数,我们希望求得n维向量φ、θ0、θ1,且θ的下标仅表示不同的参数向量,不表示不同的输入。
直观而言,这一过程可被理解为如下过程:给定一个数据点x,我们先根据logistic模型确定其隐含参数的分类,如z=0或z=1;在此基础上认为y是x的线性函数并加上一些高斯误差(不同的z对应不同的线性方程)。如下图所示
(1)假设x、y、z都可被观测到,即我们有训练集{(x1, y1, z1), (x2, y2, z2), (xm, ym, zm)}。给出参数的最大对数似然方程,并给出φ、θ0、θ1的最大似然估计。注意到由于p(z|x)为logistic模型,故φ没有一个闭式的精确解,因此我们可以通过给出其Hessian矩阵和对φ求导的结果。
解:对数似然函数为
将其对θ0求导,并令结果为0,我们有
但这只是数据集的子集中的最小平方误差问题,事实上,如果我们令所有的z均为0,通过同样的方法,我们可得到关于θ0的最大似然估计为
同理我们也可以获得对θ1进行最大似然估计的结果。
将对数似然函数对φ求导,并忽略与φ无关的项,可得如下方程
这是一个典型的logistic回归方程,我们已知其导数和Hessian矩阵为
(2)现在假设z是一个隐含(不可见)的随机变量,给出参数的对数似然函数,并推导求得对数似然函数最大值的EM算法,主要应当明显区分E步和M步(再次提醒,M步要求数值解,给出导数和Hessian矩阵即可)
解:对数似然函数为
在EM算法中的E步我们将计算下式
在M步中,我们首先定义对j=0或1均成立(但实际中我们只需计算一个即可,如计算w0,此时w1=1-w0)。将我们的对数似然函数的下界对θ0求导,移去无关项,并将表达式的结果设为0,可得下式为
这是一个典型的加权最小平方问题,其解为
对θ1的求导过程也是相似的。
为了给出对φ的导数和Hessian矩阵,我们注意到
此时导数和Hessian矩阵可表示为
2. 因子分析和主成分分析 Factor Analysis and PCA
设z为一个k维向量,其为一个隐含参数,且分布(x, z)满足
其中U是一个n*k的模型参数矩阵,σ是一个已知的常量。这一模型常被称为概率主成分分析模型Probabilitic PCA。注意到这跟因子分析模型很像,只是我们假设x|z的方差是一个已知的矩阵,而不是简单的对角参数矩阵Φ,并且我们没有对均值项增加噪声μ(尽管这只是为了简化表示)。在这一模型中,如果我们令σ为0,则其就是我们讨论的PCA模型。
为了简化问题,我们认为在之后的讨论中k=1,即U是一个n维的列向量。
(1)使用控制高斯分布Manipulating Gaussian Distribution确定(x, z)的联合分布和条件分布z|x。【提示:对于条件分布,使用习题集一中给出的(λI+BA)^-1*B=B*(λI+AB)^-1可以简化运算】
解:为了计算联合分布,我们计算x和z的均值和方差,我们已知E[z]=0,并有
由于x和z的均值都为0,因此我们有
因此,x和z的联合分布为
使用条件概率分布的相关定理,z|x的均值和方差为
(2)推导针对上述模型的EM算法,并明确给出E步和M步。
解:注意:尽管z(i)是一个标量,为了保持和因子分析算法的一致,我们依然使用它的转置符号。
在E步中,我们首先计算
在M步中,我们需要将下式最大化
将上式对U求导,移除无关项,为
令上式结果为0,则有
(3)当σ趋近于0时,证明如果EM算法趋向于参数向量U*,则U*必为矩阵的特征向量,即满足【提示:当σ趋向于0时,Σz|x也趋向于0,所以E步只需计算μz|x即可,令m维向量w包含所有均值,即wi=μz(i)|x(i),并证明E步和M步可表示为.最后证明如果U在更新后值没有发生变化,则其一定为特征向量】
解:在E步中,当σ趋向于0时,,因此我们可将w定义为
并由提示可知,当σ趋向于0时,我们有
当U不再改变时,我们有
3. 对于自然图像的PCA和ICA PCA and ICA for Natural Images
在这一问题中我们将使用PCA和ICA处理关于自然的图像(如花草树木等)。这是ICA算法的一个经典应用,并可带来很多的启发。我们需要编写两个函数ica.m和pca.m分别实现两种算法,实现pca可直接将算法表现出来即可,而实现ica则需要一些小技巧,如下:
①选择好的学习步长很重要,我们建议的学习步长为α=0.0005
②对ICA算法来说批处理梯度下降法Batch Gradient Descent算法表现并不好,因为不能证明ICA的函数是凸函数,而且纯正的随机梯度下降法处理速度很慢。因此,我们混合的使用这两种算法可以达到较好的效果,我们可一次处理a个数据(a=100对我们来说就足够了),然后更新W
③在进行随机梯度下降之前可以随机的改变数据的顺序
④将Matlab代码尽量用向量表示
解:代码如下
4. 政策迭代算法的收敛 Convergence of Policy Iteration
首先我们定义Bπ表示对政策π的贝尔曼算子Bellman Operator,具体的定义如下
如果V` = B(V),则
(1)证明如果对于数据集S中的所有s,V1(s)<V2(s)成立,则B(V1)(s)<B(V2)(s)成立
解:当Psπ(s)(s`)≥0时,可证
(2)证明对于任意V有,其中直观而言,这意味着对任意V应用Bellman算子Bπ,会使值函数V更接近于政策π下的Vπ,这也意味着有限重复的使用Bπ(如Bπ(Bπ(V)...))将获得Vπ
【提示:注意到对于任意α,有】
解:使用提示中的不等式,我们有
(3)假设我们有一些政策π,通过得到新的政策π`,证明新的政策不会比之前的政策表现的更糟。【提示:首先我们证明Vπ(s)≤Bπ`(Vπ)(s),然后证明Bπ`(Vπ)(s)≤Vπ`(s)】
解:
使用第一小问中的结论
并重复使用小问(2)中的结论,我们有
(4)由于政策迭代算法中的政策必然收敛,我们希望证明其必定收敛于最优政策π*。我们可以使用下式:
当V=V*时,有
解:在(3)问中,我们证明了政策函数是单调递增的,当我们的迭代不再更新时,即π`=π时,便有
5. 强化学习:山中的车 Reinforcement Learning: The Mountain Car
在这一问中我们将使用Q学习(Q-Learning)强化学习算法解决山中的车问题。这一问题模拟了一辆车希望翻过一个山坡的过程,如下图所示
除了山顶所有点的回报函数R(s)=-1,山顶的回报函数R(s)=0,因此一个较好的算法希望尽快到达山顶,但是当车启动时,其并没有足够的能量一下子到达山顶,所以它会先向反方向开积攒一些势能,然后才能开到山顶。
Q学习算法维护一个Q值表,对每一个状态和动作有一个值Q(s, a),我们只需选择最大的Q值即可做出决策,即选择动作a满足
Q学习算法通过下式计算Q值
在每一次,我们使用贪心算法求得π(s)=argmax Q(s, a)
我们希望你能给出一个Matlab实现的代码[q, step_per_episode] = qlearning(episode)
解:程序编写如下
// 这里是分割线~
// 顺便给自己的公众号打个广告,希望大家多多关注哦~
// 关注我的公众号可以看到很多有意思的东西哦~
- 【习题集四】无监督学习和强化学习
- 【习题集三】学习理论和无监督学习
- 监督学习、无监督学习、强化学习
- 监督学习、无监督学习、半监督学习、强化学习
- 监督,非监督和强化学习
- 【习题集一】监督学习
- 【机器学习 基本概念】监督学习、无监督学习、半监督学习与强化学习
- 机器学习分类:监督学习、无监督学习、半监督学习、强化学习
- 监督学习和无监督学习
- 监督学习和无监督学习
- 监督学习和无,监督学习区别
- 监督学习和无监督学习
- 监督学习和无监督学习
- 监督学习和无监督学习
- 监督学习和无监督学习
- 监督学习和无监督学习
- 有监督学习和无监督学习
- 机器学习入门—无监督学习、监督学习、强化学习概念及算法介绍
- <%@ Page language="c#" Codebehind="Main.aspx.cs" AutoEventWireup="false" Inherits="Vod.WebForm1" %>
- Error:Xcode cannot launch 项目名 on 设备名 because the device is locked
- sass配置一条线
- Android 阅读 Office 文档,所有你能想到的解决方案都在这啦
- Ubuntu 16.04 64bit 安装teamviewer
- 【习题集四】无监督学习和强化学习
- Extjs Store 的用法详解
- 从关系型数据库到非关系型数据库
- VC绘图中的双缓冲技术
- 【USACO】2004 Open Turning in Homework 提交作业
- 使用Hyper-V PowerShell
- Java基础:面向对象
- HDU 5974 A Simple Math Problem (数学)
- Android开发-DesignDemo-AndroidStudio(十一)FloatingActionButton(3)