卷积网络循环网络结合-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 条评论
登录 后参与评论

相关文章

来自专栏机器学习实践二三事

使用Faster-Rcnn进行目标检测

Object Detection发展介绍 Faster rcnn是用来解决计算机视觉(CV)领域中Object Detection的问题的。经典的解决方案是使用...

2828
来自专栏机器学习原理

深度学习——目标检测(2)Fast-RCNNFASTER RCNNRCNN网络的演进

前言:RCNN虽然能进行目标检测,但检测的精确度,尤其是速度方面太慢了,没秒才0.03帧。在RCNN基础上做了改进就有了FAST RCNN和FASTER RCN...

902
来自专栏机器学习算法与Python学习

线性分类(SoftMax) - 下篇

导读 线性分类器-中篇 线性分类器 CS231n课程笔记翻译:图像分类笔记(下) CS231n课程笔记翻译:图像分类笔记(上) SoftMax分类器 SVM是最...

3268
来自专栏深度学习之tensorflow实战篇

随机森林,random forest

模型组合(比如说有Boosting,Bagging等)与决策树相关的算法比较多,这些算法最终的结果是生成N(可能会有几百棵以上)棵树,这样可以大大的减少单决策树...

2855
来自专栏大学生计算机视觉学习DeepLearning

转-------基于R-CNN的物体检测

原文地址:http://blog.csdn.net/hjimce/article/details/50187029

712
来自专栏书山有路勤为径

卷积神经网络-目标检测

其中,bx、by表示汽车中点,bh、bw分别表示定位框的高和宽。以图片左上角为(0,0),以右下角为(1,1),这些数字均为位置或长度所在图片的比例大小。

971
来自专栏wOw的Android小站

[MachineLearning] 激活函数Activation Function

神经网络中激活函数的主要作用是提供网络的非线性建模能力,如不特别说明,激活函数一般而言是非线性函数。假设一个示例神经网络中仅包含线性卷积和全连接运算,那么该网络...

1091
来自专栏IT派

入门 | 了解神经网络,你需要知道的名词都在这里

近日,Mate Labs 联合创始人兼 CTO 在 Medium 上撰文《Everything you need to know about Neural Ne...

3508
来自专栏技术碎碎念

基于深度学习的图像风格转换

距离上次写博客已经好久好久好久了,真是懈怠的生活节奏,整天混吃等死玩游戏,前些日子做毕业设计时总算又学了点新东西。学了一点深度学习和卷积神经网络的知识,附带着...

3707
来自专栏磐创AI技术团队的专栏

使用Keras进行深度学习:(三)使用text-CNN处理自然语言(下)

前言:在上一篇文章中,已经介绍了Keras对文本数据进行预处理的一般步骤。预处理完之后,就可以使用深度学习中的一些模型进行文本分类。在这篇文章中,将介绍text...

3844

扫码关注云+社区