深度学习-CNN+RNN笔记
以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注。2. RNN特征提取用于CNN内容分类视频分类。3. CNN特征提取用于对话问答图片问答。还有很多领域,比如根据面目表情判断情感,用于遥感地图的标注,用于生物医学的图像解析,用于安全领域的防火实时监控等。而且现阶段关于CNN+RNN的研究应用相关文章更加多样,效果越来越好,我们可以通过谷歌学术参阅这些文章,而且大部分可免费下载阅读,至于付费的那就另说咯。
CNN与RNN对比
CNN卷积神经网络与RNN递归神经网络直观图
相同点:
传统神经网络的扩展。
前向计算产生结果,反向计算模型更新。
每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。
不同点:
CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算
RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出
CNN高级100+深度,RNN深度有限
CNN+RNN组合方式
1. CNN 特征提取,用于RNN语句生成图片标注。
2. RNN特征提取用于CNN内容分类视频分类。
3. CNN特征提取用于对话问答图片问答。
具体应用
1.图片标注
基本思路:
目标是产生标注的语句,是一个语句生成的任务,LSTM?描述的对象大量图像信息,图像信息表达,CNN?CNN网络中全连接层特征描述图片,特征与LSTM输入结合。
具体步骤:
模型设计-特征提取全连接层特征用来描述原图片LSTM输入:word+图片特征;输出下一word。
模型设计-数据准备
图片CNN特征提取2. 图片标注生成Word2Vect 向量3. 生成训练数据:图片特征+第n单词向量:第n+1单词向量。
模型训练:
运用迁移学习,CNN特征,语句特征应用已有模型2. 最终的输出模型是LSTM,训练过程的参数设定:梯度上限(gradient clipping), 学习率调整(adaptivelearning)3. 训练时间很长。
模型运行:
CNN特征提取2. CNN 特征+语句开头,单词逐个预测
2.视频行为识别
视频中在发生什么?
常用方法总结:
RNN用于CNN特征融合1. CNN 特征提取2. LSTM判断3. 多次识别结果分析。
不同的特征不同输出。
或者:所有特征作为一个输出。
RNN用于CNN特征筛选+融合:
1.并不是所有的视频 图像包含确定分类信息
2. RNN用于确定哪些frame 是有用的3. 对有用的图像特征 融合。
RNN用于,目标检测:
1.CNN直接产生目标候选区
2. LSTM对产生候选区融合(相邻时刻位置近 似)
3. 确定最终的精确位置。
多种模型综合:
竞赛/应用中,为了产生最好结果,多采用 多模型ensemble形式。
3.图片/视频问答
问题种类:
图片问答意义:
1. 是对纯文本语言问答系统的扩展
2. 图片理解和语言处理的深度融合
3. 提高人工智能应用范围-观察,思考,表达
方法流程:
1.依旧按照语言问答流程解决
2.图片特征同语言特征融合
3.训练数据:问题+图片----答案
模型设计-纯文字问答系统:
1.背景故事特征生成(word embedding)
2.问题特征生成
3.背景,问题特征融合
4.标准答案回归
模型设计-图片问答系统:
1.背景故事特征生成CNN
2.问题特征生成
3.背景,问题特征融合
4.标准答案回归----用以训练的数据:真值是什么?
模型优化-1
对图片特征向量进一步处理,建立CNN特征的 fisher特征
提高特征表达效率,更容易同encoding 特征组合
模型优化-2
用问题作为“候选区域”对原始CNN 特征图局部识别
模型优化-3
注意力图对图片问答帮助,根据问题产生第一次注意力图,然后最终注意力图,最后进行回答
什么在筐子里?
1筐子范围, 2 筐子里范围, 3 识别
模型优化小结
1.不同的优化结构方便不同类型的问题回答,数字/种类/抽象/二值判断
2.仍然是很新的研究问题,上述例子来源于 CVPR2016,学术价值应用价值都很大
3.人机交互中图片问答在 盲人辅助/教育/智能助手等方面大有可为
深度学习-CNN+RNN笔记的更多相关文章
- 深度学习Keras框架笔记之TimeDistributedDense类
深度学习Keras框架笔记之TimeDistributedDense类使用方法笔记 例: keras.layers.core.TimeDistributedDense(output_dim,init= ...
- 深度学习之 rnn 台词生成
深度学习之 rnn 台词生成 写一个台词生成的程序,用 pytorch 写的. import os def load_data(path): with open(path, 'r', encoding ...
- 深度学习Keras框架笔记之AutoEncoder类
深度学习Keras框架笔记之AutoEncoder类使用笔记 keras.layers.core.AutoEncoder(encoder, decoder,output_reconstruction= ...
- 深度学习Keras框架笔记之Dense类(标准的一维全连接层)
深度学习Keras框架笔记之Dense类(标准的一维全连接层) 例: keras.layers.core.Dense(output_dim,init='glorot_uniform', activat ...
- [深度学习]理解RNN, GRU, LSTM 网络
Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...
- 深度学习 CNN CUDA 版本2
作者:zhxfl 邮箱:zhxfl##mail.ustc.edu.cn 主页:http://www.cnblogs.com/zhxfl/p/4155236.html 第1个版本blog在这里:http ...
- 深度学习-TensorFlow2.0笔记(一)
一.Tensor 1.1 什么是Tensor?Tensor的数据类型 Tensor是张量的意思,在TensorFlow中张量可以是标量(scalar).向量(vector).矩阵(matrix).高维 ...
- 《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型
目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参 ...
- deeplearning.ai 神经网络和深度学习 week1 深度学习概论 听课笔记
1. 预测房价.广告点击率:典型的神经网络,standard NN. 图像:卷积神经网络,CNN. 一维序列数据,如音频,翻译:循环神经网络,RNN. 无人驾驶,涉及到图像.雷达等更多的数据类型:混合 ...
随机推荐
- nginx之fastcgi配置参数及其缓存
CGI的由来 最早的Web服务器只能简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html文件,但是后期随着网站功能增多网站开发也越来越复杂,以至于出现动 ...
- ERA-Interim数据学习
1.气象再分析数据有很多种,看文献里用到的主要有这几种 ECWRF——ERA-Interim,分辨率0.125°,欧洲的 MERRA-2,分辨率0.625°*0.5°,NASA的 GEOS-5FP,分 ...
- shell for循环输出目录下的文件名
test.sh文件: #!/bin/bash for file in `ls`;do echo $file done 输出 bogon:test macname$ chmod +x test.sh b ...
- [POI2008]PER-Permutation
[POI2008]PER-Permutation 带重复的康托展开! 根本不需要中国剩余定理就可以A掉! 看完题面你会惊人地发现这好像一个康托展开!(显然是不同的啦) 首先我们来看康托展开这个东西在数 ...
- zabbix 同步ldap帐号脚本
1.界面配置ldap验证(略) 2.mysql导入ldap帐号信息 #!/usr/bin/env python# -*- coding:utf-8 -*- import pymysqlimport c ...
- 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买
作者图书京东链接,请点击------>>> **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...
- servlet是什么?servlet到底是啥?
#说实话 这个鬼servlet我听说过它好多年了,但是我真的不知道它到底是干啥用的.内心里总觉得这是个很复杂的,绝对是让人难以理解的东西,我真的感觉自己很抗拒它,不想知道,不想去了解.可是我还是不得不 ...
- SQLServer len 函数, 查字符串长度函数
declare @name char(1000) --注意:char(10)为10位,要是位数小了会让数据出错 set @name='s{sss}fc{fggh}dghdf{cccs}x' selec ...
- 【C++】C++ 左值、右值、右值引用详解
左值.右值 在C++11中所有的值必属于左值.右值两者之一,右值又可以细分为纯右值.将亡值.在C++11中可以取地址的.有名字的就是左值,反之,不能取地址的.没有名字的就是右值(将亡值或纯右值).举个 ...
- JMH java基准测试
Measure, don’t guess! JMH适用场景 JMH只适合细粒度的方法测试 原理 编译时会生成一些测试代码,一般都会继承你的类 maven依赖 <dependencies> ...