aaa导语 一个机器学习算法包含两个主要部分 (1)模型从输入特征x预测输入y的函数f(x); (2)目标函数 目标函数取最小(最大)值时所对应的参数值,就是模型的参数的最优值。我们往往只能获得目标函数的局部最小(最大)值,因此也只能得到模型参数的局部最优值,而常见求最优解的算法是梯度下降/上升算法。 而神经网络算法是实现机器学习的其中一种方法,为了适应不同的输入特征应用场景,神经网络算法也有很多种变形,这里只是简单的介绍下长短时记忆网络,做个笔记。
全连接神经网络和卷积神经网络的特点是只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的,而循环神经网络就可以处理序列性较强的信息,即前后输入有依赖关系的场景,但是其误差项沿时间反向传播的公式容易产生梯度消失的问题;
什么叫梯度消失?
假设某次训练中,各个时刻的梯度之和如下(盗图):
而权重数组W的最终梯度是各个时刻的梯度之和:
从图中可以看到在t-3时刻,梯度开始接近为0了,再向前走的时刻中也几乎为0,所以安照反向传播更新的思想,t-3及其之前接近0的时刻都不会对权重w有更新 ,也就相当于网络忽略了t-3时刻之前的状态,这就是梯度消失导致的原始循环神经网络无法处理较长距离依赖的原因。
长短时记忆网络也是一种循环神经网络,它的产生背景是为了解决原始循环神经网络误差项沿时间反向传播的公式容易产生梯度消失的问题。
什么是长短时记忆网络
如下图所示,该网络由长短时记忆层堆砌而成,可用于提取时序视频帧中的时空特征。
每个长短时记忆单元包括1个输入门、1个输出门、1个忘记门和1个记忆元组;具体来讲,输入门用于对输入进行预处理,输出门用于对输出做后处理,忘记门用于控制记忆元组,对记忆元组记录的内容进行自适应地遗忘。更具体的公式表示如下。
应用示例:周期性三维人体姿势机 (CVPR 2017)
姿态估计是计算机视觉研究的一个重要领域,其主要任务是让计算机能够自动地感知场景中的人“在哪里”和判断人在“干什么”,它的应用包括智能监控、病人监护和一些涉及人机交互的系统。人体姿势的目标是希望能够自动地从未知的视频中(例如,一段图像帧)中推测人体各个部分的姿态参数(例如,关节点坐标)。通过这些姿态参数可以在三维空间中重建人体的动作,为整个场景的语义理解奠定基础。
为解决这一问题,Lin [3] 提出了周期性三维人体姿势机。
如上图所示,该姿势机由互相串联的卷积神经网络和长短时记忆网络构成,整体来看分为三个阶段,渐进式地修正预测出的三维姿势。每个阶段可分为二维姿势、特征适配和三维姿势周期等三个模块。二维姿势模块使用全卷积神经网络对视频数据进行逐帧处理,提取二维图像中人物的二维人体关节点特征;特征适配模块将二维图像中人物的二维人体关节点特征转化到三维人体关节点坐标相关的特征空间; 三维姿势周期模块使用长短时记忆网络结合当前帧及其之前的连续多帧二维图像的特征信息,预测出当前帧二维图像的三维人体关节点坐标。 单个阶段的模块详细结构如下图所示:
其中,网络结构的参数如下:
序号
1
2
3
4
5
6
7
8
9
—|—|—|—|—|—|—|—|—|—
名称
conv1_1
conv1_1
pool_1
conv2_1
conv2_2
pool_2
conv3_1
conv3_2
conv3_3
通道数
(核大小-步长)
64(3-1)
64(3-1)
64(2-2)
128(3-1)
128(3-1)
128(2-2)
256(3-1)
256(3-1)
256(3-1)
序号
10
11
12
13
14
15
16
17
18
通道数
(核大小-步长)
256(3-1)
256(2-2)
512(3-1)
256(3-1)
256(3-1)
256(3-1)
256(3-1)
256(3-1)
128(3-1)
序号
19
20
21
22
23
24
25
名称
conv5_1
conv5_2
conv6_1
conv6_2
fc_1
lstm
fc_2
通道数
(核大小-步长)
128(3-1)
128(3-1)
128(5-2)
128(5-2)
1024
1024
51
**训练目标**
计算训练样本中真实的三维人体关节点坐标与预测的三维人体关节点坐标的误差;采用时序反向传播算法求长短时记忆网络中各个参数的偏导数;根据长短时记忆网络传入的残差,通过反向传播算法求卷积神经网络中各个参数的偏导数;根据计算结果更新模型参数并重复迭代计算。
其中,![](/image/chang_duan_shi_ji_yi_wang_luo_xue_xi_bi_ji/36650221bd0bc9489878ae8ac1ac5b71c88935c4f56a39beafa1e8333e88b31a)为输入深度模型的连续帧数目,K为关节点数目,![](/image/chang_duan_shi_ji_yi_wang_luo_xue_xi_bi_ji/910763cd9520f4bb695e81c647a67767cca9d7a50aadbb071362de832f2281a2)为前向传播算法预测的三维人体关节点坐标,![](/image/chang_duan_shi_ji_yi_wang_luo_xue_xi_bi_ji/726bc8f330d49df02f89ea342e65f0c8d29ec0af41eb7e3a3bc81226cb3045c5)为训练样本中真实的三维人体关节点坐标。 实验结果 在大规模数据集Human3.6M上实验验证如下,该方法超越了现有最先进的方法,三维姿势预测误差小到了73.10,比现有最好的方法提升了21.52%。![](/image/chang_duan_shi_ji_yi_wang_luo_xue_xi_bi_ji/c62a602df24a762dbeb95a389a137c95707d3a39f7554405281dd48fbd9c19fb) 根据作者的实验,仅舍弃长短时记忆网络后,三维姿势预测误差才为81.12。即长短时记忆网络提升了10%的性能。 引用 [1] S. _Hochreiter_ and J. _Schmidhuber_, Long short-term memory, Neural Computation, vol. 9, no. 8, pp. 1735--1780, 1997. [2] X. Shi, Z. Chen, H. Wang, D.-Y. _Yeung_, W.-k. Wong and W.-c. WOO, Convolutional lstm network: A machine learning approach for precipitation nowcasting, in Advances in Neural Information Processing Systems (NIPS), pp. 802—810, 2015. [3]Mude Lin, Liang Lin, Xiaodan Liang, Keze Wang, Hui Cheng. Recurrent 3D Pose Sequence Machines, CVPR 2017. [4] 零基础入门深度学习(6) - 长短时记忆网络(LSTM)