CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的对比,以及各种组合方式。
一、CNN与RNN对比
1. CNN卷积神经网络与RNN递归神经网络直观图
2. 相同点:
- 传统神经网络的扩展。
- 前向计算产生结果,反向计算模型更新。
- 每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。
3. 不同点
- CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算
- RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出
- CNN高级100+深度,RNN深度有限
二、CNN+RNN组合方式
1. CNN 特征提取,用于RNN语句生成图片标注。
2. RNN特征提取用于CNN内容分类视频分类。
3. CNN特征提取用于对话问答图片问答。
三、具体应用
1. 图片标注
基本思路:
- 目标是产生标注的语句,是一个语句生成的任务,LSTM?
- 描述的对象大量图像信息,图像信息表达,CNN?
CNN网络中全连接层特征描述图片,特征与LSTM输入结合。
具体步骤:
(1) 模型设计-特征提取
全连接层特征用来描述原图片
LSTM输入:word+图片特征;输出下一word。
(2) 模型设计-数据准备
- 图片CNN特征提取
- 图片标注生成Word2Vect 向量
- 生成训练数据:图片特征+第n单词向量:第n+1单词向量。
(3) 模型训练:
- 运用迁移学习,CNN特征,语句特征应用已有模型
- 最终的输出模型是LSTM,训练过程的参数设定:梯度上限(gradient clipping), 学习率调整(adaptivelearning)
- 训练时间很长。
(4) 模型运行:
- CNN特征提取
- CNN 特征+语句开头,单词逐个预测
2. 视频行为识别 :
视频中在发 生什么?
常用方法总结:
(1) RNN用于CNN特征融合:
- CNN 特征提取
- LSTM判断
- 多次识别结果分析。
不同的特征不同输出。
或者:所有特征作为一个输出。
(2) RNN用于CNN特征筛选+融合:
- 并不是所有的视频 图像包含确定分类信息
- RNN用于确定哪些frame 是有用的
- 对有用的图像特征 融合。
(3) RNN用于目标检测:
- CNN直接产生目标候选区
- LSTM对产生候选区融合(相邻时刻位置近 似)
- 确定最终的精确位置。
(4) 多种模型综合:应用中,为了产生***结果,多采用多模型ensemble形式。