前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇卷积神经网络总结范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:机器学习;深度学习;推荐算法;远程教育
深度学习(DeepLearning),也叫阶层学习,是机器学习领域研究的分支,它是学习样本数据的表示层次和内在规律,在学习的过程中获取某些信息,对于数据的解释有巨大帮助。比如对文字数据的学习,在网络上获取关键字,对图像数据的学习,进行人脸识别等等。
一、深度学习发展概述
深度学习是机器学习领域里一种对数据进行表征学习的方法。一句话总结三者之间的关系就是:“机器学习,实现人工智能的方法;深度学习,实现机器学习的技术。深度学习目前是机器学习和人工智能领域研究的主要方向,为计算机图形学、计算机视觉等领域带来了革命性的进步。机器学习最早在1980年被提出,1984年分类与回归树出现,直到1986年,Rumelhart等人反向传播(BackPropaga-tion,BP)算法的提出,解决了感知模型只能处理线性分类的问题,1989年出现的卷积神经网络(ConvolutionalNeuralNet-works,CNN)也因此得到了一定的发展。在1990年至2012年,机器学习逐渐成熟并施以应用,GeoffreyHinton在2006年设计出了深度信念网络,解决了反向传播算法神经网络中梯度消失的问题,正式提出了深度学习的概念,逐渐走向深度学习飞速发展的时期。随后,各种具有独特神经处理单元和复杂层次结构的神经网络不断涌现,深度学习技术不断提高人工智能领域应用方面的极限。
二、深度学习主要模型
1、卷积神经网络卷积神经网络(ConvolutionalNeuralNetworks,CNN)是指有着深度结构又包含着卷积计算的前馈神经网络。卷积物理上理解为系统某一时刻的输出是有多个输入共同叠加的结果,就是相当于对一个原图像的二次转化,提取特点的过程。卷积神经网络实际上就是一个不断提取特征,进行特征选择,然后进行分类的过程,卷积在CNN里,首先对原始图像进行特征提取。所以卷积神经网络能够得到数据的特征,在模式识别、图像处理等方面应用广泛。一个卷积神经网络主要由三层组成,即卷积层(convolutionlayer)、池化层(poolinglayer)、全连接层(fullyconnectedlayer)。卷积层是卷积神经网络的核心部分,通过一系列对图像像素值进行的卷积运算,得到图像的特征信息,同时不断地加深节点矩阵的深度,从而获得图像的深层特征;池化层的本质是对特征图像进行采样,除去冗杂信息,增加运算效率,不改变特征矩阵的深度;全连接将层间所有神经元两两连接在一起,对之前两层的数据进行分类处理。CNN的训练过程是有监督的,各种参数在训练的过程中不断优化,直到得到最好的结果。目前,卷积神经网络的改进模型也被广泛研究,如全卷积神经网络(FullyConvolutionalNeuralNetworks,FCN)和深度卷积神经网络(DeepConvolutionalNeuralNetworks,DCNN)等等。2、循环神经网络区别于卷积神经网络在图片处理领域的应用,循环神经网络(RecurrentNeuralNetwork,RNN)主要应用在自然语言处理领域。RNN最大的特点就是神经元的输出可以继续作为输入,再次利用到神经元中循环使用。RNN是以序列的方式对数据进行读取,这也是RNN最为独特的特征。RNN的串联式结构适用于时间序列的数据,可以完好保持数据中的依赖关系。循环神经网络主要有三层结构,输入层,隐藏层和输出层。隐藏层的作用是对输入层传递进来的数据进行一系列的运算,并将结果传递给输出层进行输出。RNN可用于许多不同的地方。下面是RNN应用最多的领域:1.语言建模和文本生成,给出一个词语序列,试着预测下一个词语的可能性。这在翻译任务中是很有用的,因为最有可能的句子将是可能性最高的单词组成的句子;2.语音识别;3.生成图像描述,RNN一个非常广泛的应用是理解图像中发生了什么,从而做出合理的描述。这是CNN和RNN相结合的作用。CNN做图像分割,RNN用分割后的数据重建描述。这种应用虽然基本,但可能性是无穷的;4.视频标记,可以通过一帧一帧地标记视频进行视频搜索。3、深度神经网络深度神经网络(deepneuralnetworks,DNN)可以理解为有很多隐藏层的神经网络。多层神经网络和深度神经网络DNN其实也是指的一个东西,DNN有时也叫做多层感知机(Mul-ti-Layerperceptron,MLP)。DNN内部的神经网络层也是分为三类,输入层,隐藏层和输出层,一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。深度神经网络(DNN)目前作为许多人工智能应用的基础,并且在语音识别和图像识别上有突破性应用。DNN的发展也非常迅猛,被应用到工业自动驾驶汽车、医疗癌症检测等领域。在这许多领域中,深度神经网络技术能够超越人类的准确率,但同时也存在着计算复杂度高的问题。因此,那些能够解决深度神经网络表现准确度或不会增加硬件成本高效处理的同时,又能提升效率和吞吐量的技术是现在人工智能领域能够广泛应用DNN技术的关键。
三、深度学习在教育领域的影响
1、学生学习方面通过网上学习的实时反馈数据对学生的学习模式进行研究,并修正现有教学模式存在的不足。分析网络大数据,相对于传统在线学习本质区别在于捕捉学生学习过程,有针对性,实现学生个性化学习。举个例子,在学习过程中,可以通过学习平台对学生学习课程所花费的时间,参与的程度,知识的偏好等等数据加以分析。也可以通过学生学习某门课程的次数,鼠标点击次数、停留的时间等,来推断学生学习情况。通过以上或类似数据汇总分析,可以正向引导学生学习,并给予积极的学习评价。这种利用计算机收集分析出来的客观数据,很好展示了学生学习行为的结果,总结学习规律,而不需要教师多年的教学经验来判断。对于教育研究者而言,利用深度学习技术可以更客观准确地了解学生,使教学工作良好发展更进一步。2、教学方面学习平台的数据能够对教学模式的适应度进行预测,通过学生的考试成绩和对教师的线上评价等加以分析,能够预测出某一阶段的教学方式发发是否可行,影响如何。通过学生与教师的在线互动,学生测验时完成的时间与完成的结果,都会产生大量的有效的数据,都可以为教师教学支持服务的更好开展提供帮助,从而避免低效率的教学模式造成教学资源的浪费。
四、成人远程教育中深度学习技术的可应用性
深度学习方面的应用在众多领域都取得了成功,比如电商商品推荐、图像识别、自然语言处理、棋类博弈等等。在远程教育方面,深度学习的技术还有很大的发挥空间,智能网络教育的实现是人们的众望所盼。若要将深度学习技术应用到远程教育平台,首先要清楚学生的需求和教学资源如何分配。1、针对学生的学习需求与学习特征进行分析美国斯坦福大学克里斯皮希研究团队的研究成果显示,通过对学生知识学习进行时间建模,可以精确预测出学生对知识点的掌握情况,以及学生在下一次学习中的表现。深度学习的应用可以帮助教师推测出学生的学习能力发展水平。通过学生与教学环境的交互行为,分析其学习风格,避免教师用经验进行推断而产生的误差。2、教学资源的利用与分配深度学习技术能够形成智能的分析结论。计算机实时采集数据集,对学生的学习情况加以分析,使教师对学生的学习状态、情绪状态等有更加清晰、准确的了解。有了上面良好的教学模式,教师对学生的学习状态有了更准确的掌握,对学生的学习结果就有了更科学的教学评价。基于深度学习的人工智能技术,还可以辅助教师实现智能阅卷,通过智能阅卷自动总结出学习中出现的问题,帮助教师减少重复性劳动,减轻教师负担。作为成人高校,远程教育是我们的主要教学手段,也是核心教学方式,学校的教学必定是在学生方便学习的同时,以学生的学习效果为重。通过深度学习技术,可以科学地分析出学生的学习效果,对后续教与学给予科学、可靠的数据支撑。我们可以在平台上为每位同学建立学习模型,根据学生的学习习惯为其定制个性化方案,按他们的兴趣进行培养,发挥他们专业的潜能。同时,可以将学生正式在线参加学习和考试的学习行为和非学习时间浏览网站的行为结合到一起,更加科学地分析出学生在学习网站上感兴趣的地方。采用深度学习算法,根据学生学习行为产生的海量数据推算出学生当前状态与目标状态之间的差距,做到精准及时的学习需求反馈。有助于帮助学生明确学习目标,教师确立教学目标,真正做好因材施教。基于深度学习各种智能识别技术,可以为教师的线上教学活动增光添彩,在反馈学生学习状态的同时,采用多种形式的教学方法吸引学生的注意力,增强教学活动的互动性,达到良好的教学效果。
Abstract:the mechanical transmission system is widely used in national defense, aerospace, production and other fields of industry. Among them, the gear transmission system is the most frequently used mechanical transmission mechanism. However, because of long time of mechanical work, gear wear and tear parts easily happened, and lead to the occurrence of a variety of mechanical failure. In this paper, the author analyzes the gear transmission process, the system fault diagnosis methods and solutions.
关键词:机械传动系统;故障诊断及解决
Keywords: mechanical transmission system; Troubleshooting and solutions
1. 引言
机械传动系统广泛运用于国防、航天航空、生产等各个领域及行业中,因此,确保其安全性和可靠性具有非常重要的意义。齿轮传动系统,作为当今世界上运用频率最高的机械传动系统之一,对其故障的早期、及时诊断和解决,不仅有利于经济合理地安排设备维修的时间,更能有效避免重大人身或设备伤亡事故的发生。
2. 齿轮传动系统故障的诊断方法
2.1 常见齿轮传动系统故障
根据经验总结,常见的齿轮传动故障一般可分为两种:一种是分布在一个齿轮的各个轮齿上的分布式故障;另一种则是只集中于一个齿轮的某一个或者某几个轮齿上的局部故障。以下就具体的系统故障做诊断方法分析。
2.2 齿轮故障的诊断方法
2.2.1 小波分析方法
小波变换是一种多分辨率的时频分析方法。目前,齿轮传动故障分析中使用最广泛的小波分析方法是二进离散小波变换法。而随着小波分析技术的不断发展,和计算机容量、运算能力的飞速提高,连续小波变换也开始逐步应用于齿轮传动故障的诊断分析。而且,与二进离散小波变换相比,连续小波具有时间和尺度网格划分更细致、小波基无需正交和具有“时(移)不变”特性等多方面优势,更适合机械动态信号的检测和故障诊断。
2.2.2 神经网络分析方法
神经网络,在充分学习经验样本的基础上,将知识转换成为神经网络的权值和阈值,并将其存储在整个神经网络中。虽然神经网络模型可以映射出故障征兆的特征空间和模式空间,但是它不能解释故障诊断的技术内容和实质,因此又相当于知识表达的“黑箱结构”。人工神经元网络,是基于对人大脑中神经元结构特性的模仿,而建立起来的一种简单的非线性动力学互联网络。人工神经元网络的优点很多,例如:具有大规模并行处理能力、适应性学习和处理复杂多模式。BP网络、Hopfield网络和BAM网络是齿轮传动系统故障诊断领域常用的3种神经网络。其中,BP网络可以看作是一个静态的系统,具有模式分类能力。
2.2.3 独立变量分解法
之所以使用独立变量分别是存在两方面原因的。一方面,由于齿轮箱体表面测量到的振动信号是齿轮传动系统的振源信号与系统结构的脉冲响应函数的卷积,直接对齿轮传动的振源信号进行故障诊断非常困难;另一方面,独立分量分析法(ICA)是具有盲源分离和盲反卷积功能的新型多变量数据统计方法。因此,独立分量分析法在齿轮传动系统故障的诊断中具有非常重要的作用。根据ICA盲源分离原理进行齿轮传动故障诊断的方法主要可分为3类:①振动信号的盲源分离;②振动信号的单向分解;③利用部分已知信息进行盲源分离。ICA反卷积运算方法也是多种多样,例如:窄带信号卷积模型法。
3. 齿轮故障的解决方法
3.1 正确安装和使用齿轮传动系统,是预防系统故障发生的重要环节
只有严格遵守相应的安装程序和操作技能要求,对齿轮传动系统进行正确的安装和使用,才能确保机械设备的正常运行。首先,要注意齿轮安装的精度要求。齿轮安置精度的肯定,要在连系传动齿轮的承载本领和使用寿命的基础上举行肯定。其次,不管是新安置、改换齿轮,仍是检验安置齿轮,都应该严格依照技术标准请求执行。最后,为了防止过度损坏齿轮的轴承或出现断轮,安装时切忌用铁锥敲打。
3.2 正确使用和管理剂,是延长机械传动齿轮使用寿命,减少故障发生的关键环节
剂的正确使用和管理,对避免齿轮传动系统故障的发生,延长其使用寿命具有至关重要的作用。一方面,为了防止齿轮的加速老化磨损和使用寿命的不正常缩短,应该结合齿轮的运转情况、工作条件和环境等因素,正确使用剂。首先要科学记录传动齿轮的工作情况、每个部位使用的剂型号、使用时间等。然后根据出厂标准制定维修计划,并结合实际工作环境和季节的变化,及时、适当地更换和加装剂,保证机械传动齿轮的正常工作。另一方面,还应该严格以科学的技术标准为指导,对剂的选择、使用和更换过程进行严格把关。
3.3 完善生产技术和管理,对避免机械传动齿轮故障也有重要意义
虽然机械传动齿轮只是一个生产部件,但它与机械的轴和轴承都是相互联系、相互作用的,每个部件的精度对生产都有重要影响作用。因此,必须严格按照出厂标准,对每一个部件进行安装调试,以保证传动齿轮和相关设备的精度,从而确保生产。日常生产管理过程中,也要在严格按照技术要求进行的基础上,对其进行综合的科学化管理,避免超负荷、故障生产。
4. 结论
齿轮传动系统在国防、农业、工业和生产等领域的机械设备中都有广泛的运用。因此,及时、早期的诊断和解决齿轮传动系统中的故障,确保其安全性和可靠性具有非常重要的意义。首先,本文以小波分析方法、神经网络分析方法和独立变量分解法为例,详细分析了齿轮故障的的诊断方法,并对故障的解决提出了3点建议:①正确安装和使用齿轮传动系统;②正确使用和管理剂;③完善生产技术和管理。
参考文献:
[1]李涛.探析机械传动系统关键零部件故障预测技术[J].中小企业管理与科技,2014(8).
[2]闫慧.关于采煤机械传动齿轮失效问题的探讨[J].科技创新与应用,2011(19).
关键词:视觉注视;移动端;数据集;行为推测
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)01-0254-03
Abstract: With the development of computer vision application technology, the behavior prediction of eye gaze has been widely concerned by many scholars at home and abroad, and also has important research significance in the field of biological information recognition. In the era of smart phone tablet popularity to improve human-computer interaction and accurate prediction of the mobile side of the user gaze behavior becomes particularly important. Based on the existing research on visual technology, this paper proposes a scheme to solve the gaze behavior of mobile users by using large data combined with machine learning and convolution neural network knowledge, and analyzes the importance of large-scale data sets in visual application.
Key words: visual gaze; mobile end; data set; behavior conjecture
1 概述
伴S着计算机软硬件性能和互联网技术的迅猛发展,大规模的并行计算技术突飞猛进,不断地发展使各种现有技术变得越来越成熟,同时机器学习和计算机视觉领域也都得到了飞速发展。视觉技术的发展变得越来越重要,并且可以应用到实际生活中的很多方面。人类大量的视觉信息现在可以利用计算机来辅助处理,并完成相关的一些工作。相对于生物信息识别技术这一计算机视觉领域的热点技术来说,也已广泛应用于日常生活中[1]。比如指纹识别器,人脸考勤器等平时在许多地方可以经常见到,还有居民家用的摄像头智能报警系统以及近期炒得火热的运用支付宝进行刷脸而完成的支付技术等,这些都是运用了生物信息识别技术。现实中的种种迹象已经表明运用生物信息识别的计算机技术已渐渐的渗透到人们的日常生活中并成为不可或缺的组成部分。时下发展较快也比较常见的生物特征有视网膜、指纹、人脸和人眼等。这些生物信息比如人脸具有个体差异性和自身稳定性特点,从用户的角度来看该特征具有便携和低侵入等一些优点。而人眼作为人脸中最显著的特征,又是人们获取外界信息最直接最方便的途径。都说眼是心灵的窗户,因为眼睛中蕴含着表情、意图等多种信息。因此,眼睛注视的行为预测受到了国内外众多学者的广泛关注,同时在生物信息识别领域中也具有重要的研究意义[2]。
2 注视预测问题
2.1 问题的背景
在心理、认知和用户交互研究中的注视跟踪最近已朝向移动解决方案发展,因为它们使得可以直接评估用户在自然环境中的视觉注意。 除了注意,注视还可以提供关于用户的动作和意图的信息:用户正在做什么以及接下来将做什么。然而,在自然状态下非结构化的任务中注视行为是相当复杂的,并且不能使用在受控的实验室环境中创建的模型来得到令人满意的解释。自然条件下和实验室环境有着很大的不同。为了演化在自然环境中对注视行为的推断,需要一种更加整体的方法,将从认知科学到机器学习的许多学科结合在一起[3]。
从人机交互技术到医学诊断到心理学研究再到计算机视觉,眼睛注视跟踪在许多领域都有应用。注视是外部可观察的人类视觉注意的指标,许多人试图记录它。对于眼睛视线方面的研究可以追溯到十八世纪后期。而现如今已经存在各种解决方案(其中许多是商业化的),但是所有的解决方案都具有以下一个或多个方面的问题:高成本(例如,Tobii X2-60),定制或侵入性硬件(例如,Eye Tribe,Tobii EyeX)。然而在现实中的自然条件下,这些因素对实际的应用会造成一些障碍影响,使得眼睛注视跟踪不能成为任何具有合理的相机(例如,智能手机或网络摄像头)的人应该可以使用的普及技术。如何才能使得这种技术普及并且得到应用,提出了一种解决方案。
2.2问题的提出
研究中首先要解决的就是用户的约束问题,也就是自然条件下使用过程中所受到的各种限制问题。到目前为止,基于注视数据推断用户动作的研究受到许多的限制,特别是在自然环境中。限制因素可能包括可用的商业解决方案的昂贵性,其专有性和封闭性以及缺乏实时交互能力等方面。目前的注视跟踪系统,只是尽量在移动设置中设置各种条件进行补救。商业化定制化的解决方案都有其独自的闭合性质,因此阻碍了注视跟踪算法的发展,并且使得不同方法之间的客观比较变得不可能[4]。此外,注视是一种复杂的现象,涉及认知过程的相互作用。这些过程在设置计算上的建模是非常困难的,尤其是涉及一些未知因素,使得构建实验设置成为一个很大的挑战。此外,来自跟踪实验的数据因为其商业化的原因很少共享,即使共享数据很大部分也是有其独立的实验条件。这些方面的问题都阻碍了跨学科方法在分析和利用注视数据和实验的相关研究与发展。
2.3 解决问题的研究方向
对基于注视的推断的个体贡献通常保持孤立,不能形成更大的整体以促进对注视动作行为的研究。随着这方面的技术发展和应用,最近出现了一些开源的解决方案。虽然在不同的应用和用户界面中使用注视已经相当有限,但是移动注视跟踪的新颖应用开始出现并得到了很快的发展。然而使用移动注视跟踪来推断用户动作的问题是高度多学科的,需要深入理解各个研究领域,包括人眼的功能,数学建模,计算机视觉,机器学习,信息技术,认知过程,用户交互以及心理学。任何一个研究员或甚至任何研究小组都不可能拥有所有研究领域的专家,因此需要相互的协作共同推进技术的发展[5]。
目前的研究主要是从以下几个方面进行:
1)研究移动注视跟踪的认知方面,例如增强对任务中的注视行为的理解或识别不同任务的特征和阶段;
2)开发用于从注视数据推断用户动作的计算方法,诸如应用机器学习用于行为推断,优选地实时地;
3)增强用于改善移动注视跟踪方法和性能的技术软件/硬件解决方案,并使得设备更容易访问;
4)发现注视数据在自然环境和虚拟和增强现实应用中的潜在用途,以及定义任务,其中注视可以是用户动作的有用的预测器。
3 解决方案
首先选择移动端进行研究,因为目前比较普遍的移动设备比如智能手机、平板电脑都有自己可靠的工作系统,且不需要外部附件。移动设备相对于其他平台具有以下优势:
1)使用的广泛性。据估计,到2019年,世界上超过三分之一的人口拥有智能手机,远远超过台式机/笔记本电脑用户;
2)软硬件技术升级的采用率较高。大部分的移动设备具有允许使用拥有计算复杂数据方法的实时的最新软硬件;
3)移动设备上相机的大量使用已经导致相机技术的快速开发和部署;
4)相机相对于屏幕的固定位置减少了未知参数的数量,潜在地允许开发高精度的校准跟踪应用。
3.1 注视类型分析
注视估计方法可以分为基于模型或基于外观[6]。基于模型的方法使用眼睛的几何模型,并且可以被细分为基于角膜反射和基于形状的方法。另一方面,基于形状的方法从观察到的眼睛形状观察注视方向。这些方法倾向于具有低的图像质量和可变的照明条件。基于外观的方法直接使用眼睛作为输入,并可能在低分辨率图像上工作。相比基于模型的方法,基于外观的方法被认为需要更大量的用户特定的训练数据。通过使用深度学习和大规模数据不必依赖于视觉,以实现准确的无校准注视估计。这种方案提出建立一个基于外观的数据模型,而不使用任何手工设计的功能,例如头部姿势或眼球中心位置。
3.2 技术方案
深度学习的最近成功在计算机视觉的各种领域中是显而易见的,但是它对改善眼睛跟踪性能的影响还是相当有限。因为深度学习是需要大量的数据作为支持,而视线追踪这方面的数据集还比较少,普通的研究所得到的稻菁比较有限,最大的数据集通常只是具有50个受试者左右,由于缺乏大规模数据的可用性,因此发展比较缓慢。因而提出了使用深度学习进行研究的一套方案,就是构造大规模的数据集。利用网络资源构造一个大规模的基于移动的眼动跟踪数据集,它包含来自各种背景的大量的受试者,在可变照明条件和不受限制的头部运动下记录[7]。运用现有的智能算法得到一个可以进行卷积神经网络学习端到端的注视预测的后台决策网络。不依赖任何预先存在的系统,不需要头部姿态估计或其他手动设计的特征用于预测。使用只有双眼和脸部的特征训练网络,在这个领域的性能优于现有的眼睛跟踪方法。虽然现在的决策网络在精度方面实现了很先进的性能,但是数据输入的大小和参数的数量使得难以在移动设备上实时使用。 为了解决这个问题,需要培养学习得到一个更小更快的网络,在移动设备上实现实时性能,使得精度损失进一步降低。
3.3 大规模数据集
为了达到这一方案的预测效果,首先要进行的是数据集的建立。网络上相关的研究中有许多公开的注视数据集[8]。总结对比这些相关的数据集,分析出有些早期的数据集不包含显著性的头部姿势变化或具有粗略的注视点采样密度。需要对这些数据进行筛选,使得到的数据具有随机分布特点。虽然一些现代数据集遵循类似的方法,但它们的规模(尤其是参与者的数量)相当有限。大多数现有的眼动追踪数据集已经由邀请实验室参与者的研究人员收集,这一过程导致数据缺乏变化,并且成本高且效率不高。因此需要大量的进行数据收集和筛选分析。大规模数据可以通过卷积神经网络有效地识别人脸(他们的眼睛)上的细粒度差异,从而做出准确的预测。
收集眼动跟踪数据应该注意的方面:
1)可扩展性。数据应该是自然条件下的使得用户具有灵活性;
2)可靠性。运用现有的智能移动设备真实的应用图像而非设计处理过的图像;
3)变异性。尽量使数据具有较大的变异性,使得模型更加稳健,适应各种环境下的操作。
4 结束语
文章介绍了一种针对移动设备的用户注视行为推测解决方案。首先建立一个大规模眼动跟踪数据集,收集大量的注视数据。大型数据集的重要性,以及具有大量各种数据以能够训练用于眼睛跟踪的鲁棒模型。然后,训练得到一个深层卷积神经网络,用于预测注视。通过仔细的评估,利用深度学习可以鲁棒地预测注视,达到一个较好的水平。此外,虽然眼睛跟踪已经存在了几个世纪,相信这种新方案的策略可以作为下一代眼动跟踪解决方案的关键基准。希望能通过这方面的研究,使人机交互得到更好的发展。
参考文献:
[1] 崔耀 视控人机交互系统技术研究与实现[D].西安,西安电子科技大学,2013.
[2] 迟健男, 王志良, 张闯.视线追踪[M].北京: 机械工业出版社, 2011.
[3] Alireza Fathi, Yin Li, and James M Rehg 2012 Learning to recognize daily actions using gaze In Computer VisionCECCV 2012. Springer, 314-327.
[4] Makeroni Labs 2016 Eye of Horus. https://hackaday.io/project/
6638-eye-of-horus-open-source-eye-tracking-assistance (2016) Accessed: 2016-02-26.
[5] Francisco J Parada, Dean Wyatte, Chen Yu, Brandi Emerick, and Thomas Busey,2015.Expert Eyes: Open-source, high-definition eyetracking Behavior research methods ,2015.
[6] 杨彩霞.基于近红外光源的非接触式视线跟踪技术研究 [D].山东:山东大学,2012.
关键词:堆叠去噪自编码器;垃圾邮件;分类;支持向量机;贝叶斯方法
中图分类号: TP393.098
文献标志码:A
0引言
电子邮件因为易于使用、速度快、沟通方便等原因,已经成为人们重要的联系方式,但与此同时,垃圾邮件的数量却急剧地增加:卡巴斯基实验室的研究发现,2014年第1季度的垃圾邮件数目占总邮件的66.34%;McAfee实验室2015年2月的威胁报告表明,2014年,垃圾邮件数量大概为31.2万亿,占该年邮件总量的69.02%。其中大部分垃圾邮件带有商业性质,但有些邮件可能会包含病毒和其他具有危害性质的内容,给用户带来精力的损耗和财力上的损失,文献[1]表明,由于垃圾邮件的原因,美国接近360万用户的损失高达32亿美元。大量的垃圾邮件同时造成带宽浪费和邮件系统超载。
垃圾邮件过滤方法用来解决上述问题。垃圾邮件过滤的目的是为了隔离垃圾邮件和合法邮件。一般的过滤方式包括:邮件客户端扩展和邮件服务终端过滤过程,简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)和基于机器学习算法的方法是最常用的垃圾邮件过滤方法。一般来说,基于SMTP的过滤方法通常是指SMTP流量的检测、电子邮件交换路由验证和经过身份验证的SMTP会话。基于启发式规则的方法、黑名单/白名单的方法、协同垃圾邮件过滤也可以用来过滤垃圾邮件。机器学习方法包括邮件的分析和分类算法的部署。
文献[2]表明在诸多过滤方法中,机器学习算法获得更多的应用和更好的性能。贝叶斯过滤器因为计算效率高、过滤性能良好得到了广泛的应用,文献[3]比较了7个版本的贝叶斯过滤器,得出布尔朴素贝叶斯(Boolean Naive Bayes)、多项式布尔朴素贝叶斯(Multinomial Boolean Naive Bayes)、基本朴素贝叶斯(Basic Naive Bayes)具有较好的性能;文献[4]提出了一些方法用来改进朴素贝叶斯过滤器,提高了过滤器的准确率; 文献[5]将不同种类核函数和数据表示的支持向量机应用到垃圾邮件过滤中;文献[6]提出了混合Taguchi方法、Staelin方法来优化支持向量机参数的选择过程,并且提高了准确率。其他的诸如随机随林、人工神经网络、提升方法(boosting)和装袋(bagging)等方法也被应用到了垃圾邮件过滤。近年来随着社交网络、云计算、网格计算、语义网络等技术的发展,出现了许多基于上述技术的垃圾邮件分类器;随着垃圾邮件中图像的增加,出现了基于图像的垃圾邮件分类器,文献[7]对新技术和图像分类应用进行了介绍。文献[8]比较了不同的特征选择和降维技术对垃圾邮件过滤的影响。文献[9]研究表明:相对支持向量机(Support Vector Machine, SVM)、提升方法(boosting)、最大熵方法等“浅层学习”方法而言,深度学习所学得的模型中,非线性操作的层级数更多。 浅层学习依靠人工经验抽取样本特征,网络模型学习后获得的是没有层次结构的单层特征;而深度学习通过对原始信号进行逐层特征变换,将样本在原空间的特征表示变换到新的特征空间,自动地学习得到层次化的特征表示。
去噪自编码器(Denoising Autoencoder, DA)是深度学习中的变形结构,和受限玻尔兹曼机、自编码器[9](Autoencoder)一样作为深度学习架构中的训练模块,具有良好的学习数据集特征的能力。通过多个DA的堆叠可形成堆叠去噪自编码器(Stacked Denoising Autoencoder,SDA) [10]。SDA训练过程中的无监督学习过程和对数据的破坏过程,能进一步学习到数据集中的特征和数据结构,同时学习得到的隐含表示更适用于有监督分类。文献[11]的研究表明,在大部分情况下,SDA要优于深度置信网络[9](Deep Belief Network, DBN),并且因为SDA不需要吉布斯采样,所以训练更加容易。
本文将一个5层神经网络结构的堆叠去噪自编码器应用到垃圾邮件过滤,在6个公开数据集上进行测试,使用准确率、召回率和马修斯相关系数作为测量标准,与在垃圾邮件过滤中应用最为广泛的支持向量机算法、3种贝叶斯算法和DBN进行比较。结果表明,相对于其他几种算法:堆叠去噪自编码具有最好的平均性能和较好的预测能力。
1堆叠去噪自编码器
1.1去噪自编码器
自编码器 (Autoencoder) [9]的学习只是简单地保留原始输入数据的信息,并不能确保获得一种有用的特征表示。因为自编码器可能仅仅简单地拷贝原始输入,或者简单地选取能够稍微改变重构误差,却不包含特别有用信息的特征。为了避免上述情况,并且能够学习更好的特征表示,需要给数据表示一定的约束。去噪自编码器可以通过重构含有噪声的输入数据来解决该问题。
去噪自编码器所要实现的功能就是学习叠加噪声的原始数据,而它学习到的特征与从未叠加噪声的数据学到的特征几乎一样, 但去噪自编码器从叠加噪声的输入中学习得到的特征更具鲁棒性,并且可以避免自编码器遇到的上述问题,简单地学习相同的特征值。
去噪自编码器通过一个随机的映射变换x~qD(x′|x),对原始输入数据x进行“破坏”,从而得到一个有部分损坏的数据x′, 其中D表示数据集。
去噪自编码器由编码器(encoder)、解码器(decoder)和隐含层组成。编码器是输入x∈[0,1]d 的”破坏”版本x′到隐含表示 y∈[0,1]d′的映射,表示为:
y=fθ(x)=s(Wx′+b)(1
这个映射的参数集合是θ={W,b},s是一个非线性的函数,例如sigmoid,W是一个的d×d′权值矩阵, b是一个偏置向量。
解码器函数gθ′(y)将隐含表示映射回重构表示z∈[0,1]d,表示为:
z=gθ′(y)=s(W′y+b′)(2
这个映射的参数集合是θ′={W′,b′},逆映射的权值矩阵W′可被约束为权值矩阵W的转置:即W′=WT,被称为去噪自编码器捆绑权重。b′是一个偏置向量。
这样每个训练样例x(i)被映射成一个y(i)和一个重构表示z(i),然后通过不断地调准优化这个模型的所有参数,从而获得最小平均重构误差:
L(x,z)=x-z2(3)
使z尽可能地接近初始输入x,并且z是x′的函数。 定义联合分布函数为:
q0(X,X′,Y)=q0(X)qD(X′X)δfθ(X′)(Y)(4)
其中:X,X′,Y是随机变量,Y是X′的映射函数, q0(X,X′,Y)以θ为参数。这时就可以通过梯度下降算法最小化目标函数:
arg minθ,θ′ Eq0(X,X′)[L(X,gθ′(fθ(X′)))](5
去噪自编码器的结构图如图1所示。
图片
图1去噪自编码器结构
1.2堆叠去噪自编码器
深度神经网络可以分为3类:1)生成性深度结构,描述数据和相应类别的联合概率分布,如DBN; 2)区分性深度结构,提供对模式分类的区分性能力,通常描述数据的后验分布,如卷积网络和堆叠去噪自编码器; 3)混合型结构,目标是区分性的,但通常利用生成型结构的输出会更易优化。
通常情况下,由于网络权值的随机初始化,基于梯度的优化容易陷入局部最小值。文献[12]提出了一种新的贪婪逐层非监督算法来初始化深度学习网络,文献[10]使用此算法来初始化基于降噪自编码器的堆叠去噪自编码器。训练整个网络的参数后,在使用基于梯度的算法如梯度下降法来微调网络参数。SDA初始化方法的有效性[13]在多个数据集中得到验证。正如受限玻尔兹曼机的堆叠形成深度置信网络,去噪自编码器的堆叠可形成堆叠去噪自编码器。用叠加噪声输入训练每层网络的去噪能力,这样训练出来的每层编码器可作为一个具有容错性能的特征提取器,同时学习得到的特征表示具有更好的健壮性。
SDA 的网络结构如图2 所示。通过图1中的步骤首先破坏原始数据,然后最小化重构误差,训练第1层去噪自编码器,从而学习得到了编码器函数fθ。接下来使用此函数学习原始的数据(如图2(a)所示),得到的结果作为第2层去噪自编码器的输入,用来训练第2层的去噪自编码器(如图2(b)所示),从而学习到第2层的编码器函数f(2)θ。然后重复这一过程(如图2(c)所示),直至所有的去噪编码器层都已经训练完成为止。
图片
图2堆叠去噪自编码器的结构
为了让堆叠去噪编码器具有分类识别的功能,需要在堆叠自编码器神经网络的最后一个隐藏层之后加个sigmoid分类器,将整个神经网络训练成能完成分层特征提取和数据分类任务的多重感知器。然后利用有监督学习规则,在监督学习损失函数上使用梯度下降算法,实施微调,最小化预测目标的误差,不断调整整个网络的参数。微调结构如图3所示。
图片
图3分类深度网络的微调结构
2堆叠去噪自编码器实现
2.1堆叠去噪自编码器的参数更新
去噪自编码器的最终目的是找出模型最合适的参数,可以按照如下步骤更新参数。
初始化模型参数:输入数据、可视节点个数、隐层节点个数、输入数据破坏比例和更新的学习率(learning rate),权值矩阵和偏置向量;根据数据破坏比例,随机选取原始数据,将其值设置为0,达到破坏数据的目的;使用sigmoid函数计算输入数据的隐藏表示和重构表示;计算输入数据的重构误差;对重构误差使用梯度下降算法,更新参数。具体过程如算法1。
算法1Denoising AutoEncoder。
程序前
输入: X, n_vis, n_hid, c_r, l_r;
输出: W, b, b′。
X′=get_corrupted_input(X, c_r)
1
for iter from 1 to iteration
2)
Y=get_hidden_units(X′, W, b)
3)
Z=get_reconstruction_units(Y, W, b′)
4)
cost=get_cost(X, Z)
5)
for param in parameters(W, b, b′)
6)
gparam=get_gradient(cost, param)
7)
param=param-l_r * gparam
8)
end for
9)
end for
程序后
2.2堆叠去噪自编码器的预训练
在堆叠去噪自编码器的预训练步骤中,首先应该确定隐藏层的数目,一般情况下,使用3层的去噪自编码器构成深度学习网络来训练堆叠去噪自编码器;每一层都训练成去噪自编码器,并且通过最小化重构误差,更新参数10次以上。第i-1层的输出即为第i层的输入,这样通过自底向上的方式训练堆叠去噪自编码器。每一层的数据破坏比例和隐藏节点个数可以互不相同;最后获取整个网络的参数。训练步骤如算法2。
算法2Pretrain Step。
程序前
输入:X,n_layers, n_vis, n_hid[n_layers],c_r[n_layers], l_r[n_layers];
输出:dA_layers[n_layers], Y_out=X。
1
for i from 1 to n_layers
2)
X′=get_corrupted_input(Y_out,c_r[i])
3)
for iter from 1 to iteration
4)
Y=get_hidden_units(X′,W[i],b[i])
5)
Z=get_reconstruction_units(Y,W[i], b′[i])
6)
cost=get_cost(Y_out, Z)
7)
for param in parameters(W[i], b[i], b′[i])
8)
gparam=get_gradient(cost,param)
9)
param=param-l_r[i] * gparam
10)
end for
11)
end for
12)
Y_out=Y
13)
end for
程序后
2.3堆叠去噪自编码器的微调
在堆叠去噪自编码器的微调过程中,使用有监督学习方法优化从预训练步骤中获得的模型参数。由于最后一个隐含层只能输出原始数据的重构,因而不具有分类识别功能。为了让堆叠去噪编码器具有分类识别的功能,需要在完成微调的神经网络的输出层之后加入sigmoid分类器,将整个神经网络训练成能完成分层特征提取和数据分类任务的多重感知器。多重感知器的sigmoid层的参数和预训练步骤中去噪自编码器的sigmoid函数具有相同的参数,因此可以通过最小化多重感知器的预测错误来不断微调模型的参数。微调步骤作用在整个堆叠去噪自编码器过程。微调的过程如算法3。
算法3Fine Tuning Step。
程序前
input: train_batches, test_batches, iteration, l_r
1
while iter < iteration do
2)
for batch in train_batches
3)
cost=get_finetuning_cost(X)
4)
for i from 1 to n_layers
5)
for param in parameters(W[i], b[i], b′[i])
6)
gparam=get_gradient(cost, param)
7)
param=param-l_r[i]*gparam
8)
end for
9)
end for
10)
valid_error=get_valid_error(batch)
11)
if valid_error
12)
update best_valid_error
13)
test_error=get_test_error(test_batches)
14)
if test_error
15)
update best_test_error
16)
end if
17)
end if
18)
end for
19)
end while
程序后
3实验与分析
3.1数据集
3.1.1数据集描述
实验中使用了6个著名的、数据量比较大的、公开的数据集Enron[14]。其中Enron1、Enron2和Enron3的合法邮件占多数,而Enron4、Enron5和Enron6的垃圾邮件占多数。Enron数据集中正常邮件是从Enron公司的前员工的邮箱中收集的,垃圾邮件则有不同的来源。6个数据集的具体组成如表1。
3.1.2数据集预处理
1)分别从垃圾邮件文件夹和合法邮件文件夹,按照30%的比例随机选取文件,然后合起来作为测试集,剩余的70%合起来作为训练集。
2)分别对训练集和测试集进行分词处理,字母小写化和去除停用词。
3)将训练集和测试集表示为词频逆文档(Term FrequencyInverse Document Frequency, TFIDF)的向量形式。
4)使用特征值提取技术对特征值进行提取,选取3000个特征值作为实验特征。
3.2实验性能测量标准
比较出名的性能指标有垃圾邮件准确率(Spamming precision, Spr),垃圾邮件召回率(Spamming recall, Sre),合法邮件准确率(Legitimate email precision, Lpr),合法邮件召回率(Legitimate email recall, Lre),准确率(Accuracy, Acc)。在分类时,垃圾邮件的类标设置为1(正例),合法邮件的类标设置为0(负例)。其中分类的混淆矩阵(confusion matrix)如表2所示,真正例(True Positive, TP),假负例(False Negtive, FN),假正例(False Positive, FP),真负例(True Negtive, TN)。
表格(有表名)
文献[15]的研究表明,在机器学习的分类问题中,马修斯相关系数(Matthews Correlation Coefficient,MCC)是最好的性能测试指标之一。相比其他的指标,MCC对于准确率提供了更为平衡的测量。MCC值的返回值介于-1和+1之间:+1,表明是完美的预测;0,表明是随机的预测;-1,则表明是一个相反的预测。MCC的计算式如下:
MCC=TP*TN-FP*FN(TP+FP)(TP+FN)(TN+FP)(TN+FN)(6
MCC同时提供了相对合理的评价:现实情况下,垃圾邮件的数目要比合法邮件的数目更高,因此MCC可以自动调整一个假正例(即合法邮件分类为垃圾邮件)错误相对于一个假负例错误的严重程度,随着垃圾邮件相对于合法邮件的比例的上升,一个假正例错误会比一个假负例错误更加严重,即MCC值会降低。
3.3实验结果与分析
3.3.1隐藏层节点数目选择对实验的影响
由文献[10-11]中一系列的参数实验可以总结出,在大部分数据集上,SDA一般使用三层隐藏层就可以达到较优的效果,因此本文中使用三层的隐藏层。
首先指出,图4和图5中的最低点Acc值是0.7101。这种情况是SDA把所有的邮件都分类为垃圾邮件。图4中,350,650,950是第一层隐藏层的节点数目,30表示第三层隐藏层的节点数目;图5中,350,650,950是第一层隐藏层的节点数目,500表示第二层隐藏层的节点数目。
图4中,固定第一、三隐藏层的节点数目,SDA在数据集Enron 5上的Acc值随着第二层隐藏层节点数目的改变而变化。从图4中可看出,固定第一、三隐藏层节点数目时,当第二层节点个数过小或者过大时,Acc值会达到最低点0.7101,而第二层节点个数处于两者之间时,Acc值正常波动。第二、三隐藏层节点固定时,可以看出,当第一层的节点数目越大时,第二层隐藏层节点的数目受到的限制更大。
对于图4中出现的随着第二层隐藏层节点数目的增加,Acc值会降至最低,可以通过改变第三层隐藏层节点数目来改变。图5中,固定第一、二隐藏层节点的数目,SDA在数据集Enron 5上的Acc值随着第三层节点数目的改变而变化。可以看出,为了取得较优的结果,第一层隐藏层的节点数越多,第三隐藏层需要的节点数也越多。
3.3.2在6个数据集上的实验结果
为了书写方便,下面描述中,Basic表示基本朴素贝叶斯方法、Bool表示布尔朴素贝叶斯方法、MN Bool表示多项式布尔朴素贝叶斯方法。
在6个Enron 数据集上的实验结果如表3~8所示,其中加下划线的数据表示该实验中最大的MCC值。
表格(有表名)
表3Enron1上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic91.3385.0993.4896.3692.860.831
Bool96.0051.6163.3297.4972.780.540
MN Bool82.6762.0079.3591.8280.310.578
SVM83.3387.4195.1193.7091.700.796
DBN91.5690.7596.1996.5494.850.875
SDA90.2292.9197.1896.0595.160.882
表格(有表名)
表4Enron2上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic80.0097.5799.3193.5394.380.850
Bool95.3381.2592.4598.3093.190.836
MN Bool74.0098.2399.5491.7793.020.814
SVM90.6790.6796.8096.8095.230.875
DBN95.9891.6897.0298.6096.750.916
SDA95.9895.5698.4798.6297.830.943
表格(有表名)
表5Enron3上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic57.33100.00100.0086.2788.410.703
Bool99.3399.3399.7599.7599.640.991
MN Bool62.00100.00100.0087.5889.670.737
SVM91.3396.4898.7696.8396.740.917
DBN96.4489.6795.8498.6396.000.903
SDA92.6799.2999.7597.3297.820.945
表格(有表名)
表6Enron4上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic94.67100.00100.0086.2196.000.903
Bool98.00100.00100.0094.3498.500.962
MN Bool96.89100.00100.0091.4697.670.941
SVM98.89100.00100.0096.7799.170.978
DBN96.9697.9894.0091.1696.220.901
SDA99.9397.2691.5699.7697.840.942
表格(有表名)
表7Enron5上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic89.6798.8097.3379.3591.890.825
Bool87.23100.00100.0076.1490.930.815
MN Bool94.29100.00100.0087.7295.950.909
SVM89.4099.7099.3379.2692.280.837
DBN96.3799.4498.6791.7497.040.931
SDA98.7399.4598.6796.9498.710.969
表格(有表名)
表8Enron6上各个分类器的实验结果
分类器Sre/%Spr/%Lre/%Lpr/%Acc/%MCC
Basic86.0098.9897.3369.8688.330.757
Bool66.8999.6799.3350.0075.000.574
MN Bool92.8997.2192.0081.1892.670.816
SVM89.7895.2886.6773.8690.050.727
DBN96.3798.5695.7589.7996.210.902
SDA99.0498.4595.3397.0698.110.949
通过观察6个数据集6种分类器的实验数据可以分析:在实验的大部分数据集上,SDA垃圾邮件过滤器的性能超过了其他几种分类器。同时在有些情况下SDA的过滤效果远远地优于SVM和NB分类器:比如在Enron6数据集上的结果表明,SDA的垃圾邮件召回率达到了99.04%,而SVM却只达到了89.78%。这意味着在Enron6数据集上,SDA要比SVM多识别9.26%的垃圾邮件,同时因为具有比SVM更好的合法邮件召回率,所以相对于SVM,SDA垃圾邮件过滤的总体性能提升要大于9%。在实际的应用中,这些差异将会非常重要。这种对比现象在数据集Enron1、Enron2、Enron3和Enron5也可以得到。在数据集Enron4上,SDA过滤效果稍逊于SVM,但是相差不大。
对于实验中所有朴素贝叶斯过滤器,实验数据表明它们之间达到了相似的结果,并且不具有太大的差异性。相对堆叠去噪自编码器过滤器和支持向量机过滤器在所有的数据集上的准确率(Acc)达到90%以上,而基于朴素贝叶斯方法的过滤效果要差些。
实验中的DBN的分类效果,总体上要优于其他4几种分类器,但是SDA的分类效果要稍微优于DBN。
表中的实验数据表明堆叠去噪自编码器在垃圾邮件过滤中具有更好的效果:在实验的所有数据集上,堆叠去噪自编码器的准确率(Acc)都高于95%;在实验的所有数据集上,堆叠去噪自编码器的MCC值都高于0.88,这表明堆叠去噪自编码器应用于垃圾邮件过滤中取得相对完美的预测。上述结果表明将堆叠去噪自编码器应用到垃圾邮件过滤中是可行的。
4结语
本文提出了一种新的基于堆叠去噪自编码器的垃圾邮件分类器。在6个著名的、数据量较大的、公开的数据集上进行测试,将实验结果同基于支持向量机和贝叶斯方法的垃圾邮件过滤器的结果进行比较。对比分析表明,本文所提出的垃圾邮件过滤器表现出更好的性能。特别是基于堆叠去噪自编码器的垃圾邮件分类器在6个数据集上具有最好的平均性能并且准确率(Acc)都高于95%。这些表明将堆叠去噪自编码器应用到垃圾邮件过滤中是可行的。
未来的工作将会集中在以下3个方面:1)如何更好地选择深度置信网络隐藏层数以及每层的单元个数,如何选择学习率等参数来提高算法的性能。2)在诸如TRE05、TRE06、TRE07等更大的数据集上进行更多的实验来验证实验结果,同时也希望同一些诸如Bogo filter、Spam Assassin等开源和商业垃圾邮件过滤器进行比较。3)应把垃圾邮件过滤看作是共同进化问题,因为垃圾邮件过滤器努力提高预测能力的同时,垃圾邮件递送者也不断地改变垃圾邮件内容的表现形式以达到欺骗过滤器的目的,因此一个有效的垃圾邮件过滤器应该能够有效地检测垃圾邮件特征的变化,从而不断地调整自身的规则。
参考文献:
[1]GARTNER. Gartner survey shows phishing attacks escalated in 2007; more than $3 billion lost to these attacks[EB/OL].[20150220].http:///it/page.jsp?id=565125.
关键词:句子相似度计算;Word2Vector;编辑距离;Edit Distance
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2017)05-0146-02
1 背景
句子的相似度计算在自然语言处理中有着十分广泛的运用。例如,机器翻译中相似性文档的判断和提取,在问答系统中相似性问题的匹配或者问题与答案之间的匹配判断等。对于这个相似度的刻画,主要分为几个不同的等级,具体为语法层面的相似度,语义层面的相似度,与语用层面的相似度。其计算难度也是层层递进。在具体的应用中,只要能达到语义层面的判断基本上就可以达到基本的需求了。目前对句子的语义层面的相似度计算方法主要有基于相同词汇的方法,使用语义词典的方法、使用编辑距离的方法,以及基于统计的方法等。其中,基于相同词汇的方法比较简单,但是其缺点也十分的明显,就是对于句子中同义词的判断存在不足。相对于基于相同词汇的方法,使用语义词典可以很好的处理句子中同义词的情形,但是语义词典也存在着需要不断地更新和维护词典库的缺点,而且如果只是单一的使用语义词典会缺乏对句子本身结构的分析,对最后的计算结果也有较大的影响。编辑距离一般使用在对句子的快速模糊匹配上,由于其规定的编辑操作有限,而且对于同义词的替换也缺乏判断,因此最后的准确率也不是很理想。本文基于编辑距离的方法,利用深度学习模型Word2Vector来增强其编辑操作的灵活程度,从而克服了单纯使用编辑距离对句子的语义理解不足的缺点。本文的第一部分主要介绍了相关的算法和基础知识。第二部分主要描述了基于Word2Vector与编辑距离的句子相似度计算方法,第三部分给出了测试结果以及对该方法的优缺点讨论,最后第四部分是结语。
编辑距离方法是指两个句子间,由一个句子转换到另一个句子所需的最少的编辑操作次数。这里的编辑操作共有“插入”、“删除”和“替换”三种。例如:
我是中国人 -> 你是中国人 (把“我”替换为“你”)
我是中国人 -> 我爱中国人 (把“是”替换为“爱”)
我是中国人 -> 是中国人(把”我”删除)
利用这种方法对两个句子进行相似度比较就像引言中分析的,其优点是简单,速度快。但是缺点也十分明显,由于编辑操作缺乏一定的灵活性,使得其无法进一步的判断语义层面的含义,比如同义词,同类、异类词等,因此,该方法适合于句子间的模糊匹配。
2.2 Word2Vector
Word2Vector是一种将词汇表示转化为空间向量的技术,主要利用了深度学习的思想对语料进行训练,通过将句子进行分词,然后将每个词汇映射成N维的向量,这样可以将两个词汇的相似度比较转化为对两个向量的相似度比较,可以利用cosine 相似度、欧氏距离等数学工具对词汇进行语义分析,其采用了一个具有三层的神经网络,并且根据词频用Huffman编码技术将相似词频词汇的隐藏层激活的内容出于大致相同的位置,如果哪个词汇出现的频率很高,那么它激活的隐藏层的数目就很少,通过这样处理可以使得计算的复杂度大幅度的降低。最后,通过Kmeans聚类方法,将相似的词向量聚在一起,最后形成了Word2Vector的词聚类模型。
Word2Vector的输出结果可以利用在NLP的很多地方,比如聚类,查找一个词的同义词,或者进行词性的分析等。
3 基于Word2Vector与编辑距离的句子相似度计算方法
3.1 问题描述
3.3 按照Word2Vector的词向量距离来定义编辑操作的系数
由Word2Vector训练好的模型会将各个词汇生成一个与其相对应的词向量,计算两个词汇对应的词向量便可以知道这两个词汇的相似度。如果值为1,说明这两个词汇完全一致,如果为0,则表示完全没有关系。
这里考虑一种情形,当利用替换操作进行两个词汇的替换时,如果两个词汇意思是相近的,那么它的替换代价会相应的低一点,反之,则会相应的高。举个例子:
我爱故宫
我爱天安门
我爱苹果
这三个句子我们可以知道1,2两句更加的接近,因为它代表的都是景点。因此待匹配的句子1应该会匹配上句子2。为了将词语的相似度考虑进去,这里引入Word2Vector的词向量来改进替换操作的系数。
假设两个词汇的向量距离为k,k∈[0,1]。考虑到k的值的大小与编辑距离的大小是相反的,这里将更新后的替换操作的系数设定为1/(1+k)。这样更新后的替换操作会根据不同词汇之间的距离发生变化,变化范围在[0.5,1]之间。而且这个值的范围不会打破编辑操作里面的平衡,即替换=插入+删除。更新后的编辑距离公式L=a+1/(1+k)*b + c。
4 实验及结果分析
为了验证改进的编辑距离算法的有效性,本文自行构造了实验所需的句子集合,本文所用的测试句子一共有400句。其中380句为来自各个不同领域类型的句子。比如,体育,娱乐,军事,文化,科技,教育等。另外20句为没有意义的干扰句。这里从380个句子中挑选100句作为参考句子,通过人工评价,比较测试结果。这里评价按照结果的质量分为3类:1、准确,2、相关,3、不相关。其中查准率P的定义如下所示:
通过实验可以发现,经过改进的编辑距离句子相似度匹配算法在准确度上有了一定的提高和改进,其中原因便是调整后的编辑距离算法将同义词近义词等通过词向量给计算出来。但是在实验中也发现了一个现象,就是相对来说判断准确的句子都是一些短小句,即长度不是很长的句子,而判断不相关的句子明显长度要更长一些。事实也是如此,当句子的长度较长时,通过分词将一个句子分为一个个短的词汇来利用词向量来理解会破坏句子的整体含义。
5 结束语
本文通过利用Word2Vector模型将词向量计算引入到编辑距离算法的编辑操作中,从而使得改进后的编辑算法对句子具有一定的语义理解能力。通过实验也比较好的验证了此方法的有效性,尤其是对近义词与同义词的理解上有了很大的提升,而算法本身的时间复杂度相较于编辑距离算法则没有改变多少。
另外,通过实验也发现,此方法对短句子的效果非常的明显,而对于一些长句则还是具有较大的误差。从对句子本身的分析角度上看,还需要通过对句子进行建模才可以达到比较好的理解匹配。
参考文献:
[1] 李彬, 刘挺, 秦兵, 等. 基于语义依存的汉语句子相似度计算[J]. 计算机应用研究, 2003, 20(12): 15-17.
[2] 孔胜, 王宇. 基于句子相似度的文本主题句提取算法研究[J]. 情报学报, 2011, 30(6): 605-609.
[3] 贾明静, 董日壮, 段良涛. 问句相似度计算综述[J]. 电脑知识与技术: 学术交流, 2014 (11): 7434-7437.
[4] 贾熹滨, 李宁, 靳亚. 用于文本情感极性分析的动态卷积神经网络超限学习算法[J]. 北京工业大学学报, 2017, 43(1): 28-35.
[5] Xu G, Cao Y, Zhang Y, et al. TRM: Computing Reputation Score by Mining Reviews[J]. 2015.
[6] 万翔, 刘挺, 秦兵, 等. 基于改进编辑距离的中文相似句子检索[J]. 高技术通讯, 2004, 14(7): 15-19.
[7] 汪卫明, 梁东莺. 基于语义依存关系匹配的汉语句子相似度计算[J]. 深圳信息职业技术学院学报, 2014 (1): 56-61.
[8] 裴婧, 包宏. 汉语句子相似度计算在 FAQ 中的应用[J]. 计算机工程, 2009, 35(17): 46-48.