视觉注意力的循环神经网络模型

2023-11-10

我们观察PPT的时候,面对整个场景,不会一下子处理全部场景信息,而会有选择地分配注意力,每次关注不同的区域,然后将信息整合来得到整个的视觉印象,进而指导后面的眼球运动。将感兴趣的东西放在视野中心,每次只处理视野中的部分,忽略视野外区域,这样做最大的好处是降低了任务的复杂度。

深度学习领域中,处理一张大图的时候,使用卷积神经网络的计算量随着图片像素的增加而线性增加。如果参考人的视觉,有选择地分配注意力,就能选择性地从图片或视频中提取一系列的区域,每次只对提取的区域进行处理,再逐渐地把这些信息结合起来,建立场景或者环境的动态内部表示,这就是本文所要讲述的循环神经网络注意力模型。


怎么实现的呢?

把注意力问题当做一系列agent决策过程,agent可以理解为智能体,这里用的是一个RNN网络,而这个决策过程是目标导向的。简要来讲,每次agent只通过一个带宽限制的传感器观察环境,每一步处理一次传感器数据,再把每一步的数据随着时间融合,选择下一次如何配置传感器资源;每一步会接受一个标量的奖励,这个agent的目的就是最大化标量奖励值的总和。

下面我们来具体讲解一下这个网络。

图A是带宽传感器,传感器在给定位置选取不同分辨率的图像块,大一点的图像块的边长是小一点图像块边长的两倍,然后resize到和小图像块一样的大小,把图像块组输出到B。

图B是glimpse network,这个网络是以theta为参数,两个全连接层构成的网络,将传感器输出的图像块组和对应的位置信息以线性网络的方式结合到一起,输出gt。

图C是循环神经网络即RNN的主体,把glimpse network输出的gt投进去,再和之前内部信息ht-1结合,得到新的状态ht,再根据ht得到新的位置lt和新的行为at,at选择下一步配置传感器的位置和数量,以更好的观察环境。在配置传感器资源的时候,agent也会受到一个奖励信号r,比如在识别中,正确分类r是1,错误分类r是0,agent的目标是最大化奖励信号r的和,


梯度的近似可以表示为:


       公式(1)也叫做增强学习的规则,它包括运用当前的策略运行agent去获得交互序列,然后根据可以增大奖励信号的行为调整theta。它的训练过程就是用增强学习的方法学习具体任务策略。关于给定任务,根据模型做出的一系列决定给出表现评价,最大化表现评价,对其进行端到端的优化。

       首先为什么要用增强学习呢?因为数据的状态不是非常明确的,不是可以直接监督或者非监督来训练的,比如机器人的控制很难完全精确。

那么什么是增强学习呢?


增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。通过增强学习,一个智能体(agent)应该知道在什么状态下应该采取什么行为。

假设一个智能体处于下图(a)中所示的4x3的环境中。从初始状态开始,它需要每个时间选择一个行为(上、下、左、右)。在智能体到达标有+1或-1的目标状态时与环境的交互终止。如果环境是确定的,很容易得到一个解:[上,上,右,右,右]。可惜智能体的行动不是可靠的(类似现实中对机器人的控制不可能完全精确),环境不一定沿这个解发展。下图(b)是一个环境转移模型的示意,每一步行动以0.8的概率达到预期,0.2的概率会垂直于运动方向移动,撞到(a)图中黑色模块后会无法移动。两个终止状态分别有+1和-1的回报,其他状态有-0.4的回报。现在智能体要解决的是通过增强学习(不断的试错、反馈、学习)找到最优的策略(得到最大的回报)。

上述问题可以看作为一个马尔科夫决策过程,最终的目标是通过一步步决策使整体的回报函数期望最优。

提到马尔科夫,大家通常会立刻想起马尔可夫链(Markov Chain)以及机器学习中更加常用的隐式马尔可夫模型(Hidden Markov Model, HMM)。它们都具有共同的特性便是马尔可夫性:当一个随机过程在给定现在状态及所有过去状态情况下,未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。

马尔可夫决策过程(Markov Decision Process),其也具有马尔可夫性,与上面不同的是MDP考虑了动作,即系统下个状态不仅和当前的状态有关,也和当前采取的动作有关。

一个马尔科夫决策过程(Markov Decision Processes, MDP)有五个关键元素组成{S,A,{Psa},γ,R},其中:



这个就是马尔科夫决策过程。讲完马尔科夫决策之后我们回过头回顾一下训练的过程:每次agent只通过一个带宽限制的传感器观察环境,每一步处理一次传感器数据,再把每一步的数据随着时间融合,选择下一次如何配置传感器资源;每一步会接受一个标量的奖励,这个agent的目的就是最大化标量奖励值的总和。

注意力模型的效果如何

把注意力模型和全连接网络以及卷积神经网络进行比较,实验证明了模型可以从多个glimpse结合的信息中成功学习,并且学习的效果优于卷积神经网络。


由于注意力模型可以关注图像相关部分,忽视无关部分,所以能够在在有干扰的情况下识别,识别效果也是比其他网络要好的。下面这个图表现的是注意力的路径,表明网络可以避免计算不重要的部分,直接探索感兴趣的部分。

基于循环神经网络的注意力模型比较有特色的地方就在于:

提高计算效率,处理比较大的图片的时候非常好用;

阻塞状态下也能识别。

 

我们讲了半天,一个重要的概念没有讲,下面来讲讲循环神经网络RNN。

我们做卷积神经网络的时候样本的顺序并不受到关注,而对于自然语言处理,语音识别,手写字符识别来说,样本出现的时间顺序是非常重要的,RNNs出现的目的是来处理时间序列数据。

这个网络最直观的印象是什么呢,就是线多。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层的节点之间是无连接的。但是这种普通的神经网络对于很多问题却没有办法。例如,要预测句子的下一个单词,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关,网络会对前面的信息进行记忆并应用于当前输出的计算中,具体的表现形式为即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关,下图便是一个典型的RNNs:


T时刻的输出是该时刻的输入和所有历史共同的结果,这就达到了对时间序列建模的目的。RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,之前说“所有历史”共同作用只是理想的情况,在实际中,这种影响也就只能维持若干个时间戳。

为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元LSTM,通过门的开关实现时间上记忆功能,并防止梯度消失。

RNN还可以用在生成图像描述之中,用CNN网络做识别和分类,用RNN网络产生描述语句,这就是李飞飞的实验室所研究的内容。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视觉注意力的循环神经网络模型 的相关文章

  • Deep Learning Tutorials(一):开头语

    万事开头难 当你开始看这些时候 有可能你已经开始了研究生生活 不在像本科时候过着那种得过且过 考试不挂科的日子 你整天盲目 漫无目的的过日子实际上是在浪费自己的生命 所以坚持每天进步吧 回到正事 你可能开始从事深度学习研究或者有关机器学习方
  • 一步一步详解LSTM网络【从RNN到LSTM到GRU等,直至attention】

    一步一步详解LSTM网络 从RNN到LSTM到GRU等 直至attention 0 前言 1 Recurrent Neural Networks循环神经网络 2 The Problem of Long Term Dependencies长期
  • 【Pytorch】循环神经网络实现手写体识别

    Pytorch 循环神经网络实现手写体识别 1 数据集加载 2 搭建RNN模型 3 训练模型 4 模型保存和加载 模型测试 1 数据集加载 import seaborn as sns sns set font scale 1 5 style
  • 时间序列学习(6)——LSTM中Layer的使用

    文章目录 1 复习一下 nn RNN 的参数 2 LSTM的 init 函数 3 LSTM forward 4 动手写一个简单的lstm层 1 复习一下 nn RNN 的参数 参数介绍 1 input size The number of
  • LoFTR配置运行: Detector-Free Local Feature Matching with Transformers ubuntu18.04 预训练模型分享

    刚装好系统的空白系统ubuntu18 04安装 首先进入 软件与更新 换到国内源 论文下载 代码下载 1 anaconda 3 5 3 安装 Index of anaconda archive 清华大学开源软件镜像站 Tsinghua Op
  • 05 两层神经网络 - 神经网络和深度学习 [Deep Learning Specialization系列]

    本文是Deep Learning Specialization系列课程的第1课 Neural Networks and Deep Learning 中Shallow Neural Network部分的学习笔记 在前面的章节中 我们以逻辑回归
  • 词向量的运算与Emoji生成器

    本文参考参考 没有对框架内容进行学习 旨在学习思路和方法 1 词向量运算 之前学习RNN和LSTM的时候 输入的语句都是一个向量 比如恐龙的名字那个例子就是将一个单词中的字母按顺序依次输入 这对于一个单词的预测是可行的 但是对于想让机器学习
  • 16个车辆信息检测数据集收集汇总(简介及链接)

    16个车辆信息检测数据集收集汇总 简介及链接 目录 1 UA DETRAC 2 BDD100K 自动驾驶数据集 3 综合汽车 CompCars 数据集 4 Stanford Cars Dataset 5 OpenData V11 0 车辆重
  • 目标检测数据集分析

    原文链接 https ghlcode cn pages 250d97 目标检测数据集分析 新增支持数据集可视化 Ghlerrix DataAnalyze 平时我们经常需要对我们的数据集进行各种分析 以便我们找到更好的提高方式 所以我将我平时
  • 通俗易懂的RNN

    目录 一 什么是RNN 二 为什么要发明RNN 三 RNN的基础知识 1 循环核介绍 2 循环核按时间步展开 3 记忆体 4 循环计算层 5 TF描述循环计算层 二 RNN的补充知识 1 RNN梯度消失的原因 一 什么是RNN RNN Re
  • 在NLP上,CNN、RNN、MLP三者相比各有何优劣

    本文为知乎温颖就如下问题的回答 已授权CSDN转载 若想要实现某个具体的任务 如做关系抽取 实体识别 情感分类等 在不考虑实现的难度的情况下 如何从理论 经验 直觉上去选择最有希望的模型 前段时间做过用不同的神经网络模型做文本分类 情感分析
  • 【机器学习】LSTM 讲解

    2 LSTM 2 1 长期依赖问题 标准 RNN 结构在理论上完全可以实现将最初的信息保留到即使很远的时刻 但是在实践中发现 RNN 会受到短时记忆的影响 如果一条序列足够长 那它们将很难将信息从较早的时刻传送到后面的时刻 因此 如果正在尝
  • 吴恩达老师深度学习视频课笔记:逻辑回归公式推导及C++实现

    逻辑回归 Logistic Regression 是一个二分分类算法 逻辑回归的目标是最小化其预测与训练数据之间的误差 为了训练逻辑回归模型中的参数w和b 需要定义一个成本函数 cost function 成本函数 cost functio
  • 【深度学习】模型评价指标

    一 分类任务 分类任务一般有二分类 多分类和多标签分类 多分类 表示分类任务中有多个类别 但是对于每个样本有且仅有一个标签 例如一张动物图片 它只可能是猫 狗 虎等中的一种标签 二分类特指分类任务中只有两个类别 多标签 一个样本可以有多个标
  • RNN Pytorch实现——up主:刘二大人《PyTorch深度学习实践》

    b站up主 刘二大人 PyTorch深度学习实践 教程 https www bilibili com video BV1Y7411d7Ys p 6 vd source 715b347a0d6cb8aa3822e5a102f366fe 单层
  • 全网最最最轻量级检测网络 yolo-fastest 快速上手

    文章目录 0x01 Yolo Fastest 0x02 Prepare step1 clone step2 make step3 run darknet 0x03 Train step1 获取权重文件 step2 准备数据集 step3 修
  • Anchor是什么?

    1 选择性搜索 Selective Search 先介绍一下传统的人脸识别算法 是怎么检测出图片中的人脸的 以下图为例 如果我们要检测图中小女孩的人脸位置 一个比较简单暴力的方法就是滑窗 我们使用不同大小 不同长宽比的候选框在整幅图像上进行
  • torch rnn网络中,embedding.weight会反向更新吗?

    结论 在 PyTorch 中 如果在训练中使用了 embedding 层 那么 embedding weight 会被反向更新 这是因为在训练过程中 模型的参数会根据损失函数的反向传播进行更新 而 embedding 层的参数 embedd
  • 自动驾驶技术:驶向未来的智能之路

    导言 自动驾驶技术正引领着汽车产业向着更安全 高效 智能的未来演进 本文将深入研究自动驾驶技术的核心原理 关键技术 应用场景以及对交通 社会的深远影响 1 简介 自动驾驶技术是基于先进传感器 计算机视觉 机器学习等技术的创新 旨在实现汽车在
  • pthread_create返回值错误码11 (EAGAIN)或libgomp: Thread creation failed: Resource temporarily unavailable错误

    在主机上开发torch xla时 使用非root用户在conda环境 遇到tensorflow中报pthread create 11错误 大意为系统资源不足 解决方案 分析 此主机多用户使用 资源占用非常大 且大多数情况下在docker容器

随机推荐

  • 解决Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3问题

    在maven项目中遇到这个问题 判断是版本不一致问题 解决 打开设置 Build Execution Deployment Build Tools Maven 如下图 问题的原因出在 在该项目集成的maven和当前项目设置不统一 可能是之前
  • Spring Security学习一-控制同个帐号当前只能有一个登录

    Date 2016 09 14 Author Kagula Envronment 1 JDK 1 7 0 79 2 apache tomcat 7 0 68 3 Eclipse Mars2 Introduction 据 spring sec
  • es6数组方法图解

    最近接触了一些 web前端开发人员 发现还是很多人不适用es6 提供的语义化api 下面分享下看到的图解 es6 数组方法 很形象的es6数组方法解释
  • JavaScript-----个性名片案例展示

    目录 前言 效果展示 代码 html代码 CSS代码 图片资源 前言 今天我们就通过刚刚学习的JavaScript知识点以及前面学习了的html和CSS的知识点去做一个小作品 这是一个个性名片的案例 有代码资源和图片资源 希望大家喜欢 效果
  • PgSQL个人学习笔记(一)——PgSQL介绍

    一 什么是PgSQL PgSQL 全称PostgreSQL 是一个功能强大的开源对象 关系型数据库系统 结合了许多安全存储和扩展最复杂数据工作负载的功能 它支持大部分SQL标准并且提供了许多其他现代特性 二 特性 价钱 开源 函数 通过函数
  • c++重载类型转换运算符

    类型转换运算符 类型转换运算符是类的一种特殊成员函数 负责将一个类类型的值转换成其他类型 一个类型转换函数必须是类的成员函数 不能有返回类型 形参列表也必须为空 通常是const的 operator type const class Sma
  • 期待相聚|2023 Google 开发者大会现场见

    直达科技前沿 点亮技术灵感 激发新思妙想 收获多元共进 长按下方图片 扫码报名参会 仅出于确认身份 请填写与身份证件一致的姓名 并确认邮箱地址及联系电话准确无误 2023 Google 开发者大会主旨演讲将会分享 Google 如何通过更智
  • typescript枚举

    一 前言 1 enum是在typescript中新增的合法类型 是对JavaScript标准数据类型的一个补充 2 enum的主要作用是可以为一组限定范围内数值赋予友好的名字 二 enum介绍 1 enmu的基本形式如下 enum Anim
  • 解决pom文件报错的原因

    原因 由于2 1 5 RELEASE 升级到了3 1 2 造成的问题 有些IDE插件不兼容的问题造成的 解决 在pom xml 文件中的 properties 加入maven jar 插件的版本号 如下图 然后maven gt update
  • Java线程:新特征-信号量

    本文转载至 http lavasoft blog 51cto com 62575 222469 Java线程 新特征 信号量 Java的信号量实际上是一个功能完毕的计数器 对控制一定资源的消费与回收有着很重要的意义 信号量常常用于多线程的代
  • 51单片机——八段数码管

    在对LED灯的应用有了一定的了解之后 我开始学习了一些关于数码管的应用 在我的开发板上 有独立共阳管和八位共阴管 数码管从高位到低位的段码依次是h dp g f e d c b a共八位 共阴管是 1 表示亮 0 表示灭 而共阳管则是相反的
  • TortoiseGit如何恢复本地删除的文件

    从Gitlab获取仓库到本地 本地仓库中某个文件不小心被删除 恢复操作如下 1 在本地仓库点击右键tortorisegit show log 2 选择版本 当时执行删除操作的版本 3 选择被delete掉的文件 状态为Missing 需要恢
  • HIVE SQL 计算留存率 思路

    问题 计算每日访问用户 在之后日期的留存数 基础表 每日访问用户ID create external table if not exists user visit date user id bigint comment 用户ID comme
  • 鸿蒙系统笔记

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 OpenHarmony整体分层 二 使用步骤 1 引入库 2 读入数据 总结 前言 主要是学习鸿蒙系统的个人笔记 笔记非常烂 一 OpenHarmony整
  • 华为手机一键刷新在哪里_华为手机怎么开启应用自动更新?华为手机WIFI下自动更新软件教程...

    玩手机稍微久点的朋友都知道 保持手机内的应用为最新版本 不但可以尽早地用上新功能 而且还能最大限度地保证手机的安全 当然了 如果每次手机开机都去检查安装的应用是否为最新版本 时间一长也难免烦不胜烦 要是能够让手机内的所有应用都能自动升级自然
  • Docker上安装DM8数据库

    Docker Docker是一种运行于Linux和Windows上的软件 用于创建 管理和编排容器 Docker官网 Empowering App Development for Developers DockerLearn how Doc
  • SQL数据结构timestamp

    既然遇到了 那就记录它吧 hairy377 在sqlyog中建表时 需要自动获取时间或者根据表的改变修改时间 可以使用timestamp数据结构 默认值 CURRENT TIMESTAMP 如果需要记录更新的时间 则勾上更新 这是在sqly
  • docker报错:WSL 2 installation is incomplete

    docker报错 WSL 2 installation is incomplete 错误原因 大概率是wsl未安装或者是未升级成wsl2 检查wsl版本方法 在powershell中使用命令wsl l v 我的已经是升级成了wsl2 所以V
  • 【Hbuilder+vue项目学习】新项目初建

    下载uView空白模板 下载包中的内容 导入在Hbuilder X中导入项目即可创建成功 在gitee上管理项目 填写好名称 介绍等信息 点击创建即可 点击HbuilderX下的终端图标 进行上传项目操作 emmm终端一片空白 用不了 网上
  • 视觉注意力的循环神经网络模型

    我们观察PPT的时候 面对整个场景 不会一下子处理全部场景信息 而会有选择地分配注意力 每次关注不同的区域 然后将信息整合来得到整个的视觉印象 进而指导后面的眼球运动 将感兴趣的东西放在视野中心 每次只处理视野中的部分 忽略视野外区域 这样