源地址

arXiv:1712.07465: Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition

简介

识别图像中的多个标签是计算机视觉中的一项基本但具有挑战性的任务。针对现有方法计算成本高、不能有效利用空间上下文的问题,论文提出了循环迭代的结合注意力机制的强化学习框架,并进行了对应的熔断测试。

框架结构

输入部分

将图片放缩至W*H的大小,送入FCN(VGG16 ConvNet)产生特征图\(f_I\)。

循环注意力感知模块

第t次迭代,模块首先接收在前一次迭代中计算的位置\(l_t\),并基于\(l_t\)按照不同的区域大小、不同的长宽比,提取k个区域\(R_t=\{R_{tr}\}^k_{r=1}\),然后从\(f_I\)中提取这些区域的特征,得到\(f_{tr} = G(f_i, R_{tr}) r=1,2,\cdots,k\)。

接下来,将特征送入LSTM网络实现的循环注意感知模块,将前一次迭代的隐藏状态以及当前定位区域的特征作为输入,得到每一个区域的得分\(\{a_{t1},a_{t2},\cdots,a_{tk}\}\)并搜索下一次迭代的最佳位置\(l_{k+1}\)。初始区域设置为整个图像,因此\(R_0\)只有一个区域,它仅用于确定的位置。

重复T+1次迭代,产生\(T \cdot k\)个得分向量,分别在每个类别中选出最大的得分向量,即

\[ a^c = \max(a^c_{11},a^c_{12},\cdots, a^c_{Tk}),c = 0,1, \cdots,C-1\]

训练过程

在形式上,模型需要学习策略\(\pi ((a_t,l_t+1)| S_t;\theta)\),该策略基于过去观察的序列和代理所采取的动作(即)来预测当前迭代的动作分布。为此,我们定义目标函数以最大化期望奖励,表示为:

\[J(\theta) = E_{P(S_T;\theta)}[R]\]

\[\nabla J(\theta) = \sum ^{T}_{t=1} E_{P(S_T;\theta)}[\nabla_{\theta}log\pi ((a_t,l_t+1)| S_t;\theta)R]\]

其中,\(R\) 为奖励函数,通过比对实际标签获得,即

在每一个时间 t,主体接收到一个观测 \(o_t\),通常其中包含奖励 \(r_t\)。然后,它从允许的集合中选择一个动作 \(a_{t}\),然后送出到环境中去。环境则变化到一个新的状态 \(s_{t+1}\),然后决定了和这个变化\((s_t,a_t,s_{t+1}\)相关联的奖励 \(r_{t+1}\)。强化学习主体的目标,是得到尽可能多的奖励。主体选择的动作是其历史的函数,它也可以选择随机的动作。

  • 环境:\(s_t\), 即\(\{f_{t1}, f_{t2}, \cdots, f_{tk}, h_{t-1}\}\)
  • 行动:

    1. 进行分类

      分类有分类网络实现,并且有一个额外的损失函数(预测概率向量和真实概率向量的平均平方差)

    2. 寻找下一次\(l_{k+1}\)的最佳位置

      由loc网络给出值作为一个位置的高斯分布的均值,高斯分布的方差则由经验给出。之后在高斯分布上随机取值。

  • 奖励:

    \[ r_t=\left\{
    \begin{aligned}
    \frac{|g\cap p|}{n}& \quad t=T\\
    0 &\quad t<T\\
    \end{aligned}
    \right.
    \]

    \[R=\sum^T_{t=1}\gamma^{t-1}r_t\]

细节

输入部分

  1. 训练期间,所有样本图像的大小会调整为N*N,并随机裁剪为五个\((N-64)(N-64)\)的图像片段,同时对五个片段进行水平翻转,产生十个视图。最终结果为十个视图预测向量的平均值。

  2. 在实验中,生成整张特征图,并相应地为每个patch裁剪特征图,有效地减少了计算量。

  3. 在实验中,k设置为9个,通过三个尺度区域和三个宽高比产生。从而能够对更多种类的图像进行实验。

循环注意力感知模块

  1. 在特征图上进行裁剪操作,相比先前在原始输入图像处裁剪区域并应用CNN以重复提取每个区域的特征,避免了重复计算。

  2. LSTM相关

长短期记忆网络(Long Short Term Memory networks)
设计 LSTMs 主要是为了避长时期依赖 (long-term dependency )的问题。

LSTM通过隐藏层状态进行遗忘、传入和输出。

消融研究

An ablation study typically refers to removing some “feature” of the model or algorithm, and seeing how that affects performance.

论文设计实验分析了关注区域、LSTM、可变比例和纵横比的区域、迭代次数对效果的影响,以仔细评估和讨论模型的关键组成部分的贡献。

一些想法

  1. 随机裁剪和翻转是图像集扩充的常见方法,可以提高样本数量,从而更好地进行训练。一般来说,还可以通过加入噪声,改变对比度、清晰度,甚至是采用GAN生成数据。

  2. 不同的尺度区域和不同的宽高比能够让模型更好地对物体进行检测,个人猜测即使在考虑成回归问题的时候也能够发挥不错的效果。

  3. 个人理解,LSTM网络通过模仿人类选择性记忆的机制,改善了RNNs持续记忆的问题,即长文本等应用场景下RNNs需要过多样本和迭代次数来寻找合适的映射关系的问题。

  4. 感觉上,LSTM的遗忘机制和ResNet的跨层连接有一些相同的点。

  5. 消融研究能够有效地体现模型的优势,减少其他不确定因素的影响。和精心设计的图表一起,可以更好地实现对模型的展示。

论文阅读 | Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition的更多相关文章

  1. [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)

    原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...

  2. 【论文阅读】Deep Mutual Learning

    文章:Deep Mutual Learning 出自CVPR2017(18年最佳学生论文) 文章链接:https://arxiv.org/abs/1706.00384 代码链接:https://git ...

  3. 论文阅读 Dynamic Graph Representation Learning Via Self-Attention Networks

    4 Dynamic Graph Representation Learning Via Self-Attention Networks link:https://arxiv.org/abs/1812. ...

  4. 论文阅读 | DeepDrawing: A Deep Learning Approach to Graph Drawing

    作者:Yong Wang, Zhihua Jin, Qianwen Wang, Weiwei Cui, Tengfei Ma and Huamin Qu 本文发表于VIS2019, 来自于香港科技大学 ...

  5. 论文阅读笔记“Attention-based Audio-Visual Fusion for Rubust Automatic Speech recognition”

    关于论文的阅读笔记 论文的题目是“Attention-based Audio-Visual Fusion for Rubust Automatic Speech recognition”,翻译成中文为 ...

  6. 【论文阅读】Motion Planning through policy search

    想着CSDN还是不适合做论文类的笔记,那里就当做技术/系统笔记区,博客园就专心搞看论文的笔记和一些想法好了,[]以后中框号中间的都算作是自己的内心OS 有时候可能是问题,有时候可能是自问自答,毕竟是笔 ...

  7. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  8. 【论文阅读】PRM-RL Long-range Robotic Navigation Tasks by Combining Reinforcement Learning and Sampling-based Planning

    目录 摘要部分: I. Introduction II. Related Work III. Method **IMPORTANT PART A. RL agent training [第一步] B. ...

  9. 论文阅读之: Hierarchical Object Detection with Deep Reinforcement Learning

    Hierarchical Object Detection with Deep Reinforcement Learning NIPS 2016 WorkShop  Paper : https://a ...

随机推荐

  1. 【MySQL】数据库事务深入分析

    一.前言 只有InnoDB引擎支持事务,下边的内容均以InnoDB引擎为默认条件 二.常见的并发问题 1.脏读 一个事务读取了另一个事务未提交的数据 2.不可重复读 一个事务对同一数据的读取结果前后不 ...

  2. TP5.0使用助手函数model出现\common\Model\类不存在

    在ThinkPHP5.0中有一个助手助手函数model(),可以实例化具体的模型,包括分层模型,只要传入类名(第一个参数),分层名(第二个参数).这个函数其实是ThinkPHP框架Loader中的一个 ...

  3. NIO与网络编程系统化学习

    1.背景 数据在网络中传输,必然回遇到读写问题.... 2.比较NIO与IO 3.案例演示 3.1.缓冲区演示 package com.wfd360.nio; import org.junit.Tes ...

  4. idea搭建一个简单的springboot项目

    1.file->new->project 2.选中Spring  Initializr 3.填写项目信息: 4.选中Web -> Spring Web

  5. 4.LVS的三种工作模式_DR模式

    1.DR模式(直接路由模式:Virtual Server via Direct Routing) DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返 ...

  6. error: ‘Poco::UInt16’ has not been declared

    碰到Poco库和其他第三方库共用的时候,当include-POCO库的头文件的时候,此时也include-其他库,导致这个报错. 原因是在这两个库中都对 UINT16 定义,导致冲突. 可以把这两个库 ...

  7. Python基础知识笔记-作用域

    Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的. 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python的作用域一共有4种,分别是: ...

  8. 软件测试之Monkey 初步了解(入门级II)

    1. 先熟悉monkey基本命令: cls   清除 首先测试设备是否连接成功,在命令行中输入:adb devices 查看adb版本: adb version 查看虚拟机版本:nox_adb ver ...

  9. mac 上配置flutter开发环境

    (ios,Android,Xcode,Android Studio,VScode,IDEA) 1)安装Flutter SDK 2)iOS 环境配置 3)Android Studio配置 4)VS co ...

  10. HUSTOJ 有序表的最小和

    一次奇怪的AC经历...上周被这道题卡了3天... 传送门:http://oj.gdsyzx.edu.cn/problem.php?id=1475 题目描述 给出两个长度为n的有序表A和B,在A和B中 ...