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

要想在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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值