基于质谱的大气气溶胶粒子成分分析算法_第1页
基于质谱的大气气溶胶粒子成分分析算法_第2页
基于质谱的大气气溶胶粒子成分分析算法_第3页
基于质谱的大气气溶胶粒子成分分析算法_第4页
基于质谱的大气气溶胶粒子成分分析算法_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要干净、清新的空气是保障人的身体健康以及提高人民幸福感和获得感的基本需求。然而在全球范围内,空气污染仍然严重威胁着人们的身心健康。解决空气污染问题,最主要也是最重要的方法就是从源头治理,而这就需要准确并快速检测大气污染物的成分和理化特征并进行分析,从而追溯污染物来源,进行针对性治理。但是在实际大气检测过程中,由于大气气溶胶包含的成分复杂,并且气溶胶颗粒在通过质谱仪的过程中,电离环节容易产生大量的次生带电碎片,从而产生包含噪声的质谱信号,人工分析这些质谱数据不仅费时费力,而且容易出错,不能满足“现场测试-在线分析”的需求。所以本设计基于此思路,将设计一个基于机器学习的大气成分质谱数据高通量分析测试系统,用于检测我国的一种典型的大气污染现象——灰霾,其对人的健康、交通运输出行以及各方面的生产生活造成较大的影响。而灰霾的化学本质为大气中高浓度的气溶胶粒子。本文通过分析目前机器学习中常见的分类算法以及分类模型,例如:支持向量机、人工神经网络、贝叶斯网络,搭建基于python编程语言的人工神经网络的大气成分质谱分类系统,并且将标准质谱数据变换成为接近质谱仪直接输出情况下的气溶胶质谱数据,然后利用转换好的数据训练生成分类模型,以贴近真实检测情况进而实现实时测试与在线分析。关键词:大气气溶胶,质谱,机器学习,人工神经网络

AbstractClean,freshairisthebasicrequirementofprotectingpeople'shealthandimprovingpeople'shappinessandsenseofacquisition.However,onaglobalscale,airpollutionstillposesaseriousthreattopeople'sphysicalandmentalhealth.Tosolvetheproblemofairpollution,themostimportantandmajorwayistocontrolitfromthesource,whichrequiresaccurateandrapiddetectionandanalysisofthecompositionandphysicalandchemicalcharacteristicsofairpollutants,soastotracethesourceofpollutantsandcarryouttargetedtreatment.However,intheactualatmosphericdetectionprocess,becausethecompositionoftheatmosphericaerosoliscomplex,andtheaerosolparticlesarepassingthroughthemassspectrometer,theionizationlinkispronetogeneratealargenumberofsecondarychargedfragments,therebygeneratingmassspectrometrysignalscontainingnoise,andmanualanalysis.Thesemassspectrometrydataarenotonlytime-consumingandlaborious,butalsopronetoerrorsandcannotmeettherequirementsof"fieldtesting-onlineanalysis".Therefore,basedonthisidea,thisdesignwilldesignamachinelearning-basedhigh-throughputanalysisandtestingsystemformassspectrometrydataofatmosphericcomponents,whichwillbeusedtodetectatypicalairpollutionphenomenoninChina,haze,whichhasagreatimpactonhumanhealth,transportation,travelandallaspectsofproductionandlifeinallaspects.Thechemicalnatureofhazeisahighconcentrationofaerosolparticlesintheatmosphere.Thispaperanalyzestheclassificationalgorithmsandclassificationmodelscommonlyusedinmachinelearning,suchassupportvectormachine,artificialneuralnetworkandBayesiannetwork,andbuildsanatmosphericcomponentmassspectrometryclassificationsystembasedonpythonprogramminglanguageartificialneuralnetwork.Thedataistransformedintoaerosolmassspectrometrydataclosetothedirectoutputofthemassspectrometer,andthenthetransformeddataisusedtotrainandgeneratetheclassificationmodeltoachievereal-timetestingandonlineanalysisincloseproximitytotherealdetectionsituation.Keywords:atmosphericaerosol,massspectrometry,machinelearning,artificialneuralnetwork

1绪论设计背景2005年世界卫生组织(WHO)发布的《关于颗粒物、臭氧、二氧化氮和二氧化硫的空气质量准则(风险评估概要)》中指出,不论是发达国家还是发展中国家,空气颗粒物及其对公众健康影响都是一致的,即目前城市人群所暴露的颗粒物浓度水平,会对健康产生有害效应。颗粒物对人体健康的影响是多方面的,但主要影响的是人体的呼吸系统和心血管系统;所有人群都可受到颗粒物的影响,其易感性视健康状况或年龄而异。随着颗粒物暴露水平的增加,各种健康效应的风险也会随之增大,但很少有证据能证明并提供颗粒物的阈值,即低于该浓度的暴露不会出现预期的健康危害效应。流行病学研究表明,3~5ug/m3颗粒物的短期或长期暴露都会对人体产生不利的健康效应[1]。大气气溶胶对气候、环境、生态和人类健康有着重要的影响。大气气溶胶通过散射和吸收太阳辐射,影响着大气的辐射平衡,进而对全球和局部气候环境产生影响。WTO估计,每年大约有700万人因接触到污染空气中可渗透到肺部和心血管系统的细微颗粒而死亡,导致中风、心脏病、肺癌、慢性阻塞性肺病等疾病,以及包括肺炎在内的呼吸道感染。仅在2016年,环境空气污染就导致约420万人死亡,而由于做饭时使用的污染性燃料和技术所产生的室内空气污染在同期估计导致380万人死亡。90%以上的与空气污染有关的死亡发生在低收入和中等收入国家,主要在亚洲和非洲,其次是东地中海区域、欧洲和美洲的低收入和中等收入国家[2]。改革开放以来,随着我国的工业化与城镇化进程的不断推进,一些严峻的环境气候问题也逐渐显露出来。近年来,在京津冀、长江三角洲、珠江三角洲等地区陆续发生了较大范围的严重灰霾天气,成为我国当前面临的主要环境问题之一。同时医学研究显示,长期暴露在大气细颗粒物中,可能导致过早死亡风险升高6%。因此,深入理解大气气溶胶形成机制对认识气溶胶的物理化学行为和预测其气候、生态和环境效应具有重要的意义[3]。目前外场检测大气气溶胶粒子成分的方法包括化学电离质谱和气溶胶质谱等多种分析技术,通过这些分析技术可以直接测量颗粒物的化学组分信息,但难以直接得到分子信息,且对粒径小于3nm的粒子的检测能力偏弱[4]。而且在实际外场大气的检测中,由于大气气溶胶成分十分复杂,气溶胶颗粒在电离过程中又会产生大量次生带电碎片,从而造成质谱信号非常复杂,人工解析检测结果中的质谱峰对应的组分不仅费时费力,而且容易出错,不能满足空气质量评价中“现场测试-在线分析”的需求。1.2设计的目的及意义灰霾是我国北方地区容易产生的一种典型的大气污染现象,是一种由固体颗粒形成的空气污染,其核心物质是空气中悬浮的灰尘颗粒,气象学上称为气溶胶颗粒。灰霾会对人体健康、交通运输和生产生活造成较大的影响。大气气溶胶按照来源可分为两大类,(1)直接排放到空气中的气溶胶粒子,比如海盐粉粒、灰尘(特别是硅酸盐)和烟尘等;(2)由大气中气态分子生成的过饱和气态前驱物经过气-粒转化生成的粒子[5]。研究指出,城市上空存在着大量气态污染物如H2SO4、HNO3、NH3、有机胺等,它们通过分子间相互作用(氢键键合、质子转移等)结合成团簇,是大气气溶胶形成的主要途径之一[6,7]。由于大气气溶胶来源丰富、成因复杂、时空特征多变,所以需要准确的、快速的对当前存在的灰霾污染物的成分和理化特征进行分析,才可能解析灰霾污染来源,并针对性的制定污染防治策略。大气气溶胶颗粒的质谱数据非常复杂,质荷比范围高达数千,包含各种母体峰、碎片峰、同位素峰等,人工解析这些质谱峰对应的组分存在测量结果耗时长、存在准确率低等不足,并且在通过质谱仪分析大气成分时,高精度质谱仪检测生成的质谱数据中显示的同位素谱峰非常明显,相对容易识别。而在低精度的离子阱质谱仪检测生成的质谱数据中的同位素峰则非常不明显甚至存在缺失ADDINEN.CITEADDINEN.CITE.DATA[8],因此为了满足实时检测与在线分析的需求,可以通过寻找离子阱数据中的同位素峰的关系,利用第一同位素与单同位素峰在质量和强度方面的多种约束关系,并据此构造出谱峰的特征向量表示,然后结合人工神经网络、贝叶斯推断、支持向量机等机器学习技术,从质谱数据中的谱峰类别进行学习和预测,从而自动解析大气气溶胶化学组分,确定气溶胶的主要成分。实现对外场大气气溶胶质谱的快速自动指认,为灰霾溯源和治理政策制定提供快速的技术支撑。

2质谱检测原理2.1质谱分析法原理质谱法(Massspectrometry)是一种常见的分析技术方法,其原理是使化学物质电离,并根据质荷比将离子进行排序。简而言之,质谱测量样本中化学物质的质量。质谱法被用于许多不同领域,并也被应用于纯样品以及复杂混合物。质谱图是质谱数据的图像化表现,质谱图为离子信号强度与其质荷比的函数关系的曲线图。样本的元素或同位素特征,颗粒和分子的质量,并阐明分子和其他化合物的化学结构就是依赖其频谱被确定的。在典型的质谱过程中,可以是固体、液体或气体的样品被电离,例如通过用电子轰击样品。这可能会导致一些样品的分子破碎成带电碎片,然后这些离子会因为它们的质荷比的不同而被分离,通常通过加速它们并让它们通过电场或磁场来实现的,因为相同质荷比的离子将产生相同的偏转量,或是通过过滤的方式。然后离子通过能够探测带电粒子的机制被探测到,例如电子倍增器。结果显示为检测到的离子的相对丰度的频谱,成为质荷比的函数。可以通过将已知质量(例如整个分子)与所识别的质量相关联或通过特征性碎裂模式来识别样品中的原子或分子。2.2质谱仪概述1886年,欧根·戈尔德斯坦(EugenGoldstein)在低压下的气体放电中观察到射线,这些射线从阳极并穿过穿孔阴极中的通道,与带负电的阴极射线(从阴极到阳极的方向)的方向相反。戈尔德斯坦称这些带正电的阳极射线为“阳极射线(canalrays)”。威廉·维恩(WilhelmWien)利用强大的电场或磁场使阳极射线偏转的原理,于1899年构建了一个具有垂直电场和磁场的装置,根据它们的电荷质量比(Q/m)将正射线分开。维恩发现,电荷质量比取决于放电管中气体的性质。1919年弗朗西斯·阿斯顿(FrancisWilliamAston)通过对前人工作的总结,制作出了第一台质谱仪,并用其测量了多种同位素,这让他赢得了当年的诺贝尔化学奖。所以质谱仪就是基于质谱分析技术,用来测量质谱的仪器。其基本原理是使检测样本中的成分在离子源中发生电离,生成不同荷质比的带正电荷离子,再经加速电场的作用形成离子束,进入质量分析器。在质量分析器中,利用电场或磁场使不同荷质比的离子在空间上或时间上被分离或是通过过滤的方式被分离,被分离后的离子分别聚焦到侦测器而得到质谱图,从而获得质量与浓度(或分压)相关的图谱。质谱仪主要由进样系统、离子源、质量分析器、检测器以及自动控制数据处理系统、真空系统和供电系统等辅助系统组成,其中离子源、质量分析器、检测器为质谱仪的核心部分。2.3质谱仪的种类常见的质谱仪(MassSpectrometer)按照质量分析器的原理来分,如图2.1所示,可以分为飞行时间质谱仪(TOFMS)、四级杆质谱仪(QMS)、离子阱质谱仪(ITMS)以及傅立叶变换离子回旋共振质谱仪(FTICRMS)。图2.1常见的质谱仪的分类2.3.1飞行时间质谱仪(TOFMS)飞行时间(Time-of-flight)质谱仪,如图2.2所示,其原理是通过离子的飞行时间测量确定离子的质荷比。离子通过已知强度的电场进行加速,并且所有相同电荷的其他离子通过电场后也会获得相同的动能,而离子的速度则取决于质荷比。测量离子随后到达已知距离处的检测器所花费的时间。该时间取决于离子的速度,因此是其质荷比的量度。根据该比率和已知的实验参数,实现了样本的识别检测。飞行时间质谱仪的概念早在1946年就被提来,在上世纪60年代曾得到广泛的应用,但是由于当时的科学技术的限制以及精度较差一直没有很好的发展。直到20世纪80年代末,随着基质辅助激光解吸离子化技术(matrix-assistedlaserdesorptionionization,MALDI)的出现,TOFMS通过与MALDI的联用,使“古老”的飞行时间质谱仪得到了新生,得到了巨大的发展。2010年,随着大气压力接口飞行时间质谱仪(AtmosphericPressureInterfaceTime-of-FlightMassSpectrometer,API-TOF-MS)被设计用于大气气溶胶的测量,大大提升了质谱技术用于大气气溶胶检测的能力。H.Junninen等人报道了将大气压力接口飞行时间质谱仪直接测量大气中的离子的组成,其测量范围达到2000Th,分辨率可以达到3000Th/ThADDINEN.CITEADDINEN.CITE.DATA[9]。API-TOF-MS由于其具有分辨率高、灵敏度高、时间短、且测试范围宽等优势,备受大气化学研究者的青睐。图2.2飞行时间质谱仪示意图2.3.2四极杆质谱仪(QMS)四极杆(Quadrupole)质谱仪,如图2.3所示,是使用四极杆质量选择器作为质量分析器的质谱仪。顾名思义,它由四根圆柱杆组成,彼此平行设置。四极杆质谱仪的发展历史可追溯到上世纪50年代,布鲁克黑文国家实验(BrookhavenNationalLaboratory)的欧内斯·特库兰特(ErnestCourant)等人发现利用两个四极磁场交替压缩质子束,可实现质子束的强聚焦。于是1956年德国物理学家沃尔夫冈·保罗(WolfgangPaul)据此原理提出了利用射频四极电场过滤离子的方法,从而发明了四极杆质量分析器。在四极杆质谱仪中,四极杆是质量分析仪的重要组成部分,负责根据不同的质荷比(m/z)选择样品离子。四级杆的技术核心是选择性离子稳定(massselectedstability),其原理是基于在施加到杆上的振荡电场,使得不同的质荷比的离子轨迹的具有不一样的稳定性,四极杆质量分析器的顺序扫描使得每次仅有一种离子质荷比能够通过,剩余的其他所有离子都将丢失,从而实现离子在四极中分离达,到样本的测量检测的效果。图2.3四极杆质谱仪示意图2.3.3离子阱质谱仪(ITMS)离子阱(IonTrap)质谱仪,如图2.4所示,是一种利用离子阱作为质量分析器的质谱仪,其中常作为质量分析器的是保罗陷阱(Pauliontrap)。保罗陷阱是一种四极离子阱,它使用静态直流(DC)和射频(RF)振荡电场来捕获离子。三重四极离子阱的发明归功于沃尔夫冈·保罗(WolfgangPaul),并且在1989年,因为三重四极离子阱的发明沃尔夫冈·保罗获得了当年的诺贝尔物理学奖。陷阱由两个双曲线金属电极组成,它们的焦点彼此相对,双曲线环电极位于另外两个电极之间,它们形成了一个“陷阱”。离子通过振荡和静电场将这三个电极之间的空间被捕获。离子阱质谱仪中的质量分析器(离子阱)的原理与四极杆质谱仪中的质量分析器(四极杆质量选择器)所利用的原理刚好相反,离子阱质谱仪利用的是离子阱的选择性离子不稳定(massselectedinstability)。带电离子在离开离子源后将进入质量分析器后,所有在所选质量范围内,并且具有选定极性的离子会被储存于捕集阱中。然后大于或小于母离子的质量数会被排出。母离子分离完毕后,母离子的共振激发会引发碰撞并诱导解离(CID)并生成产物离子(a)。,因为荷质比越小的离子所需要的能量越小,所以离子会按照质荷比的大小顺序逐次被排出到检测器(b)中并被记录检测达到选择离子的目的。从而获得质谱图,实现测量检测的效果。图2.4离子阱质谱仪示意图2.3.4傅立叶变换离子回旋共振质谱仪(FTICRMS)傅立叶变换离子回旋共振(Fourier-transformIonCyclotronResonance)质谱仪,如图2.5所示,是通过离子在一个固定磁场中的回旋频率从而确定离子的质荷比(m/z)。早在上世纪50年代初,离子回旋共振质谱仪(IonCyclotronResonanceMassSpectrometer,ICRMS)就被利用于物理化学的研究,在1974年,梅尔文·科米萨罗(MelvinB.Comisarow)和艾伦·马歇尔(AlanG.Marshall)首次将傅立叶变换(FourierTransform,FT)技术运用于ICRMS,发明了傅立叶变换离子回旋共振质谱仪,并发表了第一篇论文发表在化学物理快报上,使得ICRMS得到了长足的发展。FTICRMS中的潘宁阱(具有电捕获板的磁场)会捕获在的离子源中生成的带电离子,离子受到受洛伦兹力的作用产生圆周运动,离子的圆周运动频率与离子的质量成反比,当离子的圆周运动频率与分析室的激发电极上的频率相同,即达到离子的共振回旋加速频率时,离子通过与磁场正交的振荡电场被激励到更大的回旋加速器半径。在去除激发场之后,离子以其回旋加速器频率同相旋转(作为离子的“包”),当离子包的半径增大到接近检测电极时,这些离子包会在一对检测电极感应产生相应的电信号(被检测为电流图像)。产生的信号称为自由感应衰减(FID),瞬态或干涉图,由正弦波的叠加组成,该信号强度与离子的频率有关,但是检测电极上产生的电信号可能是由不同离子在连续时间上产生的叠加信号,所以需要通过利用傅里叶变换将多种离子的混合信号数据中提取有用信号从而实现质谱分析,达到同时鉴别多种离子的目的。图2.5傅立叶变换离子回旋共振质谱仪示意图2.3质谱数据及其输出文件格式样本大气气溶胶粒子通过质谱仪检测后生成相应的质谱数据,其记录了不同质量离子碎片的原始质谱数据。图2.6给出了一个质荷比在100以内的质谱图,图中质荷比为30(NO+)以及质荷比为46(NO2+)的峰都是来自硝酸盐,而质荷比为48(SO+)、质荷比为64(SO2+)、质荷比为80(SO3+)、质荷比为81(HSO3+)以及质荷比为98(H2SO4+)的峰则是来自硫酸盐,源于不同物质的峰还有很多,这里就暂且不表。质谱仪输出文件的使用格式为.JDX,在计算机上表现形式如图2.7所示,图中展示的是一张质谱数据,通常由##TITLE=“样本的化学种类”开始,先介绍谱图信息包括化学种类、化学式、母离子质量与强度、母离子电荷、再以##PEAKTABLE=(XY..XY)说明质谱图中谱峰的质荷比与强度,最后以##END=结束。图2.6气溶胶质谱图图2.7计算机读取的.JDF格式质谱文件

3机器学习3.1机器学习概述机器学习(Machinelearning)是针对计算机系统使用的算法和统计模型的科学研究,这些算法和统计模型不使用明确的程序指令,而是依靠模型和推理来有效地执行特定的任务。机器学习被视为人工智能的一条重要分支,人工智能的研究历史有着一条从“推理”到“知识”再到“学习”的脉络。显然,机器学习也是一条实现人工智能的途径,即以机器学习为手段解决目前人工智能发展中遇到的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、线性代数等多门学科。机器学习的主要理论原理是设计和分析一些能让计算机可以“自我学习”的算法。机器学习算法基于样本数据建立数学模型,样本数据又被称为“训练数据”,以便在没有明确编程执行任务的情况下进行预测或决策。机器学习算法得到了各种各样的应用,例如电子邮件过滤和计算机视觉,在这些应用中,开发执行任务的特定指令的算法是不可行的。数学优化的研究为机器学习的研究提供了方法、理论和应用领域。数据挖掘是机器学习中的一个研究领域,侧重于通过无监督学习进行探索性数据分析。在跨领域问题的应用中,机器学习也被称为预测分析。亚瑟·塞缪尔(ArthurSamuel)在1959年在IBM工作时创造了“机器学习”一词。在机器学习发展的最初时候,其源于对人工智能的追求。在人工智能作为学科的早期阶段,一些研究人员就对机器从数据中学习感到兴趣。他们试图用各种符号方法以及当时被称为“神经网络”的方法来解决问题。这些主要是感知器和其他模型,后来被发现这只是广义线性模型的再创新。然而,越来越强调基于逻辑和知识的方法,导致了人工智能和机器学习之间产生了分裂,机器学习基于的概率系统也受到数据采集、表示理论以及一些实际问题的困扰。到1980年,专家系统已经成为人工智能的主导,统计数据也不再受欢迎。符号/基于知识学习的研发工作也在人工智能的范围内继续进行,这导致归纳逻辑编程的出现,但现在更多的但更多的统计研究现在不在人工智能领域内,而是在模式识别和信息检索方面。大约在同一时间,人工智能和计算机科学已经放弃了神经网络研究,但这神经网络的研究在人工智能/计算机系统(AI/CS)领域之外延续,被霍普菲尔德、鲁梅尔哈特和辛顿等其他学科的研究人员称为“连接主义”。他们的成功的主要原因是在20世纪80年代中期重新定义了反向传播。在上世纪90年代,机器学习作为一个单独的学科领域重组,并开始蓬勃发展。并将目标转变为利用机器学习解决实际可行的问题。它将焦点从人工智能继承的象征性方法转移到了从统计学和概率论中借鉴的方法和模型,并受益于数字化信息的日益普及,以及通过互联网分发信息的能力。在机器学习领域中,根据所处理的数据种类的不同,主要分为两种类型的任务:监督学习以及无监督学习。这两种类型之间的主要区别在于,监督学习的算法是根据包含输入和期望输出的训练数据建立数学模型,换句话说,我们事先知道样本的输出值应该是什么。因此,监督学习的目标是学习一种函数,该函数在给定数据样本和期望输出的情况下,最佳地近似于数据中可观察的输入和输出之间的关系。另一方面,无监督学习的训练数据没有标记输出,因此其目标是推断出一组数据点中存在的自然结构,如数据点的分组或聚类。无监督学习可以发现数据中的模式,并可以将输入分组,如在特征学习中。降维是指减少一组数据中“特征”或输入数量的过程。3.2无监督学习方法无监督学习(Unsupervisedlearning)是一种自组织和对输入的概率密度建模的方法。通过没有给定事先标记过的训练数据,自动对输入的数据进行分类或分群。无监督学习的主要运用包含:分群(ClusterAnalysis)、关系规则(AssociationRule)、维度缩减(DimensionalityReduce)。无监督学习的核心应用是在统计学中的密度估计领域,尽管无监督学习包括涉及总结和解释数据特征的许多其他领域。它可以与监督学习形成鲜明对比,即监督学习旨在推断条件概率分布PX(x|y)以标签为条件输入数据;无监督学习旨在推断先验概率分布PX(x)。3.2.1主成分分析主成分分析(Principalcomponentanalysis,PCA)是一种统计过程,其原理是利用正交变换将可能相关变量的一组观察值(每个实体都采用各种数值)转换为一组称为主成分的线性不相关变量值。这种转换的定义方式是以第一主成分具有尽可能大的方差(即尽可能多地考虑数据的可变性),并且每个后续成分依次在约束下具有最高的方差,并与前面的组分正交。得到的矢量(每个是变量的线性组合)是不相关的正交基组。主成分分析在机器学习内被归类为降维(Dimensionreduction)中特征提取(Featureextraction)的一种方法,而降维的目的就是希望训练数据的维度数减少,但整体的效能不会有太大的差异,例如一个三维图形(特征数为3),我们想将它降低到二维(特征数为2),最容易想到的就是投影到一个平面上,但这个平面不一定恰好就是XOY平面或者其他坐标轴平面,而是一个能尽量接近原始数据信息的平面,如图3.1所示。图3.1PCA降维示意图其中,主成分是数据集中原始要素的归一化线性组合。假设我们从d维向量开始并希望通过向下投影到k维子空间来概括它们,使得新子空间的轴指向数据的最高方差的方向。我们的最终结果是将原始矢量投影到k方向,称为主成分(Principalcomponent,PC)。从图3.2中可以看出,第一主成分(绿色实线)方向具有最大数据方差,并且它还定义了最接近所有n个观测值的直线。第一主成分捕获特征中包含的大部分信息,使得被第一主成分捕获的可变性越大,组分捕获到的信息也越大。图3.2投影示意图第二主成分的方向由图3.3中的蓝色虚线给出。它也是原始特征的线性组合,其捕获数据集中的剩余方差,使得​​第一和第二主分量之间的相关性为零,因此它们的方向彼此正交或垂直。图3.3投影示意图选择正确数量的主成分对于确保PCA有效至关重要。包含n个观察值和d个特征值的数据集拥有min(n-1,d)个不同的主成分。但是我们只需关注前几个足以明显体现原始数据集中变化量的主成分。确定这一点的一种方法是查看累积解释的数据占比,碎石图描述了关于主成分数量与主成分关联的特征值累计占比的函数。图3.4中曲线由陡趋于平坦的转折点表示选择主成分数量的最佳数量。图3.4原始数据在PCA之后的累积解释占比如图3.4所示,前40个主成分包含了超过80%的原始数据,而我们需要大约150个主成分来描述接近100%的原始数据。用线性代数的方法去解释PCA原理可以理解为,给定的矩阵X,其对应n个观测量、d个特征值,以及输入量k,PCA的主要目的是矩阵X分解为成两个较小的矩阵,Z和W,使得X=ZW,其中Z具有尺寸n*k和W的尺寸为k*d(见图3.5)。Z的每一行都是权重。W的每一行则被称为主成分。图3.5PCA分解矩阵X成两个较小的矩阵Z和W同时在PCA中利用下列公式最小化目标函数的平方误差。(3.1)3.3监督学习方法监督学习(SupervisedLearning)是机器学习中的一种方法,通过这种方法可以使用已经标记的训练数据来训练一个函数或模型,该函数或模型根据训练数据的输入-输出对将输入映射到输出,然后将其推广到新示例。在监督学习中,每份训练数据都是由一对输入和期望的输出组成的。输出的结果可以是一个连续的值(这被称为回归分析),或是预测的一个分类标签(这被称为分类)。并且,训练过程需要一位评论员参与,能够指出函数是否正确,然后更改函数以生成正确的结果,最佳的方案将可以通过算法来正确地预测未知实例的类标签,这就要求学习算法通过“合理”的方法从训练数据提取出输入输出之前的关系并推广到未知的情况。经典的监督学习方法包括通过反向传播算法训练的神经网络,但也存在许多其他算法,如支持向量机(SupportVectorMachine,SVM)和贝叶斯网络(BayesianNetwork)。如图3.6中所示,监督学习算法使用标记的数据集来生成模型。然后,将此模型与新数据一起使用来验证模型的准确性,或者使用实时数据将该模型应用于生产环境。图3.6监督学习算法示意图3.3.1支持向量机1963年,弗拉基米尔·万普尼克(VladimirVapnik)和亚历克塞·泽范兰杰斯(AlexeyChervonenkis)发明了一种分类算法,即支持向量机。Vapnik在上世纪90年代改进了这种分类方法,并扩展了其使用范围。支持向量机已成为数据科学家的一个很好的工具。分类是机器学习中的一项常见任务。即假设存在一些给定的数据,并且这些数据各自都属于不同的两个类的其中之一,而分类的目标就是确定新数据将属于哪个类中。在支持向量机中,数据被视为a维向量,并寻找是否存在(a-1)维的超平面()用于将这些点分开,寻找超平面的过程就是线性分类器的工作过程。但是可能会同时存在不同的超平面可以将数据群进行分类,其中,能以最大的间隔距离将两个类分开的超平面就被称为最佳超平面。换言之,就是寻找一个能够让到不同两类中离超平面最近的数据点到超平面的距离最大化的超平面,并称之为最大间隔超平面。如图3.12中所示,H1不能把类别分开。H2可以把类别分开,但只有很小的间隔。H3可以以最大间隔将数据分开。图3.12分类示意图在机器学习中,支持向量机(SupportVectorMachine,SVM)也被称为支持向量网络,其原理是利用算法来寻找最大间隔超平面,从而将数据进行分类或者回归分析。通过给定每个都标记为属于两个类别中的一个或另一个的训练数据,SVM训练算法学习构建一个分类模型,对新数据进行并分配给两个类别中的其中一个,其本质是训练一个非概率二元线性分类器。训练好的模型是将数据集表示为空间上不同的点,并且这样的映射使得不同类别的数据被尽可能宽且明显的间隔分开。然后新数据进入模型后将被映射到相同的空间中,并通过判断新数据点落到的边缘进行类别的预测。除了执行线性分类之外,支持向量机还可以有效地处理非线性分类,并将其输入映射到更高维度的特征空间。综上所述,支持向量机的算法就是实现找到一个像H3一样的超平面,这个超平面能够很好的解决二分类问题。要实现这个功能首先要先找到各个分类中离这个超平面最近的样本点,并最大化这个点到超平面的距离,然后这些点便能够很好地确定一个超平面,又因为这些个点在几何空间中表示的是一个向量,所有这些能够用来确定超平面的向量称为支持向量,如图3.13中所示,虚线上的点就是所谓的支持向量。图3.13支持向量示意图在图3.13中的超平面可以用分类函数表示,并设黑色的数据点标识值y=1,白色的数据点标识值y=-1.当f(x)等于0的时候,x表示在超平面上的点,而的点对应黑色的数据点,的点对应白色的数据点。换言之,在对一个新的数据点x分类时,需要将x代入f(x)中,如果则将x的类别归类为白色数据点的一类,并赋值y=-1,如果则将x的类别归类为黑色数据点的一类,并赋值y=1。我们一般利用函数间隔以及几何间隔找到最佳的超平面。在超平面确定的情况下,能够表示点x到超平面的距离,所以通过观察和标识值y的符号是否一致来判断分类是否正确,即如果,则认为x的分类结果正确,反之亦然。并且,的值越大,分类结果的可行度也就越大,反之同理。定义样本数据点(xi,yi)与超平面(w,b)函数间隔为,但是这样的定义存在一些问题,即同时成倍的缩放w和b,超平面并没有发生变化,但是函数间隔的值f(x)却发生同比例的缩放,所以需要将法向量w的大小固定下来,对w增加约束,所以,这里便引出了样本数据点到超平面定义的真正距离——函数间隔(Functionalmargin)。几何间隔定义为,从函数间隔和几何间隔的定义不难看出:几何间隔就是函数间隔除以,而且函数间隔实际上就是,而几何间隔才是直观上的点到超平面的距离。对于数据点的分类而已,当数据点离超平面的距离越大,则分类结果的确信度(confidence)也就越大。所以,为了尽量提高分类的确信度,需要让所选择的超平面能够最大化到数据点的距离。然而,在超平面被固定之后,成倍地缩放w和b的值,这样会使得函数间隔在超平面保持不变的情况下被取得任意大。但在缩放w和b的时候,几何间隔的值是不会改变的,它只随着超平面的变动而变动,所以,这是更加合适的一个间隔。换言之,这里要找的最大间隔分类超平面中的“间隔”指的是几何间隔[10]。根据几何间隔的定义,所以支持向量机可以表述为求解下列优化问题,3.3.2人工神经网络人工神经网络(Artificialneuralnetwork,ANN),简称神经网络(NeuralNetwork,NN)或称类神经网络,其是由生物的神经网络启发而发明出来的计算系统。神经网络本身并不属于任何算法,而是由许多不同机器学习算法构成的框架,它们协同工作并处理复杂的数据输入。此类系统通过考虑示例来“学习”执行任务,通常不用任何特定任务规则编程。比如在图像识别中,其可能通过分析手动标记为“有猫”或“没有猫”的训练图像数据来学习识别包含猫的图像,并使用训练完成的模型来识别其他图像中有无猫的存在。他们在没有任何关于猫的先验知识的情况下这样做,例如,他们有毛、尾巴、胡须以及猫脸。相反,它们会自动从他们处理的学习数据中生成识别特征。人工神经网络基于称为人工神经元的连接单元或节点的集合,其大致地模拟生物大脑中的神经元。每个连接,如生物大脑中的突触,可以将信号从一个人工神经元传递到另一个人工神经元。接收信号的人工神经元可以处理它,然后发信号通知与之相连的其他人工神经元,如图3.14所示。图3.14人工神经网络与神经元网络在常见的人工神经网络中,人工神经元之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入之和的一些非线性函数来计算。我们把神经元和与之对应的神经元之间的连线用生物学的名称,叫做突触。人工神经元和连接通常具有的权重随着学习的进行而调整。权重增加或减少会决定连接处信号的强度。并且人工神经元可以具有阈值,使得仅在聚合信号超过该阈值时才发送信号。通常,人工神经元聚集成层,不同的层可以对其输入执行不同类型的转换。信号可能在多次遍历各层之后从第一层(输入层)传播到最后一层(输出层)。人工神经网络方法的最初目标是以与人类大脑相同的方式解决问题。然而,随着时间的推移,注意力转移到执行特定任务,导致偏离了生物学的领域。人工神经网络已经用于各种任务,包括计算机视觉,语音识别,机器翻译,社交网络过滤,游戏板和视频游戏以及医学诊断。而训练以及实现一个人工神经网络的过程是一个典型的监督学习的过程。通过足够的标记好的训练数据,可以逐步调整在每个神经元和突触中的偏置值和权重,此过程类似调整一个直线函数(),如图3.15所示。图3.15神经元节点示意图其中,a1~an为输入向量的各个分量;w1~wn为神经元各个突触的权重值;b为偏置;f为传递函数也叫激活函数,通常为非线性函数;t为神经元输出。人工神经网络被给予了大量的训练数据,然后它试图得到与给出的例子相同的答案。当它错了,下一次通过人工神经网络向后传播并调整参数值。这个过程需要大量的训练数据。而实现这个的调整过程也被称为反向传播的过程,如图3.16所示。图3.16一种简单的反向传播算法常见的神经网络一般由三部分组成,包括一个输入层(Inputlayer),神经元接收输入数据。输入的数据被称为输入向量。以及一个输出层(Outputlayer),数据在神经元链接中传输、分析、权衡,形成输出结果。输出的数据被称为输出向量。中间包括若干个隐藏层(Hiddenlayer),是输入层和输出层之间众多神经元和链接组成的各个层面。可以有一层或多层隐藏层,并且隐藏层的节点数可以都各不相同,但节点数越多神经网络的非线性越显著,鲁棒性(robustness)也就更显著,不过一般会习惯上选输入节点1.2至1.5倍的节点。具有2个或更多隐藏层的神经网络(每层包含大量节点)称为深度神经网络,如图3.17所示的神经网络包含一个具有8个节点的输入层,一个具有4个节点的输出层以及每层包含9个节点的3个隐藏层。图3.17深度神经网络上述的那些每个神经元连接到下一层中的每个其他神经元的神经网络结构被称为前馈人工神经网络(MultilayerFeedforwardNetwork)。但是神经网络已经演变出很多种类型,上述的分层结构也并不适用于所有的神经网络。所以创建了递归神经网络(RecurrentNeuralNetworks,RNN)来解决人工神经网络中的缺陷,即不能基于先前的知识做出决策的。典型的人工神经网络已经学会了根据培训中的背景做出决策,但一旦做出决策使用,决策就会相互独立。RNN将状态在自身网络中循环传递,因此可以接受更广泛的时间序列结构输入。这导致了RNN在自然语言处理中非常有用,因为前面的单词或字符在理解另一个单词的上下文时很有用。有很多不同的实现,但其目的总是相同的,即保留我们想保留的信息。我们可以通过具有双向RNN来实现这一点,或者实现一个随每个前馈修改的循环隐藏层,如图3.18所示。图3.18递归神经网络所以总的来说,RNN是在时间上深度的神经网络,而空间上深度的神经网络则是卷积神经网络(ConvolutionalNeuralNetworks,CNN),CNN由输入层、输出层和多个隐藏层组成。CNN的隐藏层通常包括卷积层、线性整流层,即激活函数、池化层、完全连接层和规范化层。这导致层之间的连接看起来有些随意。然而,以它们的方式设置突触的原因是为了帮助减少需要优化的参数的数量。相比较其他深度、前馈神经网络,卷积神经网络需要运算的参数更少,这是通过注意神经元如何连接的某种对称性来完成的,因此基本上可以“重复使用”神经元来拥有相同的副本,而不需要相同数量的突触。CNN通常用于处理图像,因为它们能够识别周围像素中的规律。比如每个像素与周围像素相比时,会包含冗余的信息,而且由于这些像素的对称性,实际上可以压缩其中的一些信息,达到减少运算量,提高训练效率的目的。

4方案选择及实现现有的基于质谱的大气气溶胶粒子成分分析算法各有千秋。我们尝试利用机人工神经网络、主成分分析、支持向量机等机器学习方法对现有的算法进行整合。为了使建立的质谱识别系统具有可扩展性,选取单分类器串联的方法进行分类,这样可以避免在需要识别新的组分时对整个模型进行重新训练。利用Python语言及其Tensorflow和Sklearn库进行程序编制,提高开发速率。原始训练数据来源于美国国家标准技术研究所(NationalInstituteofStandardsandTechnology,NIST)的标准谱数据,整体原理如图4.1所示。图4.1大气气溶胶质谱自动分析原理流程图4.1开发环境搭建4.1.1操作系统本次设计利用Python语言进行程序编制,并且Python的功能的实现需要安装各种对应的库,如本次需要利用到的Tensorflow和Sklearn库。在不同的系统环境下,Python库会有所不同,有些只有针对某个系统的版本,其它系统没有。而Linux系统对Python以及对Python库相对windows系统而言有更好兼容性,并且一般的Linux系统内有的集成好的Python环境便于开发环境的搭建。所以最后选择Ubuntu16.04操作系统作为开发操作系统。Ubuntu是以桌面应用为主的免费和开源的著名Linux发行版之一,它也是当前最多用户的Linux版本,其用户数超过10亿人。Ubuntu系统专注于易用性和国际化,以便能为尽可能多的人所用。早期的Ubuntu系统就已经把万国码(UTF-8Unicode)作为系统默认编码,用以应对各国各地区不同的语言文字,试图给用户提供一个无乱码的交流平台。它在语言支持方面,算是Linux发行版中相当好的。而本次开发环境搭建使用的是16.04版本,因为16.04版本对于独立显卡驱动以及cuDNN、CUDA有着更好的兼容性。4.1.2PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。由吉多·范罗苏姆(GuidovanRossum)创建并于1991年首次发布,Python的设计强调代码可读性和简洁的语法,尤其是使用空格的缩进进行代码块的划分,而非使用相比其他语言经常使用的英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。它的语言结构和面向对象的方法旨在帮助程序员为小型和大型项目编写清晰的逻辑代码。基于大数据分析和深度学习已经无法离开Python的支持,目前世界各类优秀的机器学习框架,例如:谷歌的TransorFlow、Facebook的PyTorch以及神经网络库Karas也是利用python实现的,甚至Microsoft的认知工具包(CNTK)也完全支持Python,并且其旗下的Vscode编译器都已经把Python作为第一级语言。所以最后选择兼容性较好的Python2.7进行程序编制,如图4.2所示。图4.2当前开发环境下安装的Python版本4.1.3TensorFlow利用深度学习从而更快、更便捷地解决所需问题,首先需要的是选择一款深度学习工具。TensorFlow是基于DistBelief进行研发的第二代人工智能学习系统,谷歌于2015年11月9日正式开源,其用于各种感知和语言理解的机器学习任务。TensorFlow并不是一个严格的神经网络库,其采用数据流图(dataflowgraphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即Tensor(张量),而Flow(流)意味着基于数据流图的计算,一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算,即TensorFlow为张量从流图的一端流动到另一端计算过程ADDINEN.CITE<EndNote><Cite><Author>Bouwman</Author><Year>1997</Year><RecNum>1020</RecNum><DisplayText>[5]</DisplayText><record><rec-number>1020</rec-number><foreign-keys><keyapp="EN"db-id="950sxes0o02f22e905w552ted9t5f99t9x09">1020</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>Bouwman,A.F.</author><author>Lee,D.S.</author><author>Asman,W.A.H.</author><author>Dentener,F.J.</author><author>VanderHoek,K.W.</author><author>Olivier,J.G.J.</author></authors></contributors><titles><title>Aglobalhigh-resolutionemissioninventoryforammonia</title><secondary-title>GlobalBiogeochemicalCycles</secondary-title></titles><periodical><full-title>GlobalBiogeochemicalCycles</full-title></periodical><pages>561-587</pages><volume>11</volume><number>4</number><dates><year>1997</year><pub-dates><date>Dec</date></pub-dates></dates><isbn>0886-6236</isbn><accession-num>WOS:A1997YK11800006</accession-num><urls><related-urls><url><GotoISI>://WOS:A1997YK11800006</url><url>/store/10.1029/97GB02266/asset/gbc409.pdf?v=1&t=iywlltt6&s=f9cd5991d967bf0137195c5422a6be6b38301fda</url></related-urls></urls><electronic-resource-num>10.1029/97gb02266</electronic-resource-num></record></Cite></EndNote>[11]。TensorFlow框架可以很好地支持深度学习的各类算法,可以轻松实现深度学习以外的机器学习算法。并且TensorFlow支持CPU和GPU运算。而如何选择进行TensorFlow运算,我们首先需要知道GPU和CPU的区别。CPU需要很强的通用性,为了处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。然而GPU面对的是高度统一的类型、互相无依赖的大规模数据和不需要被打断的计算环境,这就导致CPU和GPU结构上的不同,如图4.3所示。图4.3CPU于GPU结构其中,绿色为计算单元(ArithmeticLogicUnit,ALU);红色为存储单元(cache);黄色为控制单元(control)。从图中我们可以发现CPU芯片组被存储单元占据了大量空间,而且还有复杂的控制逻辑和诸多优化电路,为循序处理进行最佳化。GPU的芯片组则有大量的计算单元,并只有简单的控制逻辑,所以可以发挥平行运算的强大功能。而质谱数据是简单重复的二维数据,所以我们选择采用TensorFlow1.5的GPU版本进行模型训练,如图4.4所示。但是GPU版本的TensorFlow需要通过英伟达(NVIDIA)提供的CUDA和cuDNN才能利用GPU执行深度学习训练,这就是接下来需要介绍到技术。图4.4当前开发环境下安装的Python版本4.1.5CUDACUDA(ComputeUnifiedDeviceArchitecture)是一种由英伟达推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。其本质是并行计算平台和应用程序编程接口(ApplicationProgrammingInterface,API)模型,它允许软件开发人员和软件工程师使用支持CUDA的图形处理单元(GPU)进行通用处理,这种方法称为图形处理单元上的通用计算(General-PurposecomputingonGraphicsProcessingUnits,GPGPU)。4.1.6cuDNN深度神经网络库(cuDNN)是用于深度神经网络的GPU加速原语库。简单的插入式设计可以让开发者专注于设计并训练实现神经网络模型,而不是在硬件性能优化上花太多时间。并且cuDNN还可以实现在GPU上实现高性能的并行计算。CUDA可以看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。但是不同版本的CUDA和cuDNN不一定兼容,所以经过几次摸索和查阅资料后确定了9.0.176版本的CUDA以及7.4.2版本的cuDNN,如图4.5所示。图4.5当前开发环境下安装的CUDA以及cuDNN版本4.2训练数据处理随着质谱检测技术的不断发展,大量的质谱数据图可以在短时间内生成。但由于检测过程中诸多的因素影响,质谱数据图会不可避免的存在多种干扰峰:如化学噪声、物理噪声、不规则碎裂的离子峰等,这些噪声误差会导致鉴定质谱数据在过程中带来不必要的干扰。为了改善这一现象,提高数据准确率,一般会采取过滤方法,比如谱图过滤,或者谱峰过滤。但是,过滤方法可能会导致前期处理时间延长以及数据丢失。所以本次设计直接选择质谱仪直接输出的检测数据结果作为训练数据。但是,训练模型需要大量数据,而大气气溶胶样本收集及质谱检测过程繁琐,并且收集的成分也不丰富,不能满足较高的适用性。所以,采用美国国家标准技术研究所的标准质谱数据作为原始训练数据,然后进行转换,模拟质谱仪输出的数据结果。然而质谱仪直接输出的检测数据结果的波峰会存在明显的波峰宽度,所以需要对标准化质谱数据的波峰进行展宽,同时检测数据结果也会因为各种干扰,存在缺失、偏移等数据误差,所以也需要对标准质谱数据进行随机数据点的丢弃以及随机的偏移。首先要实现的是波峰的展宽,因为标准质谱数据的质谱峰是一条直线,是没有宽度的,但是质谱仪输出的质谱图中的波峰会有明显的波峰宽度。所以我们利用高斯函数(式4.1)的图像的特点,即对称的“钟形曲线”的形状,如图4.6所示,对标准质谱数据中的质谱峰进行展宽。图4.6高斯函数图形(4.1)其中,参数a是控制的图像高度,即曲线峰值,b是控制峰值中心的位置,c(标准偏差,有时称为高斯RMS宽值)控制波峰宽度。代码如图4.7所示。图4.7高斯变换段代码接下来需要实现的是随机的波峰缺失,当波峰强度小于2000时,会在75%的概率下保留,而当波峰强度小于1000时,也会在75%的概率下保留。这就意味着波峰强度在2000到1000的波峰会有25%的机率被丢弃掉,而波峰强度在1000以下的波峰会有大于25%的机率被丢弃掉,代码如图4.8所示。图4.8波峰缺失段代码最后需要实现的是随机的波峰偏移以及随机的波峰强度变换,首先对波峰位置,即对质荷比(m/z)进行随机的增加0到0.25或者减少0到0.25,从而实现波峰的随机偏移。然后波峰强度乘以随机的系数(0.75到1.25),实现波峰强度的随机增加或者减少,代码如图4.9所示。图4.9波峰缺失、波峰强度变换段代码最后利用matplotlib绘图库将原始标准质谱数据的质谱图以及变换后的质谱数据的质谱图绘出进行对比,观察变换效果,代码如图4.10所示,运行结果如图4.11所示。图4.10绘图段代码图4.11质谱图对比在图4.10中,质荷比(m/z)为38、40、41的质谱峰发生了丢失,剩余的整体发生了偏移,并全部波峰发生了展宽,质荷比为30的最高强度质谱峰的波峰强度降低了10%左右,放大图如4.12、图4.13所示。图4.12质谱峰发生了丢失及偏移图4.13波峰强度被随机削弱最后,将每一份转换好的质谱数据随机的组成成为含有1组、2组、3组、4组质谱数据的大量训练数据,这里以生成15000份含有2组质谱数据的代码为例,代码如图4.14所示。图4.14生成训练数据段代码4.3人工神经网络设计虽然质谱数据处理过程中涉及到质谱图,但只是二维质谱数据的可视化结果,本次使用到的训练数据本质上还是大量的二维数据点,所以不涉及任何的图像处理环节也不涉及任何自然语言的处理,也就不需要运用到卷积神经网络以及递归神经网络。所以只需搭建全连接的人工神经网络进行分类模型的训练,因为采用单分类器串联方法,所以这里只需以一个单分类器为例进行介绍,其代码如图4.15所示。图4.15神经网络搭建段代码其中,“self.xs=tf.placeholder(tf.float32,[None,n_components])self.ys=tf.placeholder(tf.float32,[None,2])”定义了输入层维度由PCA数据降维后的维度决定;输出层的输出维度为2,即仅输出是否存在该种成分“activation_function=tf.nn.relu”定义了隐藏层中的节点的激活函数(activationfunction)为线性整流函数(RectifiedLinearUnit,ReLU),见式4.1。ReLU是一种人工神经网络中常用的激活函数,通常代指斜坡函数以及其变种的非线性函数,其类似于电气工程中的半波整流。其中x是神经元节点的输入。(4.1)而在神经网络中,ReLU作为激活函数,定义了节点在线性变换之后的非线性输出结果。换言之,对于来自上一层神经网络的输入向量x,使用线性整流激活函数的节点会输出。因此ReLU被普遍认为有一定的生物学原理,并且在实际运用的过程中比其他常用激活函数(如逻辑函数)有着更好的效果。但不是所有节点都是利用ReLU作为激活函数。输出层则需要通过“activation_function=tf.nn.softmax”来实现定义输出中的节点的激活函数为Softmax函数,见式4.2。(4.2)在机器学习中,softmax函数只能作为输出层节点的激活函数,是因为其能将K维的实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间,同时保证所以的输出节点之和为1,所以输出层输出结果都是小于1的概率值,这样可以很直观地比较各输出值并看成是当前输出是属于各个分类的概率,从而来进行多分类或者选取概率最大的分类作为预测的目标。并且Softmax函数中使用了指数,这样可以让输出值中大的值更大,让小的更小,这样通过增加区分对比度,提高了机器学习效率。接下来需要定义的则是损失函数,我们通过接下来这段代码“self.loss=-tf.reduce_sum(self.ys*tf.log(self.prediction))”来将模型中的损失函数定义为交叉熵。在介绍这个函数的作用之前,我们首先需要知道分类问题和回归问题是监督学习的两大种类:分类问题的目标变量是离散的;回归问题的目标变量是连续的数值。而本次设计训练的是分类模型。为了训练模型,必须先定义衡量模型好与坏的标准。在机器学习中,我们使用loss/cost,即当前模型与理想模型的差距。训练的目的就是不断缩小loss/cost。所以神经网络模型的效果及优化的目标是通过损失函数来定义的。首先需要理解的是熵的概念,熵的本质是香农信息量()的期望。假设现在存在两个样本集的概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量另外一个样本的所需要编码长度的期望(即平均编码长度)为:,换言之,即两个概率分布之间的距离。如果使用给定的分布(当前模型的预测值)来表示来自真实分布(正确的标签)的平均编码长度,则应该是:其中第一个期望为信息熵,反映的是信息量的期望,第二个因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i),H(p,q)我们称之为交叉熵。交叉熵表示的是整个系统的不确定性,熵越大,系统的不确定性就越大,反之亦然。在机器学习中,交叉熵可以作为分类模型的损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p(i)与q(i)的相似性。也就是说,通过最小化交叉熵可以使q(i)逼近真实分布p(i),也就使得预测模型更优。所以在分类算法中,我们需要最小化交叉熵,因为交叉熵越低,就说明由算法所产生的分类策略越接近最优策略,也说明算法得到的非真实分布越接近真实分布。尽管交叉熵刻画的是两个概率分布之间的距离,但是神经网络的输出却不一定是一个概率分布。所以这就利用到输出层的激活函数Softmax,将神经网络前向传播得到的输出结果变成概率分布。最后要设计的就是整个神经网络训练的核心,优化算法的选择。大多数机器学习任务就是最小化损失,在损失函数定义好的情况下,使用一种优化器进行求解最小损失。本次训练选择Adam作为神经网络优化算法,是一个寻找全局最优点的优化算法,并引入了二次方梯度进行校正,代码如下:“self.train_step=tf.train.AdamOptimizer(self.lr_prob).minimize(self.loss)”Adam这个名字来源于自适应矩估计(adaptivemomentestimation,Adam)。Adam算法会根据损失函数对每个参数的梯度的一阶和二阶矩估计从而动态调整每个参数的学习率。Adam也是基于梯度下降的优化方法,其本质上是带有动量项的前向均方根梯度下降算法(RootMeanSquarepropagation,RMSprop),并RMSprop善于处理非平稳目标的优点,使得每次迭代参数的学习率都有一定的范围,不会因为梯度很大而导致学习率(步长)也变得很大,参数的值相对比较稳定。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。相比于基础随机梯度下降优化方法算法(StochasticGradientDescent,SGD),Adam不容易陷于局部优点、速度更快、为不同的参数计算不同的自适应学习率、也适用于大多非凸优化、适用于大数据集和高维空间。所以综上所述,Adam优化算法相比其他优化方法更适合本次设计。目前为止的内容,我们已经介绍了搭建并训练神经网络的必需的代码以及算法原理,程序运行结果以及优化方法见下一章:结果与讨论。

5结果与讨论最后本章将要介绍初次加载训练数据进行模型训练的结果,以及优化方法。5.1初次训练初次训练设置每轮最大训练步数为500步,并训练一共10轮,每一轮显示模型准确率,部分训练结果如图5.1所示。图5.1部分训练结果从图中可以发现,模型准确率明显偏低,但是神经网络的训练具有不确定性,所以再次加载训练数据对模型进行训练。但是多次重复训练并没有明显提高模型准确率,部分训练结果如图5.2所示。所以开始调整训练参数,以求优化模型。图5.2部分重复训练结果5.2初步优化训练5.2.1调整训练次数观察训练损失以及测试损失的下降规律可以发现,神经网络模型并没有训练达到最优,所以尝试增加训练次数。将每轮最大训练步数提高到800步,并训练一共12轮,部分训练结果如图5.3所示。图5.3调整训练次数后部分训练结果从图中可以发现,模型准确率有明显提高,但是后几轮的训练出错,所以考虑降低学习率,以减少出错的可能。5.2.2降低学习率机器学习中的学习率(Learningrate)又被称为步长,其确定新获取的信息在多大程度上覆盖旧信息。而降低学习率虽然会增加训练时间,但是本次设计的算法的运算量不是很大,所以不会明显降低训练时间,而降低学习率却可以提高模型准确率,并减少训练出错的可能。所以将学习率从0.01降低到0.005,部分训练结果如图5.4所示。图5.4降低学习率至0.05后降低学习率后,模型准确率明显提高,但是还是会存在训练出错,所以接下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论