博舍

智能金融的基石——自然语言处理(NLP)和知识图谱 自然语言处理的应用

智能金融的基石——自然语言处理(NLP)和知识图谱

智能问答和语义搜索的价值在金融领域越来越被重视。它主要应用的场景包括智能投研、智能投顾和智能客服。在智能投研领域,投研人员日常工作需要通过多种渠道搜索大量相关信息。而有了金融问答和语义搜索的帮助,信息获取途径将是“Justaskaquestion”。并且,语义搜索返回的结果不仅是平面化的网页信息,而是能把各方面的相关信息组织起来的立体化信息,还能提供一定的分析预测结论。在智能客服和智能投顾领域,智能问答系统的应用主要是机器人客服。机器人客服目前的作用还只是辅助人工客服回答一些常见问题,但已能较大地节省客服部门的人力成本。

典型应用案例如美国Alphasense公司为投研人员整合碎片化信息,提供专业金融知识访问工具。AlphaSense公司的产品可以说是新一代的金融知识引擎。它从新闻、财报、研报各种行业网站等获取大量数据、信息、知识形式的“素材”,通过语义分析构建成知识图谱,并提供高级语义搜索引擎、智能问答、交互式知识管理系统、文档(知识)协作系统,以对金融知识进行更加有效的管理、搜索、使用。

02资讯与舆情分析

金融资讯信息非常丰富,例如公司新闻(公告、重要事件、财务状况等)、金融产品资料(股票、证券等)、宏观经济(通货膨胀、失业率等)、政策法规(宏观政策、税收政策等)、社交媒体评论等。

金融资讯每天产生的数量非常庞大,要从浩如烟海的资讯库中准确找到相关文章,还要阅读分析每篇重要内容,是费时费力的工作。如果有一个工具帮助人工快速迅捷获取资讯信息,将大大提高工作效率。资讯舆情分析的主要功能包括资讯分类标签(按公司、产品、行业、概念板块等)、情感正负面分析(文章、公司或产品的情感)、自动文摘(文章的主要内容)、资讯个性化推荐、舆情监测预警(热点热度、云图、负面预警等)。在这个场景中,金融知识图谱提供的金融知识有助于更好理解资讯内容,更准确地进行资讯舆情分析。

资讯舆情分析的应用主要在智能投研和智能监管这两个场景。目前市场上的辅助投研工具中,资讯舆情分析是必不可少的重要部分。资讯舆情分析作为通用工具更多是对海量定性数据进行摘要、归纳、缩简,以更加快捷方便地为投研人员提供信息,支持他们进行决策,而非直接给出决策结论。在智能监管领域,通过资讯舆情分析,对金融舆情进行监控,发现违规非法活动进行预警。

03金融预测和分析

基于语义的金融预测即利用金融文本中包含的信息预测各种金融市场波动,它是以NLP等人工智能技术与量化金融技术的结合。

利用金融文本数据帮助改善金融交易预测模型的想法早已有之。本世纪初,美国就有人利用新闻和股价的历史数据来预测股价波动。2010年后,社交媒体产生了大量数据,基于Twitter、Facebook来预测股市的研究项目很多。最近,深度学习被大量应用在预测模型中。金融文本数据提供的信息是定性的(qualitative),而通常数字形式的数据是定量的(quantitative)。定性分析比定量分析更难,定性信息包含的信息量更大。有分析表明,投资决策人员在进行决策时,更多依赖于新闻、事件甚至流言等定性信息,而非定量数据。因此,可期待基于语义的金融预测分析大有潜力可挖。这个场景中涉及的关键NLP技术包括事件抽取和情感分析技术。金融知识图谱在金融预测分析中具有重要的作用,它是进行事件推理的基础。例如在中兴事件中,可根据产业链图谱推导受影响的公司。

基于语义的金融预测和分析在金融应用的主要场景包括智能投研和智能投顾。它的理想目标是能代替投资人员做投资预测,进行自动交易,但目前还只是作为投资人员的投资参考。将不同来源的多维度数据进行关联分析,特别是对非结构化数据的分析,比如邮件、社交网络信息、网络日志信息。从而挖掘和展现出未知的相关关系,为决策提供依据。典型的应用案例如美国Palantir公司提供基于知识图谱的大数据分析平台。其金融领域产品Metropolis,通过整合多源异构数据,构建金融领域知识图谱。特点是:对非结构化数据的分析能力、将人的洞察和逻辑与高效的机器辅助手段相结合起来。另一个例子如Kensho公司利用金融知识图谱进行预测分析。在英国脱欧期间,交易员成功运用Kensho了解到退欧选举造成当地货币贬值;曾准确分析了美国总统任期的前100天内股票涨跌情况。

04文档信息抽取

信息抽取是NLP的一种基础技术,是NLP进一步进行数据挖掘分析的基础,也是知识图谱中知识抽取的基础。采用的方法包括基于规则模板的槽填充的方法、基于机器学习或深度学习的方法。按抽取内容分可以分为实体抽取、属性抽取、关系抽取、规则抽取、事件抽取等。

在这里的文档信息抽取特指一种金融应用场景。指从金融文档(如公告研报)等抽取指定的关键信息,如公司名称、人名、指标名称、数值等。文档格式可能是格式化文档(word,pdf,html等)或纯文本。对格式化文本进行抽取时需要处理并利用表格、标题等格式信息。文档信息抽取的应用场景主要是智能投研和智能数据,促进数据生产自动化或辅助人工进行数据生产、文档复核等。

05自动文档生成

自动文档生成指根据一定的数据来源自动产生各类金融文档。常见的需要生成的金融文档如信息披露公告(债券评级、股转书等)、各种研究报告。

自动报告生成属于生成型NLP应用。它的数据来源可能是结构化数据,也可能是从非结构化数据用信息抽取技术取得的,也可能是在金融预测分析场景中获得的结论。简单的报告生成方法是根据预定义的模板,把关键数据填充进去得到报告。进一步的自动报告生成需要比较深入的NLG技术,它可以把数据和分析结论转换成流畅的自然语言文本。

自动文档生成的应用场景包括智能投研、智能投顾等。它的典型应用案例如美国的NarrativeScience,它从结构化数据中进行数据挖掘,并把结果用简短的文字或依据模板产生报告内容。又如AutomatedInsights,它为美联社自动写出了10亿多篇文章与报告。

06风险评估与反欺诈

风险评估是大数据、互联网时代的传统应用场景,应用时间较早,应用行业广泛。它是通过大数据、机器学习技术对用户行为数据分析后,进行用户画像,并进行信用和风险评估。

NLP技术在风控场景中的作用是理解分析相关文本内容,为待评估对象打标签,为风控模型增加更多的评估因子。引入知识图谱技术以后,可以通过人员关系图谱的分析,发现人员关系的不一致性或者短时间内变动较大,从而侦测欺诈行为。利用大数据风控技术,在事前能够预警,过滤掉带恶意欺诈目的人群;在事中进行监控,发生欺诈攻击时及时发现;在事后进行分析,挖掘到欺诈者的关联信息,降低以后的风险。

在金融行业,风险评估与反欺诈的应用场景首先是智能风控。利用NLP和知识图谱技术改善风险模型以减少模型风险,提高欺诈监测能力。其次,还可以应用在智能监管领域,以加强监管者和各部门的信息交流,跟踪合规需求变化。通过对通信、邮件、会议记录、电话的文本进行分析,发现不一致和欺诈文本。例如欺诈文本有些固定模式:如用负面情感词,减少第一人称使用等。通过有效的数据聚合分析可大大减少风险报告和审计过程的资源成本。从事此类业务的Finctech公司很多,如Palantir最初从事的金融业务就是反欺诈。其他如DigitalReasoning、RapidMiner、Lexalytics、Prattle等。

07客户洞察

客户关系管理(CRM)也是在互联网和大数据时代中发展起来,市场相对成熟,应用比较广泛,许多Fintech公司都以此为主要业务方向。现代交易越来越多是在线上而不是线下当面完成,因此如何掌握客户兴趣和客户情绪,越来越需要通过对客户行为数据进行分析来完成。

NLP技术在客户关系管理中的应用,是通过把客户的文本类数据(客服反馈信息、社交媒体上的客户评价、客户调查反馈等)解析文本语义内涵,打上客户标签,建立用户画像。同时,结合知识图谱技术,通过建立客户关系图谱,以获得更好的客户洞察。这包括客户兴趣洞察(产品兴趣),以进行个性化产品推荐、精准营销等。以及客户态度洞察(对公司和服务满意度、改进意见等),以快速响应客户问题,改善客户体验,加强客户联系,提高客户忠诚度。

客户洞察在金融行业的应用场景主要包括智能客服和智能运营。例如在智能客服中,通过客户洞察分析,可以改善客户服务质量,实现智能质检。在智能运营(智能CRM)中,根据客户兴趣洞察,实现个性化精准营销。国外从事这个业务方向的Fintech公司很多,如Inmoment,Medallia,NetBase等。

各种核心能力在智能金融的主要应用场景呈以下分布:

自然语言处理(NLP)和知识图谱两种技术本身都还在发展成长过程中,因此在金融落地过程中势必也还会面临许多新的课题和挑战,任重而道远。一方面,人工智能必须与金融的具体业务场景切合,找到金融企业需求痛点,真正提升客户生产效率,给客户带来价值;另一方面,人工智能是基础技术学科,技术难度大,人才要求高,在核心技术和关键算法上需要有突破有优势,才能不断提升市场竞争力。所以,场景驱动和技术研发需要相辅相成、紧密结合。相信金融智能语义技术的应用将会有广阔的发展空间,推动智能金融迈向一个新的台阶。

语义魔方,北明智通(北京)科技有限公司研发的语义理解和处理的工具级产品,帮助用户整合、挖掘内外部大数据,让机器理解文本所表达的含义,构筑知识网络、深度挖掘知识价值,推动业务智能化。可广泛应用于存在大量结构化、半结构化、非结构化资源,需要快速融合并挖掘分析其价值的单位。

将语义魔方应用于金融行业的账单/合同文本的识别,可实现包括印刷体、手写体在内的内容的识别,提取关键信息,形成知识卡片。同时,进一步挖掘客户、产品、条款等关联关系,形成知识网络作为后续智能化分析的基础。返回搜狐,查看更多

CNN卷积神经网络及其在NLP自然语言处理中的应用(一)

由于可以有效地进行特征提取,卷积神经网络(CNN)已经被广泛地应用于计算机视觉、自然语言处理等领域。之前仅在图像的分类和识别中用过CNN,且对CNN的理解较为浅显。现在重新学习卷积神经网络,并重点学习其在NLP领域的应用。特此记录。

参考:https://blog.csdn.net/jiaoyangwm/article/details/80011656

目录一、卷积神经网络1、卷积神经网络的概念2、CNN的求解3、卷积神经网络注意事项二、卷积神经网络常见模型1、AlexNet2、VGGNet3、GoogLeNet4、ResNet三、卷积神经网络应用于自然语言处理一、卷积神经网络

首先从卷积神经网络的概念、发展历史、网络构架、常见网络等方面学习卷积神经网络。

1、卷积神经网络的概念

深度学习的概念提出后,由于可以使用大规模的数据在大规模网络上进行训练,各种深度神经网络模型被接连提出,掀起了深度神经网络在机器学习中的热潮。卷积神经网络作为深度神经网络的一种,因其权值数量少、模型复杂度低而获得了成功。

深度学习的思想:深度神经网络的基本思想是通过构建多层网络,对目标进行多层表示,以期通过多层的高层次特征来表示数据的抽象语义信息,获得更好的特征鲁棒性。

什么是卷积神经网络:卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量,其三个关键的操作,其一是局部感受野,其二是权值共享,其三是pooling层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。

1)网络结构

CNN的整体架构:卷积神经网络是一种多层的监督学习神经网络,隐含层的卷积层和池采样层是实现卷积神经网络特征提取功能的核心模块。该网络模型通过采用梯度下降法最小化损失函数对网络中的权重参数逐层反向调节,通过频繁的迭代训练提高网络的精度。卷积神经网络的低隐层是由卷积层和最大池采样层交替组成,高层是全连接层对应传统多层感知器的隐含层和逻辑回归分类器。第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像。最后一层输出层是一个分类器,可以采用逻辑回归,Softmax回归甚至是支持向量机对输入图像进行分类。

卷积神经网络结构包括:卷积层,降采样层,全连接层。每一层有多个特征图,每个特征图通过一种卷积滤波器提取输入的一种特征,每个特征图有多个神经元。

输入图像统计和滤波器进行卷积之后,提取该局部特征,一旦该局部特征被提取出来之后,它与其他特征的位置关系也随之确定下来了,每个神经元的输入和前一层的局部感受野相连,每个特征提取层都紧跟一个用来求局部平均与二次提取的计算层,也叫特征映射层,网络的每个计算层由多个特征映射平面组成,平面上所有的神经元的权重相等。

通常将输入层到隐藏层的映射称为一个特征映射,也就是通过卷积层得到特征提取层,经过pooling之后得到特征映射层。

1)局部感受野与权值共享

卷积神经网络的核心思想就是局部感受野、权值共享和pooling层,以此来达到简化网络参数并使得网络具有一定程度的位移、尺度、缩放、非线性形变稳定性。

局部感受野:由于图像的空间联系是局部的,每个神经元不需要对全部的图像做感受,只需要感受局部特征即可,然后在更高层将这些感受得到的不同的局部神经元综合起来就可以得到全局的信息了,这样可以减少连接的数目。权值共享:不同神经元之间的参数共享可以减少需要求解的参数,使用多种滤波器去卷积图像就会得到多种特征映射。权值共享其实就是对图像用同样的卷积核进行卷积操作,也就意味着第一个隐藏层的所有神经元所能检测到处于图像不同位置的完全相同的特征。其主要的能力就能检测到不同位置的同一类型特征,也就是卷积网络能很好的适应图像的小范围的平移性,即有较好的平移不变性(比如将输入图像的猫的位置移动之后,同样能够检测到猫的图像)。

1)卷积层、下采样层、全连接层

卷积层:因为通过卷积运算我们可以提取出图像的特征,通过卷积运算可以使得原始信号的某些特征增强,并且降低噪声。

用一个可训练的滤波器fx去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是卷积特征map了),然后加一个偏置bxb_xbx​,得到卷积层CxC_xCx​。

下采样层:因为对图像进行下采样,可以减少数据处理量同时保留有用信息,采样可以混淆特征的具体位置,因为某个特征找出来之后,它的位置已经不重要了,我们只需要这个特征和其他特征的相对位置,可以应对形变和扭曲带来的同类物体的变化。

每邻域四个像素求和变为一个像素,然后通过标量Wx+1W_{x+1}Wx+1​加权,再增加偏置bx+1b_{x+1}bx+1​,然后通过一个sigmoid激活函数,产生一个大概缩小四倍的特征映射图Sx+1S_{x+1}Sx+1​。

全连接层:采用softmax全连接,得到的激活值即卷积神经网络提取到的图片特征。

卷积神经网络相比一般神经网络在图像理解中的优点:

网络结构能够较好的适应图像的结构。同时进行特征提取和分类,使得特征提取有助于特征分类。权值共享可以减少网络的训练参数,使得神经网络结构变得简单,适应性更强。2、CNN的求解

CNN在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

卷积网络执行的是监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成的。所有这些向量对,都应该是来源于网络即将模拟系统的实际“运行”结构,它们可以是从实际运行系统中采集来。

1)参数初始化:在开始训练前,所有的权都应该用一些不同的随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无学习能力。

2)训练过程包括四步

①第一阶段:前向传播阶段

从样本集中取一个样本,输入网络。计算相应的实际输出;在此阶段信息从输入层经过逐级的变换,传送到输出层,这个过程也是网络在完成训练之后正常执行时执行的过程。

②第二阶段:后向传播阶段

计算实际输出与相应的理想输出的差。

按照极小化误差的方法调整权值矩阵。

网络的训练过程如下:

选定训练组,从样本集中分别随机地寻求N个样本作为训练组;

将各权值、阈值,置成小的接近于0的随机值,并初始化精度控制参数和学习率;

从训练组中取一个输入模式加到网络,并给出它的目标输出向量;

计算出中间层输出向量,计算出网络的实际输出向量;

将输出向量中的元素与目标向量中的元素进行比较,计算出输出误差;对于中间层的隐单元也需要计算出误差;

依次计算出各权值的调整量和阈值的调整量;

调整权值和调整阈值;

判断指标是否满足精度要求,如果不满足,则返回(3),继续迭代;如果满足就进入下一步;

训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器已经形成。再一次进行训练,直接从文件导出权值和阈值进行训练,不需要进行初始化。

3、卷积神经网络注意事项

1)数据集的大小和分块

数据驱动的模型一般依赖于数据集的大小,CNN和其他经验模型一样,能够适用于任意大小的数据集,但用于训练的数据集应该足够大,能够覆盖问题域中所有已知可能出现的问题,

设计CNN的时候,数据集应该包含三个子集:训练集、测试集、验证集

训练集:包含问题域中的所有数据,并在训练阶段用来调整网络的权重。测试集:在训练的过程中用于测试网络对训练集中未出现的数据的分类性能,根据网络在测试集上的性能情况,网络的结构可能需要作出调整,或者增加训练循环次数。验证集:验证集中的数据统一应该包含在测试集和训练集中没有出现过的数据,用于在网络确定之后能够更好的测试和衡量网络的性能。

Looney等人建议,数据集中65%的用于训练,25%的用于测试,10%用于验证。

2)数据预处理

为了加速训练算法的收敛速度,一般都会采用一些数据预处理技术,其中包括:去除噪声、输入数据降维、删除无关数据等。

数据的平衡化在分类问题中异常重要,一般认为训练集中的数据应该相对于标签类别近似于平均分布,也就是每一个类别标签所对应的数据集在训练集中是基本相等的,以避免网络过于倾向于表现某些分类的特点。

为了平衡数据集,应该移除一些过度富余的分类中的数据,并相应补充一些相对样例稀少的分类中的数据。

还有一个方法就是复制一部分这些样例稀少分类中的数据,并在这些数据中加入随机噪声。

3)数据规则化

将数据规则化到统一的区间(如[0,1])中具有很重要的优点:防止数据中存在较大数值的数据造成数值较小的数据对于训练效果减弱甚至无效化,一个常用的方法是将输入和输出数据按比例调整到一个和激活函数相对应的区间。

4)网络权值初始化

CNN的初始化主要是初始化卷积层和输出层的卷积核(权值)和偏置

网络权值初始化就是将网络中的所有连接权重赋予一个初始值,如果初始权重向量处在误差曲面的一个相对平缓的区域的时候,网络训练的收敛速度可能会很缓慢,一般情况下网络的连接权重和阈值被初始化在一个具有0均值的相对小的区间内均匀分布。

5)BP算法的学习速率

如果学习速率选取的较大,则会在训练过程中较大幅度的调整权值w,从而加快网络的训练速度,但是这会造成网络在误差曲面上搜索过程中频繁抖动,且有可能使得训练过程不能收敛。

如果学习速率选取的较小,能够稳定的使得网络逼近于全局最优点,但也可能陷入一些局部最优,并且参数更新速度较慢。

自适应学习率设定有较好的效果。

6)收敛条件

有几个条件可以作为停止训练的判定条件,训练误差、误差梯度、交叉验证等。一般来说,训练集的误差会随着网络训练的进行而逐步降低。

7)训练方式

训练样例可以有两种基本的方式提供给网络训练使用,也可以是两者的结合:逐个样例训练(EET)、批量样例训练(BT)。

在EET中,先将第一个样例提供给网络,然后开始应用BP算法训练网络,直到训练误差降低到一个可以接受的范围,或者进行了指定步骤的训练次数。然后再将第二个样例提供给网络训练。

EET的优点是相对于BT只需要很少的存储空间,并且有更好的随机搜索能力,防止训练过程陷入局部最小区域。

EET的缺点是如果网络接收到的第一个样例就是劣质(有可能是噪音数据或者特征不明显)的数据,可能使得网络训练过程朝着全局误差最小化的反方向进行搜索。

相对的,BT方法是在所有训练样例都经过网络传播后才更新一次权值,因此每一次学习周期就包含了所有的训练样例数据。

BT方法的缺点也很明显,需要大量的存储空间,而且相比EET更容易陷入局部最小区域。

而随机训练(ST)则是相对于EET和BT一种折衷的方法,ST和EET一样也是一次只接受一个训练样例,但只进行一次BP算法并更新权值,然后接受下一个样例重复同样的步骤计算并更新权值,并且在接受训练集最后一个样例后,重新回到第一个样例进行计算。

ST和EET相比,保留了随机搜索的能力,同时又避免了训练样例中最开始几个样例如果出现劣质数据对训练过程的过度不良影响。

二、卷积神经网络常见模型1、AlexNet

AlexNet是AlexKrizhevsky、IlyaSutskever和GeoffreyHinton创造的一个“大型的深度卷积神经网络”,赢得了2012ILSVRC(2012年ImageNet大规模视觉识别挑战赛)。

AlexNe采用两台GPU服务器进行训练,其网络结构分为两股“流”。AlextNet的网络结构示意如下:

该方法训练了一个端到端的卷积神经网络实现对图像特征提取和分类,网络结构共7层,包含5层卷积层和2层全连接层。

AlexNet包含了6亿三千万个连接,6000万个参数和65万个神经元,拥有5个卷积层,其中3个卷积层后面连接了最大池化层,最后还有3个全连接层。

要点:

数据集:ImageNet数据集,含1500多万个带标记的图像,超过2.2万个类别。激活函数:ReLU:f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x)(训练速度快,一定程度上减小了梯度消失的问题)。数据增强:平移、镜像、缩放等。过拟合:使用dropout技巧随机忽略一部分神经元,缓解了神经网络的过拟合现象,和防止对网络参数优化时陷入局部最优的问题。如何训练:批处理梯度下降训练模型,注明了动量衰减值和权值衰减值。训练时间:使用两台GTX580GPU,训练了5到6天。

AlexNet学习出来的特征是什么样子的?

第一层:都是一些填充的块状物和边界等特征中间层:学习一些纹理特征更高层:接近于分类器的层级,可以明显的看到物体的形状特征最后一层:分类层,完全是物体的不同的姿态,根据不同的物体展现出不同姿态的特征了。

即无论对什么物体,学习过程都是:边缘→部分→整体。

2、VGGNet

VGGNet由牛津大学计算机视觉组合和GoogleDeepMind公司研究员一起研发的深度卷积神经网络。它探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠33的小型卷积核和22的最大池化层,成功的构建了16~19层深的卷积神经网络。VGGNet获得了ILSVRC2014年比赛的亚军和定位项目的冠军,在top5上的错误率为7.5%。目前为止,VGGNet依然被用来提取图像的特征。

VGGNet的网络结构如下图所示。VGGNet包含很多级别的网络,深度从11层到19层不等,比较常用的是VGGNet-16和VGGNet-19。VGGNet把网络分成了5段,每段都把多个3*3的卷积网络串联在一起,每段卷积后面接一个最大池化层,最后面是3个全连接层和一个softmax层。

A网络(11层)有8个卷积层和3个全连接层,E网络(19层)有16个卷积层和3个全连接层,卷积层宽度(通道数)从64到512,每经过一次池化操作,扩大一倍。

结构:

输入:训练时输入大小为224x224大小的RGB图像;预处理:在训练集中的每个像素减去RGB的均值。卷积核:3x3大小的卷积核,有的地方使用1x1的卷积,这种1x1的卷积可以被看做是对输入通道的线性变换。步长:步长stride为1填充:填充1个像素池化:max-pooling,共有5层在一部分卷积层之后,连接的max-pooling的窗口是2x2,步长为2全连接层:前两个全连接层均有4096个通道,第三个全连接层由1000个通道,用来分类。所有网络的全连接层配置相同。激活函数:ReLU

相比AlexNet的变化:

LRN层作用不大,还耗时,抛弃网络越深,效果越好卷积核更小,比如3x3

VGG虽然比AlexNet模型层数多,且每轮训练时间会比AlexNet更长,但是因为更深的网络和更小的卷积核带来的隐式正则化结果,需要的收敛的迭代次数减小了许多。

网络特点:

1)VGGNet使用3x3的卷积

2)使用三个3x3的卷积,而不是一个7x7的卷积。

两个连续的3x3的卷积相当于5x5的感受野,三个相当于7x7的感受野,优势在于:①包含三个ReLU层而不是一个,使得决策函数更有判别性;②减少了参数,比如输入输出都是C个通道,使用3x3的3个卷积层需要3×(3x3xCxC)=27xCxC个参数,使用7x7的1个卷积层需要7x7xCxC=49xCxC个参数,这可以看做是为7x7的卷积施加一种正则化,使它分解为3个3x3的卷积。

3)使用1x1的卷积层,该层主要是为了增加决策函数的非线性,而不影响卷积层的感受野,虽然1x1的卷积操作是线性的,但是ReLU增加了非线性。

训练过程:

除了从多尺度的训练图像上采样输入图像外,VGGNet和AlexNet类似

1)优化方法:含有动量的随机梯度下降SGD+momentum(0.9)

2)批尺度:batch_size=256

3)正则化:采用L2正则化,weight_decay是5e-4,dropout在前两个全连接层之后,p=0.5

4)参数初始化:对于较浅的A网络,参数进行随机初始化,权值w从N(0,0.01)中采样,偏差bias初始化为0;对于较深的网络,先用A网络的参数初始化前四个卷积层和三个全连接层。

5)数据预处理:为了获得224x224的输入图像,要在每个SGD迭代中对每张重新缩放的图像进行随机裁剪,为了增强数据集,裁剪的图像还要随机水平翻转和RGB色彩偏移。

测试过程:

1)对输入图像重新缩放到一个预定义的最小图像边的尺寸Q2)网络密集地应用在重缩放后的图像上,也就是说全连接层转化为卷积层(第一个全连接层转化为7x7的卷积层,后两个全连接层转化为1x1的卷积层),然后将转化后的全连接层应用在整张图中)3)为了获得固定尺寸的类别分数向量,对分数图进行空间平均化处理。

3、GoogLeNet

介绍GooLeNet之前,先引入一张CNN的结构演化图:

2012年AlexNet做出历史突破以来,直到GoogLeNet出来之前,主流的网络结构突破大致是网络更深(层数),网络更宽(神经元数)。所以大家调侃深度学习为“深度调参”,但是纯粹的增大网络的缺点:

参数太多,如果训练数据集有限,容易过拟合;网络越大计算复杂度越大,难以应用;网络越深,梯度越往后穿越容易消失(梯度弥散),难以优化模型

那么解决上述问题的方法当然就是增加网络深度和宽度的同时减少参数,Inception就是在这样的情况下应运而生。GoogLeNet团队提出的Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构。

Inception网络结构:

Inception结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构,基本结构如下:

上图说明:

采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合之所以卷积核采用1x1,3x3和5x5,主要是为了方便对齐,设定卷积步长stride=1,只要分别设定padding=0,1,2,那么卷积之后便可以得到相同维度的特征,然后将这些特征就可以直接拼接在一起了。文章中说pooling被证明很有效,所以网络结构中也加入了网络越到后面,特征越抽象,而且每个特征所涉及的感受野也变大了,因此随着层数的增加,3x3和5x5的比例也要增加。

但是使用5x5的卷积核仍然会带来巨大的计算量,为此文章借鉴NIN,采用1x1的卷积核来进行降维。

例如:上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256。其中,卷积层的参数为128x5x5x256。假如上一层输出先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32+32x5x5x256,大约减少了4倍。

改进后的Inception模型如下:

GoogLeNetIncepetionV1比AlexNet的8层或者VGGNet的19层还要更深。但其计算量只有15亿次浮点运算,同时只有500万的参数量,仅为AlexNet参数量(6000万)的1/12,却可以达到远胜于AlexNet的准确率,可以说是非常优秀并且非常实用的模型。

InceptionV1参数少但效果好的原因除了模型层数更深、表达能力更强外,还有两点:

其一,去除了最后的全连接层,用全局平均池化层(即将图片尺寸变为1*1)来取代它。全连接层几乎占据了AlexNet或VGGNet中90%的参数量,而且会引起过拟合,去除全连接层后模型训练更快并且减轻了过拟合。其二,InceptionV1中精心设计的InceptionModule提高了参数的利用效率,其结构如上图所示。这一部分也借鉴了NetworkInNetwork的思想,形象的解释就是InceptionModule本身如同大网络中的一个小网络,其结构可以反复堆叠在一起形成大网络。

InceptionModule的基本结构:

其中有4个分支:

第一个分支对输入进行11的卷积,这其实也是NIN中提出的一个重要结构。11的卷积是一个非常优秀的结构,它可以跨通道组织信息,提高网络的表达能力,同时可以对输出通道升维和降维。

第二个分支,先使用了1x1卷积,然后连接3x3卷积,相当于进行了两次特征变换

第三个分支,先使用1x1卷积,然后连接5x5卷积

第四个分支,3x3最大池化后直接使用1x1卷积

四个分支在最后通过一个聚合操作合并,在输出通道这个维度上聚合。

GoogLeNet

基于Inception构建了GoogLeNet的网络结构如下(共22层):

上图说明:

GoogLeNet采用了模块化的几个,方便增添和修改网络最后采用了平均池化来代替全连接层,想法来自NIN,事实证明可以将TOPaccuracy提高0.6%,但是,实际在最后一层还是加了一个全连接层,主要为了方便之后的微调虽然移除了全连接,但是网络中依然使用了Dropout为了避免梯度消失,网络额外增加了2个辅助的softmax用于前向传导梯度,文章中说着两个辅助分类器的loss应该加一个衰减系数,但是caffe中的模型没有加任何衰减,此外,实际测试的时候,这两个额外的softmax会被去掉。

GoogLeNet是谷歌团队为了参加ILSVRC2014比赛而精心准备的,为了达到最佳的性能,除了使用上述的网络结构外,还做了大量的辅助工作:包括训练多个model求平均、裁剪不同尺度的图像做多次验证等等。

GoogleNetInceptionV2

V2和V1的最大的不同就是,V2增加了BatchNormalization。

InceptionV2学习了VGGNet,用两个3x3的卷积代替5x5的卷积,用以降低参数量并减轻过拟合,还提出了著名的BatchNormalization方法,该方法是一个很有效的正则化的方法,可以让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率也可以得到大幅度的提高。

BN在用于神经网络某层时,会对每一个mini-batch数据的内部进行标准化(normalization)处理,使输出规范化到N(0,1)的正态分布,减少了InternalCovariateShift(内部神经元分布的改变)。

BN的论文指出,传统的深度神经网络在训练时,每一层的输入的分布都在变化,导致训练变得困难,我们只能使用一个很小的学习速率解决这个问题。而对每一层使用BN之后,我们就可以有效地解决这个问题,学习速率可以增大很多倍,达到之前的准确率所需要的迭代次数只有1/14,训练时间大大缩短。

BN算法实现如下:输入:输入数据x1...xmx_1...x_mx1​...xm​这些数据是准备进入激活函数的数据)

计算过程:

求数据均值求数据方差数据进行标准化训练参数γ,βgamma,etaγ,β输出y通过γgammaγ与βetaβ的线性变换得到新的值

正向传播的过程:通过可学习的γγγ与βββ参数求出新的分布值。

反向传播的过程:通过链式求导方式,求出γγγ,βββ以及相关权值。

GoogleNetInceptionV3待学习

4、ResNet

ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它“简单与实用”并存,之后很多方法都建立在ResNet50或者ResNet101的基础上完成的,检测,分割,识别等领域都纷纷使用ResNet,Alphazero也使用了ResNet,所以可见ResNet确实很好用。

实验发现:随着网络层级的不断增加,模型精度不断得到提升,而当网络层级增加到一定的数目以后,训练精度和测试精度迅速下降,这说明当网络变得很深以后,深度网络就变得更加难以训练了。

回想一下神经网络反向传播的原理,先通过正向传播计算出结果output,然后与样本比较得出误差值Etotal根据误差结果,利用著名的“链式法则”求偏导,使结果误差反向传播从而得出权重w调整的梯度。下图是输出结果到隐含层的反向传播过程(隐含层到输入层的反向传播过程也是类似):通过不断迭代,对参数矩阵进行不断调整后,使得输出结果的误差值更小,使输出结果与事实更加接近。

从上面的过程可以看出,神经网络在反向传播过程中要不断地传播梯度,而当网络层数加深时,梯度在传播过程中会逐渐消失(假如采用Sigmoid函数,对于幅度为1的信号,每向后传递一层,梯度就衰减为原来的0.25,层数越多,衰减越厉害),导致无法对前面网络层的权重进行有效的调整。

那么我们作这样一个假设:假设现有一个比较浅的网络(ShallowNet)已达到了饱和的准确率,这时在它后面再加上几个恒等映射层(Identitymapping,也即y=x,输出等于输入),这样就增加了网络的深度,并且起码误差不会增加,也即更深的网络不应该带来训练集上误差的上升。而这里提到的使用恒等映射直接将前一层输出传到后面的思想,便是著名深度残差网络ResNet的灵感来源。

ResNet引入了残差网络结构(residualnetwork),通过这种残差网络结构,可以把网络层弄的很深(据说目前可以达到1000多层),并且最终的分类效果也非常好,残差网络的基本结构如下图所示,很明显,该图是带有跳跃结构的:

神经网络输入:x

期望输出:H(x),即H(x)是期望的复杂映射,如果要学习这样的模型,训练的难度会比较大。

此时,如果已经学习到较为饱和的准确率,或者发现下层的误差变大时,接下来的目标就转化为恒等映射的学习,也就是使得输入x近似于输出H(x),以保持在后面的层次中不会造成精度下降。

上图的残差网络中,通过捷径连接的方式直接将输入x传到输出作为初始结果,输出结果为H(x)=F(x)+x,当F(x)=0时,H(x)=x,也就是恒等映射。于是,ResNet相当于将学习目标改变了,不再是学习一个完整的输出,而是目标值H(X)和x的差值,也就是所谓的残差F(x):=H(x)-x,因此,后面的训练目标就是要将残差结果逼近于0,使到随着网络加深,准确率不下降。

学习的目标:目标值H(x)和输入x的差值,即F(x):=H(x)-x,将残差逼近于0,使得随着网络加深,准确率不下降。

三、卷积神经网络应用于自然语言处理

见下篇。

自然语言处理在当今商业中的八大应用

了解自然语言处理如何演变为业务优化的推动者。

基于人工智能的工具现在统治着每个工业部门。有了丰富的社交媒体、组织和数字平台,产生的数据中不乏有用的资源。尽管企业一直在使用这些数据来满足他们的需要,但这些数据中更重要的部分(将近80%)是非结构化的,无法访问。这是自然语言处理(NLP)来挽救这种情况的地方。NLP是人工智能的一种应用程序,它为需要快速可靠地分析文本数据的公司提供了各种各样的应用程序。这有效地实现了人机交互,并允许对以前未使用的大量数据进行分析和格式化。

它赋予机器阅读、理解人类语言的能力,并从人类语言中获得意义。商业公司已经发现了这项技术的好处,并测试和执行了最有利的NLP应用,以推动商业智能的发展。目前,使用NLP,企业正在利用数据创造价值、分析市场、了解客户并获得竞争优势。据估计,2025年NLP市场规模将比2017年增长14倍,从30亿美元左右增长到430亿美元以上。

在过去的几年里,NLP在理论和实践上都取得了重大飞跃,融入了各种基于行业的解决方案。让我们来看看自然语言处理的一些广泛使用的商业应用。

1.聊天机器人

它们是NLP最普遍的用例,因为它们在处理客户支持请求和查询方面做得更好。他们充当支持的第一线,对请求进行分类,并将请求路由到适当的团队或部门。此外,聊天机器人为简单的客户问题提供虚拟帮助,并减轻不需要任何技能的低优先级、高周转率的任务。例如,ZomatoChatbox。

2.邮件过滤

这是NLP的另一个广泛使用的应用。在这种情况下,通过分析流经服务器的电子邮件中的文本,电子邮件提供商可以阻止基于垃圾邮件的电子邮件内容进入他们的邮箱。此外,它还增加了一层网络安全保护,还节省了时间。例如,Unroll.me。

3.招聘

NLP通过筛选简历,帮助招聘经理选择和筛选更好的候选人。自动寻找候选人的工具可以扫描申请者的简历,以提取所需的信息,并准确确定适合该工作的候选人。这将节省大量时间,并提供更有效的解决方案。例如,OracleTaleo。

4.神经机器翻译

是自然语言处理最古老的应用之一。在这一点上,机器翻译使用神经网络来翻译影响较小的内容,如电子邮件、法规文本等,并加快与合作伙伴的沟通以及其他业务交互。神经机器翻译工具使用双向递归神经网络(也称为编码器)将源语句处理成矢量,以供第二个递归神经网络(称为解码器)预测目标语言中的单词。例如,谷歌翻译。

5.情绪分析

也称为意见挖掘,NLP帮助识别客户的态度、情绪状态、判断或意图。这可以通过赋予文本极性(积极的、中性的或消极的),或者反过来努力识别语境的潜在情绪(高兴、悲伤、平静、愤怒)来实现。这使企业能够获得关于该组织及其服务的广泛公众意见。它还有助于进行有竞争力的比较,并在必要时对业务战略进行重要调整。例如,Repustate。

6.有针对性的广告

企业始终强调达到最大的受众数量,以增加潜在客户的机会。因此,NLP可以成为在正确时间、正确受众的正确地点智能定向和投放广告的极好来源。这是通过分析搜索关键字、浏览行为、电子邮件和社交媒体平台来在线寻找潜在客户来实现的。有针对性的广告主要依靠关键词匹配。为此,主要使用文本分析和文本挖掘工具。例如,ApacheOpenNLP。

7.文案

NLP可以通过完善内容营销策略来实现业务增长。它可以编写更符合你的品牌口碑的营销内容,并提供关于哪些信息对你的目标受众最具吸引力的见解-例如,阿里巴巴的人工智能文案。

8.内部威胁检测

基于NLP的内部威胁应用程序可以帮助确定通信中是否存在任何非法或恶意意图,并检测威胁模式以快速降低风险。这一点至关重要,因为数据泄露可能会给公司和客户带来巨大损失。例如,Splunk。

NLP目前渗透到每一家寻求推进其商业智能系统的企业。已经在上述情况下利用这些软件的公司的竞争优势日益增强,这应该是它们今天变得多么重要的动力。埃森哲建议,当业务组织开始设计和构建其NLP应用程序时,必须确保IT员工和实施合作伙伴拥有进行全面评估所需的带宽和专业知识,以便使NLP技术与业务目标保持一致。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇