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运算:
Loss函数为:
这实际上就是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,即:
SVDF将运算量从 变为 ,这里的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是一个 的tensor,这里的m,n分别是input和output的channel数, 则是kernel的宽和高。
LCNN将这个巨大的weight tensor拆解成若干小tensor的运算:
1.建立一个包含k个 大小的tensor的字典D。
2.一个用于选择字典条目的矩阵I。
3.权值矩阵C。
然后按照下图所示的方法,计算得到W:
用数学公式表示,则为:
上图是LCNN的前向运算示意图,其中:
这个过程实际上等效于 ,而参数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计算步骤中,很多当前时刻的计算都依赖 的值,导致整个网络的计算无法并行化。SRU针对这一点去掉了当前时刻计算对于 的依赖,而仅保留 (这个计算较为廉价)以记忆信息,大大改善了整个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》
上式是LSTM的公式(其中的最后一步在多数模型中,往往直接用 代替。),从中可以看出类似 的FC运算占据了LSTM的绝大部分运算量。其中W的参数量为:
为了精简相关运算,Google的Hasim Sak于2014年提出了LSTMP。
Hasim Sak,土耳其伊斯坦布尔海峡大学博士,Google研究员。
LSTMP的结构图如下:
改写成数学公式就是:
LSTMP的主要思想是对 做一个映射,只有部分数据 参与recurrent运算,其余部分 直接输出即可(这一步是可选项,所以用虚框表示)。
这样W的参数量为:
参数量公式用蓝色和红色标出修改前后对应的部分,可以看出计算量有了明显下降。
参考:
http://blog.csdn.net/xmdxcsj/article/details/53326109
模型压缩lstmp
《Video Summarization with Long Short-term Memory》
这是一篇用于提取视频关键帧(也叫静态视频摘要)的论文,是南加州大学沙飞小组的作品。
上图是该文提出的DPP LSTM的网络结构图。它的主体是一个BiLSTM,算是中规中矩吧。
该文的创新点在于提出了DPP loss的概念。上图中的 表示帧的分值(越大表示越重要), 表示帧之间的相似度。该文的实验表明,将两个特征分开抽取,有助于提升模型的准确度。
这篇论文主要用到了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了