卷积网络循环网络结合-CNN+RNN

1. CNN+RNN

相同点

  • 都是传统神经网络的扩展;
  • 前向计算产生结果,反向计算进行模型的更新;
  • 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。

不同点

  • CNN进行空间扩展,神经元与特征卷积;RNN进行时间扩展,神经元与多个时间输出计算;
  • RNN可以用于描述时间上连续状态的输出,有记忆功能;CNN则用于静态输出;
  • CNN高级结构可以达到100+深度;RNN的深度有限。

组合的意义

  • 大量信息同时具有时间空间特性:视频,图文结合,真实的场景对话;
  • 带有图像的对话,文本表达更具体;
  • 视频相对图片描述的内容更完整。

组合方式

  • CNN特征提取,用于RNN语句生成->图片标注
  • RNN特征提取用于CNN内容分类->视频分类
  • CNN特征提取用于对话问答->图片问答

组合方式实现

  • 特征提取: LSTM输出(考虑不同时间研究对象的特征),FC层输出。
  • 特征合并 Concatenate层(合并在一起形成更长的向量),Attention相乘(某些区域加强,某些区域削弱)。
  • 结果输出 连续语句输出LSTM,组合分类回归DNN。

2. 图片标注

问题描述

拥有大量图片及其标注信息,能够通过学习建立一个能够自动图片标注的模型?

基本思路

  • 目标是产生标注语句,是一个语句生成的任务,根本上来说是一个RNN的任务,使用LSTM。
  • 描述的对象是大量的图像信息,进行图像信息的表达,使用CNN。
  • CNN网络中全连接层利用特征进行图片的描述,特征与LSTM输入进行结合。

模型设计

1. 整体结构

2. 特征提取

  • 图片特征:CNN全连接层提取;
  • 语言特征:Word2Vec。

3. 数据准备

  • 图片CNN特征提取;
  • 图片标注生成Word2Vec向量;
  • 生成训练数据:图片特征+第n个单词向量->第n+1个单词向量。

4. 模型训练

  • 运用迁移学习进行模型构建和训练,用于CNN特征,语句特征应用已有的模型;
  • 最终的输出模型是LSTM,训练过程的参数:设定梯度上限(gradient clipping)用于防止梯度爆炸、学习率调整(adaptive learning)

5. 模型运行

  • CNN进行特征提取;
  • CNN特征+语句的开头,单词逐个预测;

图片标注升级-详细标注

DenseCap,主要基于Faster R-CNN

3. 视频行为识别

常用方法

  • CNN特征简单组合
  • 3D版本CNN

RNN+CNN

  • RNN用于CNN特征融合
    • CNN进行特征提取;
    • LSTM判断;
    • 多次识别结果进行分析。
    • CNN进行特征提取;
    • LSTM融合;
    • Linear regr + Softmax分类。
  • RNN用于CNN特征筛选+融合
    • 并不是所有的视频图像包含确定分类信息;
    • RNN用于确定哪些frame是有用的;
    • 对有用的图像特征融合;
  • RNN用于目标检测
    • CNN直接产生目标候选区;
    • LSTM对产生候选区进行融合(相邻时刻位置近似);
    • 确定最终的精确位置。

4. 图片/视频问答

给定一张图片,提出图片内容相关问题,问答模型给出答案。

问题的种类

方法流程

  • 按照语言问答路程解决;
  • 图片特征同语言特征融合;
  • 训练数据:问题+图片->答案

模型设计

纯文字问答系统

  • 背景故事生成(word embedding)
  • 问题特征生成;
  • 背景,问题特征融合;
  • 标准答案回归。

图片问答系统

  • 基本模型
    • 背景故事特征生成-CNN;
    • 问题特征生成;
    • 背景,问题特征融合;
    • 标准答案回归。
  • 模型优化1
    • 对图片特征向量进一步处理,建立CNN特征的fisher特征;
    • 提高特征表达的效率,更容易同encoding特征组合。
  • 模型优化2
    • 用问题作为“候选区域”对原始CNN特征图局部识别。
  • 模型优化3
    • 注意力图对图片问答进行帮助;
    • 根据问题产生第一次注意力图;
    • 然后产生最终的注意力图;

5. 实例:学习Image Caption 图片自动标注

一个将图片转换为相应文字描述的例子。

代码参见:https://github.com/KoalaTree/models/tree/master/im2txt

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2018-02-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭耀华‘s Blog

MaxPooling的作用

1102
来自专栏SIGAI学习与实践平台

机器学习中的目标函数总结

几乎所有的机器学习算法最后都归结为求解最优化问题,以达到我们想让算法达到的目标。为了完成某一目标,需要构造出一个“目标函数”来,然后让该函数取极大值或极小值,从...

351
来自专栏郭耀华‘s Blog

MaxPooling的作用

maxpooling主要有两大作用 1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺...

2687
来自专栏包子铺里聊IT

经典智能算法快速入门之神经网络——技术篇

在上一篇文章里,小编给大家概括地介绍了下神经网络的历史和应用。这次,小编要给大家细细讲解下神经网络的组成,和几种常见神经网络的模型及其适用领域。 基本组成 顾名...

3469
来自专栏决胜机器学习

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归 (原创内容,转载请注明来源,谢谢) 一、超参数调试 1、超参数 超参数是不直...

3718
来自专栏大数据挖掘DT机器学习

时间序列ARIMA模型详解:python实现店铺一周销售量预测

顾名思义,时间序列是时间间隔不变的情况下收集的时间点集合。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。但是是什么令时间序列与...

5068
来自专栏机器之心

深度 | 通过NMT训练的通用语境词向量:NLP中的预训练模型?

选自 einstein.ai 机器之心编译 参与:Nurhachu Null、蒋思源 自然语言处理(NLP)这个领域目前并没有找到合适的初始化方法,它不能像计算...

2875
来自专栏AI科技大本营的专栏

深度 | 机器学习中的模型评价、模型选择及算法选择

作者:Sebastian Raschka 翻译:reason_W 编辑:周翔 简介 正确使用模型评估、模型选择和算法选择技术无论是对机器学习学术研究还是工业场景...

3594
来自专栏数据科学与人工智能

【机器学习】神经网络技术篇

在上一篇文章里,小编给大家概括地介绍了下神经网络的历史和应用。这次,小编要给大家细细讲解下神经网络的组成,和几种常见神经网络的模型及其适用领域。 基本组成 顾名...

2527
来自专栏新智元

机器学习:你需要多少训练数据?

? 从谷歌的机器学习代码中得知,目前需要一万亿个训练样本 训练数据的特性和数量是决定一个模型性能好坏的最主要因素。一旦你对一个模型输入比较全面的训练数据,通...

3777

扫描关注云+社区