深度学习(二十三)——Fast Image Processing, SVDF, LCNN, LSTM进阶

https://antkillerfarm.github.io/

Fast Image Processing(续)

这个课题一般使用MIT-Adobe FiveK Dataset作为基准数据集。网址:

http://groups.csail.mit.edu/graphics/fivek_dataset/

这个数据集包含了5K张原始照片,并雇用了5个专业修图师,对每张图片进行修图。

众所周知,多层神经网络只要有足够的深度和宽度,就可以任意逼近任意连续函数。然而从Fast Image Processing的目的来说,神经网络的深度和宽度注定是有限的,否则肯定快不了。而这也是该课题的研究意义所在。

本文只使用了MIT-Adobe数据集中的原始图片,并使用了10种常用的算子对图片进行处理。因此,该网络训练时的输入是原始图片,而输出是处理后的图片。

这里写图片描述

上图是本文模型的网络结构图。它的设计特点如下:

1.采用Multi-Scale Context Aggregation作为基础网络。MCA的内容参见《深度学习(九)》。

2.传统MCA一般有下采样的过程,但这里由于网络输入和输出的尺寸维度是一样的,因此,所有的feature maps都是等大的。

3.借鉴FCN的思想,去掉了池化层和全连接层。

4.L1~L3主要用于图片的特征提取和升维,而L4~L5则用于特征的聚合和降维,并最终和输出数据的尺寸维度相匹配。

在normalization方面,作者发现有的operators经过normalization之后,精度会上升,而有的精度反而会下降,因此为了统一模型,定义如下的normalization运算:

Ψ s ( x ) = λ s x + μ s B N ( x )

Loss函数为:

l ( K , B ) = i 1 N i f ^ ( I i ; K , B ) f ( I i ) 2

这实际上就是RGB颜色空间的MSE误差。

为了检验模型的泛化能力,本文还使用RAISE数据集作为交叉验证的数据集。该数据集的网址:

http://mmlab.science.unitn.it/RAISE/

RAISE数据集包含了8156张高分辨率原始照片,由3台不同的相机拍摄,并给出了相机的型号和参数。

TNG

Tiny Network Graphics是图鸭科技推出一种基于深度学习的图片压缩技术。由于商业因素,这里没有论文,技术细节也不详,但是下图应该还是有些用的。

这里写图片描述

参考:

https://mp.weixin.qq.com/s/WYsxFX4LyM562bZD8rO95w

图鸭发布图片压缩TNG,节省55%带宽

SVDF

SVDF是UCB和Google Speech Group的作品,主要用于简化Speech模型的计算量。

论文:

《Compressing Deep Neural Networks using a Rank-Constrained Topology》

代码:

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/speech_commands/models.py

音频数据通常是一个[time, frequency]的二维tensor,直接放入FC网络,会导致较大的计算量。(下图左半部分所示)

这里写图片描述

SVDF将每个time的frequency作为一组,进行FC之后,再和其他组的结果进一步FC。上图右半部分所示的是time的filters为1的时候的SVDF。当然filters也可以为其他值,和CNN类似,filters越多,提取的特征越多。

从原理来说,SVDF相当于用两层FC来拟合1层FC,即:

w i , j ( m ) α i ( m ) β i ( m )

SVDF将运算量从 C d 变为 ( C + d ) k ,这里的k为filters numbers。

这实际上就是2维tensor的SVD,只不过SVD是线性变换,而这里是非线性变换而已。(参见《机器学习(十五)》中的ALS算法部分)

实际上,SVDF和之前在《深度学习(十六)》中提到的Fast R-CNN的FC加速,原理是基本一致的。

LCNN

LCNN是华盛顿大学和Allen AI研究所的作品。后者是微软创始人Paul Allen投资兴建的研究机构。

论文:

《LCNN: Lookup-based Convolutional Neural Network》

代码:

https://github.com/hessamb/lcnn

我们知道一个Conv层的weight是一个 n × m × k w × k h 的tensor,这里的m,n分别是input和output的channel数, k w , k h 则是kernel的宽和高。

LCNN将这个巨大的weight tensor拆解成若干小tensor的运算:

1.建立一个包含k个 m × k w × k h 大小的tensor的字典D。

2.一个用于选择字典条目的矩阵I。

3.权值矩阵C。

然后按照下图所示的方法,计算得到W:

这里写图片描述

用数学公式表示,则为:

W [ : , r , c ] = t = 1 s C [ t , r , c ] D [ I [ t , r , c ] , : ] , r , c

这里写图片描述

上图是LCNN的前向运算示意图,其中:

S [ i , : , : ] = X D [ i , : ]

这个过程实际上等效于 S P ,而参数P就是我们需要训练的模型参数。

可以看出LCNN和SVDF都是采用稀疏表示的方法来减少运算量,只是实现方式和用途略有不同而已。

参考:

http://blog.csdn.net/feynman233/article/details/69785592

LCNN论文阅读笔记

LSTM进阶

《Long short-term memory》

这是最早提出LSTM这个概念的论文。这篇论文偏重数学推导,实话说不太适合入门之用。但既然是起点,还是有列出来的必要。

《LSTM Neural Networks for Language Modeling》

这也是一篇重要的论文。

《Sequence to Sequence - Video to Text》

https://vsubhashini.github.io/s2vt.html

这里写图片描述

《Long-term Recurrent Convolutional Networks for Visual Recognition and Description》

Long-term Recurrent Convolutional Networks是LSTM的一种应用方式,它结合了LSTM、CNN、CRF等不同网络组件。

这里写图片描述

上图展示了LSTM在动作识别、图片和视频描述等任务中的网络结构。

这里写图片描述

上图展示了图片描述任务中几种不同的网络连接方式:

1.单层LRCN。

2.双层LRCN。CNN连接在第一个LSTM层。传统的LSTM只有一个输入,这里的CNN是第二个输入,也就是所谓的静态输入。可参看caffe的LSTM实现。

2.双层LRCN。CNN连接在第二个LSTM层。

这里写图片描述

这里写图片描述

这里写图片描述

这是视频描述任务中LSTM和CRF结合的示例。

《Training RNNs as Fast as CNNs》

这篇论文提出了如下图所示的Simple Recurrent Unit(SRU)的新结构:

这里写图片描述

由于普通LSTM计算步骤中,很多当前时刻的计算都依赖 h t 1 的值,导致整个网络的计算无法并行化。SRU针对这一点去掉了当前时刻计算对于 h t 1 的依赖,而仅保留 C t 1 (这个计算较为廉价)以记忆信息,大大改善了整个RNN网络计算的并行性。

但是SRU的精度没有LSTM高,需要通过增加layer和filter的数量来达到相同的精度,当然即使这样,计算时间仍然小于LSTM。

《Neural Machine Translation in Linear Time》

该论文是Deepmind的作品,它提出的ByteNet,计算复杂度为线性,也是LSTM的优化方案之一。

《Long Short-Term Memory Based Recurrent Neural Network Architectures for Large Vocabulary Speech Recognition》

i t = δ ( W i x x t + W i m m t 1 + W i c c t 1 + b i ) f t = δ ( W f x x t + W f m m t 1 + W f c c t 1 + b i ) c t = f t c t 1 + i t g ( W c x x t + W c m m t 1 + b c ) o t = δ ( W o x x t + W o m m t 1 + W o c c t + b o ) m t = o t h ( c t ) y t = W y m m t + b y

上式是LSTM的公式(其中的最后一步在多数模型中,往往直接用 y t = m t 代替。),从中可以看出类似 W i x x t + W i m m t 1 + W i c c t 1 + b i 的FC运算占据了LSTM的绝大部分运算量。其中W的参数量为:

W = n c × n c × 4 + n i × n c × 4 + n c × n o + n c × 3

为了精简相关运算,Google的Hasim Sak于2014年提出了LSTMP。

Hasim Sak,土耳其伊斯坦布尔海峡大学博士,Google研究员。

LSTMP的结构图如下:

这里写图片描述

改写成数学公式就是:

i t = δ ( W i x x t + W i m r t 1 + W i c c t 1 + b i ) f t = δ ( W f x x t + W f m r t 1 + W f c c t 1 + b i ) c t = f t c t 1 + i t g ( W c x x t + W c m r t 1 + b c ) o t = δ ( W o x x t + W o m r t 1 + W o c c t + b o ) m t = o t h ( c t ) r t = W r m m t p t = W p m m t y t = W y r r t + W y p p t + b y

LSTMP的主要思想是对 m t 做一个映射,只有部分数据 r t 参与recurrent运算,其余部分 p t 直接输出即可(这一步是可选项,所以用虚框表示)。

这样W的参数量为:

W = n c × n r × 4 + n i × n c × 4 + n r × n o + n c × n r + n c × 3

参数量公式用蓝色和红色标出修改前后对应的部分,可以看出计算量有了明显下降。

参考:

http://blog.csdn.net/xmdxcsj/article/details/53326109

模型压缩lstmp

《Video Summarization with Long Short-term Memory》

这是一篇用于提取视频关键帧(也叫静态视频摘要)的论文,是南加州大学沙飞小组的作品。

这里写图片描述

上图是该文提出的DPP LSTM的网络结构图。它的主体是一个BiLSTM,算是中规中矩吧。

该文的创新点在于提出了DPP loss的概念。上图中的 y t 表示帧的分值(越大表示越重要), ϕ t 表示帧之间的相似度。该文的实验表明,将两个特征分开抽取,有助于提升模型的准确度。

这篇论文主要用到了3个数据集:

TVSum dataset:

https://github.com/yalesong/tvsum

这个需要Yahoo账号和一个高校的邮件地址才行。

SumMe dataset:

https://people.ee.ethz.ch/~gyglim/vsum/#benchmark

OVP and YouTube datasets:

https://sites.google.com/site/vsummsite/

需要翻墙。

IndRNN

https://mp.weixin.qq.com/s/cAqpclkkeVrTiifz07HC1g

新型循环神经网络IndRNN:可构建更长更深的RNN

https://mp.weixin.qq.com/s/7-K-nZTijoYCaprRNYXxFg

新型RNN:将层内神经元相互独立以提高长程记忆

参考

https://mp.weixin.qq.com/s/4IHzOAvNhHG9c8GP0zXVkQ

Simple Recurrent Unit For Sentence Classification

https://mp.weixin.qq.com/s/h3fF6Zvr1rSzSMpqdu8B0A

电子科大提出BT-RNN:替代全连接操作而大幅度提升LSTM效率

https://mp.weixin.qq.com/s/fCzHbOi7aJ8-W9GzctUFNg

LSTM文本分类实战

http://mp.weixin.qq.com/s/3nwgft9c27ih172ANwHzvg

从零开始:如何使用LSTM预测汇率变化趋势

https://mp.weixin.qq.com/s/M18c3sgvjV2b2ksCsyOxbQ

Nested LSTM:一种能处理更长期信息的新型LSTM扩展

https://www.zhihu.com/question/62399257

如何理解LSTM后接CRF?

https://mp.weixin.qq.com/s/XAbzaMXP3QOret_vxqVF9A

用深度学习LSTM炒股:对冲基金案例分析

https://mp.weixin.qq.com/s/eeA5RZh35BvlFt45ywVvFg

可视化LSTM网络:探索“记忆”的形成

https://mp.weixin.qq.com/s/h-MYTNTLy7ToPPEZ2JVHpw

阿里巴巴论文提出Advanced LSTM:关于更优时间依赖性刻画在情感识别方面的应用

https://mp.weixin.qq.com/s/SeR_zNZTu4t7kqB6ltNrmQ

从循环到卷积,探索序列建模的奥秘

https://mp.weixin.qq.com/s/_q69BV1r46S9X5wnLuFPSw

关于序列建模,是时候抛弃RNN和LSTM了

猜你喜欢

转载自blog.csdn.net/antkillerfarm/article/details/80046138