【增强学习】Torch中的增强学习层

本文探讨了在Torch中应用增强学习解决计算机视觉问题,特别是使用dpnn包进行增强学习网络构建。文章介绍了监督学习和增强学习的区别,并详细解释了增强学习网络的结构、Variance Reduction技术以及如何在混合网络中结合使用。通过实验展示了如何构造和训练包含增强学习层的网络,并使用VRClassReward模块进行反馈评估。
摘要由CSDN通过智能技术生成

要想在Torch框架下解决计算机视觉中的增强学习问题(例如Visual Attention),可以使用Nicholas Leonard提供的dpnn包。这个包对Torch中原有nn包进行了强大的扩展,在Torch官方的教程中予以推荐。

增强学习是一个非常广阔的领域,本文只从理解代码的角度进行最简单说明。

理念

机器学习可以分为三支:

  • 无监督学习(unsupervised):没有教师信号。例:给定一系列图片,学习网络参数,能够按照训练集的概率,生成新的图片。聚类也是一种无监督学习。
  • 监督学习(supervised):有教师信号,教导正确的动作。例:手把手教你下棋:这种局面下这儿,那种局面下那儿。常见的图像识别问题也是监督学习。
  • 增强学习(reinforce):有教师信号,但不知道正确的动作是什么,只给出动作的反馈。例:其实我也太不会下棋,但是你下完我知道数子儿判断输赢。

对于同一个问题,可以用不同的观点来看待。以手写数字识别任务为例:
监督学习观点下,把分类结果看成动作,教师给出的是标定的分类结果。
增强学习观点下,把每次观察位置看成动作1,教师给出的反馈是分类正确与否。

监督学习

作为复习,先来看看监督学习网络的结构:
这里写图片描述

网络输入为 x x x,输出为 y y y。输出由网络参数 θ \theta θ控制:
y = f ( x ; θ ) y=f(x;\theta) y=f(x;θ)

训练时,需要在后面接一个**准则(Criterion)**模块充当教师,给出一个代价函数 E E E

准则模块是解析的,可以求出代价对输出的导数
g r a d O u t = ∂ E ∂ y gradOut=\frac{\partial E}{\partial y} gradOut=yE

根据链式法则,进一步可以求出代价对输入的导数:
g r a d I n = g r a d O u t ⋅ ∂ y ∂ x = ∂ E ∂ x gradIn = gradOut \cdot \frac{\partial y}{\partial x} = \frac{\partial E}{\partial x} gradIn=gradOutxy=xE

网络模块可以串接:
g r a d I n n + 1 = g r a d I n n ⋅ ∂ y n ∂ x n {gradIn}_{n+1}={gradIn}_n \cdot \frac{\partial y_n}{\partial x_n} gradInn+1=gradInn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值