基于深度学习的自然语言处理

    竺宝宝+张娜

    

    摘 要:深度学习是机器学习中接近AI的领域之一,通过模拟人脑学习神经进行分析。深度学习源于人工神经网络的研究,其对比简单学习来讲,多数分类、回归等学习算法归于简单机器学习,复杂函数运算的表示能力和局限性与有限样本和计算单元对有关,泛化能力也受到复杂分类的一定限制。

    关键词:深度学习;自然语言;非线性网络结构

    1 深度学习

    1.1 深度学习的基本概念

    深度学习是学习深层非线性网络的一种结构,通过展现复杂函数逼近,用输入数据分布式来表示,最终将数据样本集中学习数据集本质特点的能力展现出来。通过含多隐层的多层感知器来进行深度学习。深度学习可以更多地模拟神经层神经活动,使用组合低层特征来合成更加抽象的高层属性特征类别,来更好地展现数据分布式特性。深度学习的理论由Hinton等于2006年提出,通过非监督贪心逐层训练深信度网(Deep Belief Network, DBN)的算法,为解决深层结构相关的优化难题带来更好的指导方向。Lecun等提出的是最早的真正多层结构学习算法之一—卷积神经网络,通过空间关系的参数相对数量减少以减少训练误差。

    1.2 深度学习结构模型

    深度学习按照模型和技术的应用把模型归为3类。

    1.2.1 生成性深度模式

    该模式通过讲述观测数据和相应类别的联合概率分布,来展现数据的高阶相关特点,同时,区别于传统型神经分区网络,通过联合概率分布获取观测数据标签的,来更好地进行先验概率和后验概率的预测,而区分型模型却不能对其进行推测。DBN恰恰解决了传统多层网络神经算法训练BP的难点:大量含标签训练样本集,收敛速度比较慢,由不适宜的训练数据选择陷入局部最佳。

    DBN是由一组系列的受限波尔兹曼机(Restricted Boltzmann Machine,RBM)单元组合成的,RBM通过非常典型的网络神经,来使网络可视层和隐层单元相互连接,通过获取输入为可视单元高阶隐单元。RBM权值相对会比较比较轻松,与传统网络sigmoid的信度不同。通过预训练获取的生成性权值,采用无监督贪心的模式逐层不停完成。在训练过程中,简单来说,将可视向量的值映射给隐单元,隐层单元的重建由可视单元来完成;最后次映射给隐单元就由新可视单元来实现,最终来完成隐单元的更新。一个DBN由自下向上的多个不同的RBM构建组合。将可用的隐单元通过高斯—伯努利RBM,伯努利—伯努利RBM结构,输出作为训练上层伯努利—伯努利RBM的导入和下层伯努利和伯努利的导出,以此类推等等。

    1.2.2 区分性深度模式

    为提供对模式分类区分训练的能力,描述数据后验实现的分布。卷积神经网络(Convolutional Neural Network, CNN)属于区分性训练,一个真正实践训练多层成真的网络结构算法,DBNs算法和它相反。通过具有相同参数神经元作用于视觉系统结构启发,在上一层的不同位置生成一种不变性的特征。于是LeCun等沿着这种指导,为了CNN深度学习框架是为了满足最小化预处理数据的实践,要求BP算法设计来生成CNN。由早期时间延迟神经网络的指导影响,CNN由早期时间延迟神经网络的方法通过共享时域权值的大小来实现。CNN是一种一般前向的BP训练常用拓扑模型,利用空间相对的关系减少参数的数量来提高的,而且在多个实验中取得不错的效果。通常用作局部感受区域图像小部分最底层的基本输入,不同信息网络的逐层层次传递,从而能够实现在每一层数据显著特征,来获得对平移、缩放、旋转不变的观测。

    1.2.3 混合型模型

    混合型模型是区分更佳性的目标,通常利用生成型结构输出。混合型结构模型学习—生成性部分与区分性部分。区分性任务经常用来现有典型生成性的单元,应用于分类任务,预训练通过当有生成性模型结合其他典型的区分性学习算法来对优化进行所有权值。一个顶层变量通过附加来为训练集提供的期望输出区分性寻优。优化DBN的权值用BP算法来实现,通过RBM和DBN初始权值预训练,这样一来网络性能就会更加优越,相对于那些只通过BP算法单独训练的网络,BP对DBNs训练不但拥有完成局部参数空间搜索的优势,而且和前馈型神经网络相比,加快了训练效果和收敛回馈时间的速度。

    2 训练过程

    神经网络模式有指导学习和无指导学习,有指导学习是主流的,无指导学习用来聚集分析。有指导的模式识别,同类样本通过一种适当的空间划分方法或边界在空间的分布以及和不同类样本之间的分离程度找,使不同的样本分别对应各自的区域,一个很长时间和复杂的学习过程是必须的。空间分类边界不断调整样本,使其更符合样本原本的属性。总的来说,卷积网络通过大量的输入和输出之间的关系映射,本质上是一种输入到输出的映射关系,用已知的模式对卷积网络加以训练,使其具备映射能力,通过对有指导的训练,样本集由空间向量对构成,来模拟系统实际的运行结果。训练前为了保证系统网络不会因权值过大而进入饱和状态所有的权通过不同的小随机数进行初始化,确保不出现异常,不同的数据使网络系统更好地正常学习模拟真实的环境,使其更加具备兼容性和完整性。

    3 结语

    CNN这种层间关系和空域信息的紧密关系,更加适用于图片处理和理解。尤其是在提取图像显著特征方面展现出优势。GABOR滤波器经常被用来模拟人类视觉系统对视觉刺激的响应初始化欲处理的步骤中。人们在未来的工作中,将用到更多的深度学习内容,包括人脸识别、文档分析和语言检测等方面。目前CNN通过一个时间相干性去训练,但不是它特有的。

    用最近比较火的Python做一个人脸识别的小程序,帮助大家更好地学习了解深度学习,做人脸识别要用到SIFT特征,经常会遇到配置好opencv之后,却找不到人脸识别的头文件的问题,找不到SIFT在哪。这是因为使用OpenCV3.0之后,把一些还在更新的、不是很稳定的,在测试阶段的东西放在了contrib模块里面。而且官方默认不带contrib模块。然而人们最想用的人脸识别和SIFT特征都在contrib里面。如果需要用的话,就需要自己编译,Python用起来比较方便。

    官网下载并安装OpenCV之后,在目录\opencv\build\python\2.7\x64之下有一个cv2.pyd文件,把它拷贝到python安装目录下的\Lib\site-packages文件夾下面即可。需要注意的是版本要对应。如图1所示,以猫脸检测为例,说明基于OpenCV的猫脸检测十分简单。用Python的话只有区区20行代码。其中20行代码中发挥主要作用的只有一个函数:detectMultiScale()。

    此函数的作用是,在输入图像中检测不同尺寸的对象,返回包含对象的矩形框。它接收的参数:(1)image—输入图像;(2)scaleFactor—每轮检测图像齿轮减少的比例;(3)minNeighbors—对象要至少被检测到几次才能判定对象确实存在;(4)minSize—检测对象的最小尺寸;(5)maxSize—检测对象的最大尺寸。

    本文以猫脸检测为例,说明在OpenCV下,人脸检测、行人检测、人眼检测等都是同样的道理,同样的流程。只需要把最开始相应的检测器换掉,然后按照实际情况调节detectMultiScale()的参数。

    [参考文献]

    [1]翟剑锋.深度学习在自然语言处理中的应用[J].电脑编程技巧与维护,2013(18):74-76.

    [2]王臻,常宝宝,穗志方.基于分层输出神经网络的汉语语义角色标注[J].中文信息学报,2014(6):56-61.

    [3]聂振海,贾丹.深度学习研究概述[J].科技创新导报,2015(30):224.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 基于MATLAB 的信号时域采样及

    唐敏敏 张静摘要:频率混叠是数字信号处理中特有的现象,发生频率混叠后,信号会分析出错误的结果。而采样过程中,由于频率不够高,采样出

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建