滑动窗口时空深度置信网络行为识别

2018-08-17 03:01:12高大鹏朱建刚
计算机工程与设计 2018年8期
关键词:玻尔兹曼池化层池化

高大鹏,朱建刚

(中国民航飞行学院 计算机学院,四川 广汉 618307)

0 引 言

基于机器学习的人体行为识别是近年研究领域的重点。行为识别研究主要分为两个部分:行为特征提取和表达、行为识别和理解。如提高运动强度和运动趋势的表征完整性和有效性[1],以提高行为识别率;又或采用隐动态条件神经域,在潜动态条件随机场上加上神经网络层[2]等方法。

近年来深度学习方法被应用到了行为识别上,而且获得了比以前更高的识别率。深度学习算法分为四大类[3]:①有监督的卷积神经网络[4];②基于自编码(auto encoder)的深度神经网络[5];③基于限制玻尔兹曼机的深度置信网络(deep belief networks,DBN[6,7]);④基于递归神经网络(recurrent neural network)的深度神经网络[8]。

条件限制玻尔兹曼机用于行为识别建模[9],建立了一个可用于带标签视频数据的门控因子分解模型。时空深度置信网络[10](space-time deep belief network,ST-DBN)也被用于行为识别,ST-DBN在KTH[11]数据库上获得了91.13%的识别率。

以上算法具体应用时需要较大的训练数据集。文献[10]采用的方法是留一法,即每次只留下一个样本做测试集,其它样本都做为训练集。在这大样本训练的前提之下,有超过90%的识别率,当训练集较小的情况下,识别率降低很快。而在实际应用中,小样本的情况很常见,这就导致了上述算法在具体应用中有很大的局限性。

为了解决这个问题,提出了滑动窗口时空深度置信网络行为识别算法,在同样的视频中,通过滑动窗口,可以提供更多的训练数据,在小样本的前提下,也可以获得较高的识别率。

1 相关理论研究

1.1 限制玻尔兹曼机

限制玻尔兹曼机(restricted Boltzmann machine,RBM)的结构如图1所示。

图1 限制玻尔兹曼机结构

RBM由两层神经元连接而成:可见层神经元v和隐藏层神经元h。RBM与玻尔兹曼机(BM)不同在于BM允许层内连接,而RBM要求层内无连接,层间全连接。v和h之间通过权值矩阵W和两个偏置向量a和b相连接。

用θ=(W,a,b)表示RBM的参数。给定v和h,能量函数可表达为矩阵-向量形式,如式(1)所示

E(v,h)=-hTWv-aTv-bTh

(1)

式(1)的联合概率分布表示为式(2)

P(v,h)=exp(-Eθ(v,h))/Zθ

(2)

其中,Z用于保证概率p是归一化的,称为归一化因子,如式(3)所示

(3)

在具体应用中,需要求得v和h对应于P(v,h)的概率分布函数P(v)和P(h),若输入v是由0和1构成的二值分布,则两个条件分布函数分别如式(4)和式(5)所示

(4)

(5)

其中,σ函数为激活函数,选用σ(x)=tanh(x)或σ(x)=1/(1+e-x)。采用对比散度算法[12]求重构误差最小,使用数据在RBM上进行训练即可求得参数θ(W,a,b)。

1.2 条件限制玻尔兹曼机

为了解决处理视频数据多帧的问题,提出条件限制玻尔兹曼机(conditional restricted boltzman machines,CRBM)[13]。在RBM的基础上,CRBM前n时刻的可视层与当前时刻的可视层进行自回归连接,并且前n个时刻的可视层与隐藏层进行连接。其结构如图2所示。

图2 条件限制玻尔兹曼机结构

图2是一个时间序列的非线性产生的无向模型,包含隐藏层神经元集合h,它们与可见层神经元集合v相联。v可以用指数簇分布表示。每个时间间隔t中,在最后的N步,v和h从可视变量集接收直接连接。设数据在t-1,…,t-N步里串联成一个向量,记为v

p(vt,ht|v

(6)

能量函数如式(7)所示

(7)

偏置向量ai,t和bj,t如下

ai,t=ai+∑kAkivk,

(8)

bi,t=bj+∑kBkjvk,

(9)

表示将网络的输入从分别前面t个状态传递数据到可视神经元和隐含层神经元。设σi=1。此时,v和h的分布函数为式(10)、式(11)所示

(10)

(11)

通过对前n帧数据的观测,可以实现对多帧视频数据的处理。其参数为θ(W,b,c,A,B),同样可以通过对比散度算法进行优化。CRBM一旦训练完成,就可以像深度置信网络一样向上添加层。新的层不论是结结构还是训练过程都和原来的层一样。

2 基于滑动窗口的深度置信网络

2.1 整体结构和流程

为了处理多帧视频,将时间(帧数)和空间(像素)维度最后变为n*1维的数据,需要将数据进行多次卷积和最大池化处理。称这种时空卷积RBM为时空深度置信网络(spatiotemporal deep belief networks,ST-DBN)。基于滑动窗口的深度置信网络系统整体结构如图3所示。

图3 系统整体结构

滑动窗口的目的是在训练样本较小的情况下,提供尽量多的训练样本;空间池化层的目的是为了降低视频帧的维度;时间池化层的目的是降低时间上的维度。通过多层空间和时间池化并且通过最小化偏差更正各个参数,输出视频的特征。通过这些特征对SVM进行训练和测试,最后得到行为的识别率。需要说明的是时间和空间池化层的数量不是一比一的,而是根据需要进行灵活设定。在本文涉及到的实验中,时间池化层是两层,而空间池化层为三层。

2.2 滑动窗口

为了便于描述,设视频全长为L帧;滑动窗口宽度为k,即窗口包含k帧;每次滑动位移为t帧,k>t。如图4所示。

图4 滑动窗口截取视频

把滑动窗口截取的k帧作为下一个阶段的输入。则一个L帧的视频可截取并且输出的视频片段数量为(L-k+t)/t个。如视频长度L=300,k=20,t=5,则可产生57个20帧的视频片段,如果不采用滑动窗口,则只能分割出15个20帧的视频片段。当k与t值相同时,退化为不采用滑动窗口的一般形式。

2.3 卷积限制玻尔兹曼机

卷积限制玻尔兹曼机(convolutional restricted Boltzmann machines,convolutional RBM)。如图5所示,卷积RBM由三层单元组成:可视层v,二进制隐藏层h和二进制最大池化层p。v层元素Vc,i,j表示通道c的像素(i,j)。

图5 卷积RBM单帧视频处理

(12)

隐藏层和最大化池的约束条件来源于定义:当且仅当最大池化单元Pα至少与一个隐藏单元hi,j的隐藏块Bα匹配[14]。

训练卷积RBM需要用到蒙特卡洛方法对隐藏单元对可视单元的条件分布和可视单元对隐藏单元的条件分布进行采样。定义可视神经元的操作如式(13)所示

(13)

隐藏神经元对群g的操作如式(14)所示

(14)

则条件概率表示为式(15)~式(17)

(15)

(16)

(17)

卷积RBM是高度过完备的结构,此外在训练的时候需要正则化。在最大池化单元的活动中放置惩罚项,以使其偏向得到更小的常量值r。给一个包含k张图像的数据集{v1,v2,v3,…,vk},就是找到一组参数θ,使得目标函数最小[15],如式(18)所示

(18)

其中,B是Pg中最大池化单元的数量,λ是正则化常数,r是常量,用以控制活动的最大池化单元的稀疏度。使用1步差异对比[16]方法对数似然项的近似梯度,以及随机梯度下降法对式(18)中的正则项做优化。

2.4 时空深度置信网络

时空深度置信网络(space-time deep belief network,ST-DBN)对视频的处理,是在分层聚合的网络结构中逐次处理视频的时空维度。

图6显示了ST-DBN的第一层:空间池化层,它处理输入的视频帧序列nVt{v(0),v(1),v(2),…,v(nt)}。在每个时间间隔t,空间卷积RBM将输入的一个视频v(t)大小为ch*nVx*nVy,经过池化变成大小为|W|*nPx*nPy的输出p(t)。其中W表示权值矩阵,与参数向量θ一起为所有的空间卷积RBM共享。

图6 空间池化层

图7是第二层,时间池化层,它从上一层得到低分辨率的图像序列{p(0),p(1),p(2),…,p(nvt)},然后输出一个较短的序列{s(0),s(1),…,s(nst)}。从图7中可以看出,图像帧中的像素(i,j)随着时间排列成一个时间序列sIij,大小为(W*nVt*1)。每个sIij输入到卷积RBM中进行卷积运算,使用的滤波器为权值矩阵W′。与空间卷积RBM相似,时间卷积RBM使用的权值矩阵W′,其第g个时间滤波器W′g的长度为nWt。与空间滤波器不同的是,时间卷积RBM池化只对时间维度进行。

图7 时间池化层

时间池化层总共有(nPx*nPy)个卷积RBM,因为图像帧中的每一个像素都要按时间顺序进行排列,然后用时间卷积RBM进行处理。输入像素点(i,j)的时间序列sIij,时间卷积RBM输出更短的序列sOij。其大小为(W*nSt*1),nSt

序列{s(0),s(1),…,s(nst)}传到下一层做进一步的时空池化运算。模型的训练通过贪婪算法[17]分层进行。随着每个池化层的训练,首先初始化隐藏层和最大池化层,使用式(15)、式(16),对滤波分布的对应的平均场近似求值。采用文献[16]的方法,重复块Gibbs采样直到收敛。

ST-DBN最后输出的是视频特征,利用这些特征,输入一个多类SVM分类器进行训练和测试,即可得到行为识别的正确率。

3 实验及讨论

3.1 采用的数据库

人体运动视频数据库采用的是中科院的CASIA action database[18]。该数据库收集了户外固定摄像机在不同角度拍摄的个人和多人不同的行为。总共1446个视频序列,包括8种不同类型的个人行为以及7种不同的两人交互行为。与国外同类的行为数据库(如魏茨曼科学院行为识别数据库Weizmann human action database)相比,该数据库的背景较为复杂,而且部分前景有遮挡,具有一定的难度。

3.2 实验过程和结果

对全部共8种个人行为进行了实验。按照不同大小的训练数据对模型进行验证和原始的ST-DBN进行了对比。首先我们实验了不同的滑动窗口大小和步长对实验结果的影响。采用的是较小的训练集,占总视频数据的1/3,而测试集为2/3,结果如图8所示。

图8 不同窗口宽度和滑动位移的识别率对比

在实验中发现,当滑动窗口较宽时,识别率会显著上升,但当窗口宽度大于20帧以后,识别率就不再明显上升了。而且由于窗口宽度增加,计算时间也随着增加,故20帧是窗口宽度性价比最高的选择。同时,发现滑动位移为3帧时,识别率达到最大。故选择滑动位移为3帧,窗口宽20帧。

找到了窗口的宽度以后,ST-DBN的结构和参数就可以确定了。ST-DBN采用五层网络结构,其中第二、第四层是时间卷积层,其余三层为空间卷积层。第一层采用25个滤波器,后面四层采用64个滤波器。所有卷积层的参数相同。nWx=nWy=10,池化参数ρ=3,学习率参数为0.1,稀疏化参数r=0.01,正则化常数λ=1。用高斯噪声对滤波器权重进行随机初始化,得到的初始化矩阵乘以0.1。当然,对于时间池化层还有一个参数nWt=20。

设定完参数以后,把数据集划分为训练集和测试集,训练集的大小分别占总数据的10%~90%,分别与原始ST-DBN做了实验,实验结果见表1。

表1 不同大小测试集识别率

从表1中可以看出,当测试集很小时,本文算法的识别率要远高于原始的ST-DBN算法,当测试集逐渐增大时,二者的识别率逐渐靠近,但本文算法的结果仍优于原始ST-DBN结果。

4 结束语

本文针对现有的ST-DBN行为识别在较小训练集下识别效果不佳的问题,提出了一种利用滑动窗口来增加训练数据集方法。其基本步骤为:首先采用较小的训练集,通过反复实验找到滑动窗口的最佳大小和移动位移;滑动窗口的大小确定了时间池化层的参数和层数,视频分辨率的大小确定了空间池化层的参数和层数;即可开始训练ST-DBN,输出视频特征。

由于ST-DBN的计算复杂,参数多,迭代收敛时间复杂度高,所以要做到实时行为识别比较困难。未来的工作是降低参数数量和时间复杂度,以实现实时的行为识别。

猜你喜欢
玻尔兹曼池化层池化
基于紧凑型双线性网络的野生茵识别方法研究
无线电工程(2024年8期)2024-09-16 00:00:00
基于格子玻尔兹曼方法的流固耦合问题模拟
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
软件导刊(2022年3期)2022-03-25 04:45:04
卷积神经网络模型研究分析*
非对称弯道粒子惯性迁移行为的格子玻尔兹曼模拟
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
科技传播(2020年6期)2020-05-25 11:07:46
基于卷积神经网络和池化算法的表情识别研究
基于全卷积神经网络的SAR图像目标分类*