【深度学习篇】---CNN和RNN结合与对比,实例讲解
一、前述
CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的各种组合方式,以及CNN和RNN的对比。
二、CNN与RNN对比
1、CNN卷积神经网络与RNN递归神经网络直观图
2、相同点:
2.1. 传统神经网络的扩展。
2.2. 前向计算产生结果,反向计算模型更新。
2.3. 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。
3、不同点
3.1. CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算
3.2. RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出
3. 3. CNN高级100+深度,RNN深度有限
三、CNN+RNN组合方式
1. CNN 特征提取,用于RNN语句生成图片标注。
2. RNN特征提取用于CNN内容分类视频分类。
3. CNN特征提取用于对话问答图片问答。
四、具体应用
1、图片标注
基本思路
目标是产生标注的语句,是一个语句生成的任务,LSTM?
描述的对象大量图像信息,图像信息表达,CNN?
CNN网络中全连接层特征描述图片,特征与LSTM输入结合。
具体步骤:
1.1 模型设计-特征提取
全连接层特征用来描述原图片
LSTM输入:word+图片特征;输出下一word。
1.2 模型设计-数据准备
1. 图片CNN特征提取
2. 图片标注生成Word2Vect 向量
3. 生成训练数据:图片特征+第n单词向量:第n+1单词向量。
1.3 模型训练:
1. 运用迁移学习,CNN特征,语句特征应用已有模型
2. 最终的输出模型是LSTM,训练过程的参数设定:梯度上限(gradient clipping), 学习率调整(adaptivelearning)
3. 训练时间很长。
1.4 模型运行:
1. CNN特征提取
2. CNN 特征+语句开头,单词逐个预测
2、视频行为识别 :
视频中在发 生什么?
2.1常用方法总结:
RNN用于CNN特征融合
1. CNN 特征提取
2. LSTM判断
3. 多次识别结果分析。
不同的特征不同输出。
或者:所有特征作为一个输出。
2.2 RNN用于CNN特征筛选+融合:
1. 并不是所有的视频 图像包含确定分类信息
2. RNN用于确定哪些frame 是有用的
3. 对有用的图像特征 融合。
2.3 RNN用于,目标检测:
1. CNN直接产生目标候选区
2. LSTM对产生候选区融合(相邻时刻位置近 似)
3. 确定最终的精确位置。
2.4 多种模型综合:
竞赛/应用中,为了产生最好结果,多采用 多模型ensemble形式。
3、图片/视频问答
3.1 问题种类
3.2 图片问答意义
1. 是对纯文本语言问答系统的扩展
2. 图片理解和语言处理的深度融合
3. 提高人工智能应用范围-观察,思考,表达
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1wzcx9d4ww853
【深度学习篇】---CNN和RNN结合与对比,实例讲解的更多相关文章
- [转] 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
转自知乎上看到的一篇很棒的文章:用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文 ...
- 深度学习入门: CNN与LSTM(RNN)
1. 理解深度学习与CNN: 台湾李宏毅教授的入门视频<一天搞懂深度学习>:https://www.bilibili.com/video/av16543434/ 其中对CNN算法的矩阵卷积 ...
- 深度学习之循环神经网络RNN概述,双向LSTM实现字符识别
深度学习之循环神经网络RNN概述,双向LSTM实现字符识别 2. RNN概述 Recurrent Neural Network - 循环神经网络,最早出现在20世纪80年代,主要是用于时序数据的预测和 ...
- 深度学习之 cnn 进行 CIFAR10 分类
深度学习之 cnn 进行 CIFAR10 分类 import torchvision as tv import torchvision.transforms as transforms from to ...
- 深度学习篇——Tensorflow配置(傻瓜安装模式)
前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...
- 【深度学习】CNN 中 1x1 卷积核的作用
[深度学习]CNN 中 1x1 卷积核的作用 最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前 ...
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类 ...
- PyTorch中使用深度学习(CNN和LSTM)的自动图像标题
介绍 深度学习现在是一个非常猖獗的领域 - 有如此多的应用程序日复一日地出现.深入了解深度学习的最佳方法是亲自动手.尽可能多地参与项目,并尝试自己完成.这将帮助您更深入地掌握主题,并帮助您成为更好的深 ...
- 深度学习:浅谈RNN、LSTM+Kreas实现与应用
主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学习框 ...
随机推荐
- MySql 动态语句
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) ...
- ThinkPHP5零基础搭建CMS系统(一)
了解学习thinkphp5应该是2016年年底的事情,当时还没有接触过thinkphp3版本,觉得通过手册直接上手学习tp5蛮轻松的,现在从零记录下,搭建可扩展的CMS. 1.ThinkPHP环境搭建 ...
- 适合Python的5大练手项目, 你练了么?
在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 首先有两点建议: 最好不要写太应用的程序练手,要思考什么更像是知识,老只会写写爬虫是无用的,但是完全不写也不行. 对于练手的程序,要注意简化 ...
- 构建基础的SpringMVC+Hibernate+SpringloC项目
一. SpringMVC 阅读我的上一篇文章<使用MyEclipse2015构建SpringMVC项目>,知道基本的构建方法,先构建一个纯springmvc项目,再对web.xml按照本文 ...
- Python进阶开发之网络编程,socket实现在线聊天机器人
系列文章 √第一章 元类编程,已完成 ; √第二章 网络编程,已完成 ; 本文目录 什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战 ...
- C语言pow()函数的计算精度问题
编程计算 a+aa+aaa+-+aa-a(n个a)的值,n和a的值由键盘输入.例如,当n=4,a=2,表示计算2+22+222+2222的值. 程序运行结果示例: Input a,n: 2,4↙ su ...
- 树莓派创建WiFi热点
将代码clone到本地 git clone https://github.com/oblique/create_ap cd create_ap make install 安装依赖的库 有些源中可能使用 ...
- Java程序算法设计视频分享,需要的来
每年都会有人说,IT行业饱和了,根本就找不到工作,其实,我想说的是,不是工作难找,而是你自己不够好! 前几天看到一CEO在微博上吐槽: 前几天招一算法工程师我们给了8万月薪*14+奖金,人家去阿里拿5 ...
- RestTemplate的设置和使用
什么是RestTemplate? RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效 ...
- 分布式服务跟踪及Spring Cloud的实现
在分布式服务架构中,需要对分布式服务进行治理——在分布式服务协同向用户提供服务时,每个请求都被哪些服务处理?在遇到问题时,在调用哪个服务上发生了问题?在分析性能时,调用各个服务都花了多长时间?哪些调用 ...