语言是人类最重要的交际工具,是人类进行沟通的主要媒介,而语音是语言的声学表现,让机器可以听懂人的语言并通过语音与人类进行交流是人工智能的一大研究方向,是人类实现人工智能的关键技术之一。这一研究主要涉及两种技术:语音识别和语音合成。近几年随着研究的发展,这两项技术在软件和硬件上都取得了很多突破性的进展,智能语音设备已在日常生活中扮演各种成熟的角色。计算机智能语音技术开始向专业领域发展,其中医疗健康领域是一个重要方向。
随着电子病历技术的发展和逐渐普及,智能语音技术在其中起到了非常关键的作用,如基于语音识别的智能语音录入技术可以帮助医生更加高效书写电子病历,有效解放医生的双手;具有智能语音对话功能的导诊机器人可以将患者的症状描述与后台的诊疗数据库进行对比,为用户提供专业级的医疗咨询、导诊、医学回访等服务,大大减轻了医生的工作压力,提升了医生的工作效率。未来,基于智能语音技术的医疗机器人必将渗透到医疗健康领域的方方面面,成为医生的得力助手。
1)语音识别概述:
想让机器与人类之间进行“对话”,首先要让机器“听懂”人类在说什么,这就是语音识别技术,它可以看作是计算机的听觉系统。声音是以波的形式存在于介质中,这种波在计算机中是以一种离散的时序数据被保存。语音识别的目的就是将这样一段记录着各时间点声音强度的序列(图1-2-1)转换成一段文本序列或指令。为了让机器能够“听懂”人话,科学家们做了很多努力,涉及很多学科的融合,包括人工智能、声学、语言学、信号处理、仿生学等多个领域。
图1-2-1 计算机中存储的声波信号
人类对语音识别的研究开始于计算机发明之前,最早的语音识别器是20世纪20年代生产的一款玩具狗,叫“Radio Rex”,当人们对着它呼喊“Radio Rex”,这只玩具狗就能从底座上跳起来。到了20世纪50年代,基于计算机技术的语音识别研究已经可以实现对一些音节和简单孤立词的识别。AT&T贝尔实验室开发的Audrey系统通过跟踪共振峰的方式,能够识别10个英文数字,准确率达到了98%,这是第一个基于电子计算机的语音识别系统。20世纪60年代,线性预测编码(linear predictive coding,LPC)和动态时间规划(dynamic time warping,DTW)等方法出现,使得人们能够更好地处理不定长度的信号系列。到70年代末期,语音识别对孤立词的识别能力已经达到实用要求。20世纪80年代,基于隐马尔可夫模型(hidden Markov model,HMM)的声学建模和基于n元模型(n-gram)的语言模型,人类对语音识别的研究由模板匹配转向了统计方法,并在其后的很长一段时间主导着语音识别技术的发展。至此,语音识别系统开始向大词汇量、非特定人、连续语音进行挑战。之后,语音识别系统开始快速走向实用化,并开始与其他领域结合。同时,说话人自适应、听觉模型、语言模型等方面的研究也越来越受到人们的关注。到了21世纪初,深度学习技术在语音识别中发挥重要作用,使语音识别的研究获得了突破性进展,通用语音的识别结果正确率从原来的85%迅速提高到96%,这个识别率已经高于人耳。至此,语音识别技术开始走向大规模商业化阶段,并且迅速进入人类生活和生产的方方面面。
2)语音识别基本原理:
一个完整的语音识别系统通常包括信号处理与特征提取、声学模型、语言模型和解码搜索四个模块,如图1-2-2所示。
图1-2-2 语音识别系统流程图
3)语音信号处理和特征提取:
在采集声音的过程中,由于环境和硬件设备等因素的影响,很难获取一段高保真、无噪声的语音。所以通常情况下,一个语音识别系统首先要做的是对输入的语音信号进行预处理。
信号预处理工作主要包含静音切除和音频的分帧。静音切除也叫话音激活检测(voice activity detection,VAD),其原理是将音频信号中的长时间静音片段进行提取、识别和消除,并将截取出的有效的语音片段进行后续处理,从而降低静音片段带来的干扰。音频的分帧是把声音分割成小段,每一段称之为一帧。一般来说,经过分帧后,相邻两帧之间是有重合的,如图1-2-3所示。单帧的长度为25ms、相邻两帧之间有15ms的重合,称为帧长25ms、帧移10ms的分帧。
图1-2-3 音频的分帧
信号处理完之后就是语言信号的特征提取工作,即把音频信号转换成一个个的特征向量,每个特征向量都是用来量化某个特定的声学特征。从音频信号中提取出特征向量的过程就是语音特征提取。在传统语音识别中,人们在对语音信号进行特征提取时通常使用梅尔频率倒谱系数(Mel-frequency cepstral coefficients,MFCCs)特征。MFCCs特征可以理解为是对人耳生理特征的一种量化表示。它把每一帧音频变成一个向量,如果我们假设该向量是 S 维,音频的总帧数为 T ,那么整个音频信号经过转换后就变成了一个 S 行、 T 列的矩阵,我们称之为语音特征向量序列或者观察序列(如图1-2-4所示)每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
图1-2-4 声音的MFCCs特征
在传统的语音识别中,MFCCs起到了非常重要的作用。但随着深度学习技术的介入和发展,人们开始探索通过深度神经网络模型直接学习一个滤波器来取代MFCCs滤波器组,这个技术在很多场景中已经趋于成熟。
4)声学模型:
在经过语音特征提取之后,需要一个模型将这些提取出来的特征和已有的声学符号(音素)进行匹配。这种模型称之为声学模型。在传统的语音识别系统中,声学模型通过统计建模的方式,把输入的语音特征向量序列 X =( x 1 , x 2 ,…, x T )转化成词序列 W =( w 1 , w 2 ,…, w N )并输出,其中,最为著名的就是基于隐马尔可夫模型(HMM)的声学模型。在机器学习兴起之前,基于HMM的声学模型在语音识别中起了非常重要的作用,并在很长一段时间里成为语音识别的主流。HMM可以模拟人说话的过程,可视作一个双重随机过程:一是利用有限状态数的马尔可夫链模拟语音信号统计特性的隐式随机过程,二是与马尔可夫链各状态相关联的观测序列的随机过程。
然而传统声学模型在音频信号的特征提取效率比较低,促进科学家们探索别的解决途径,于是深度神经网络(deep neural network,DNN)出现了。将DNN网络应用于语音识别模型中发现了新问题,那就是音频信号是一个不定长度的时序信号,而DNN模型需要输入的数据大小却是固定的。为了解决这个问题,在深度学习开始应用于语音识别的早期,人们开发出了一些将HMM模型与DNN模型结合起来的混合模型;随后,又将广泛应用于计算机视觉的卷积神经网络(convolutional neural network,CNN)也运用到声学模型的构建中,这些改进都在后续的研究中得到论证并取得相当不错的效果。
在人类的语言中,一个词的发音往往要结合上下文的语境,很多时候还会出现协同发音(coarticulation)现象,这就要求语音识别必须做到能够对上下文进行分析判断。而在深度神经网络中,循环神经网络(RNN),特别是长短时记忆网络(long short-term memory,LSTM)在处理时序数据时有强大的长时建模能力,因此,基于RNN-LSTM框架的语音识别模型应运而生,该模型完美地匹配了这些功能。长期的研究和实践证明,深度神经网络在语音识别中具有独特的优势,在很多领域的应用中已经成为研究的主流。
当然,在目前的语音识别技术中,每种模型都有自己独有的优势,例如,HMM擅长处理可变长度的输入,CNN适合处理可变声道,RNN适合提取上下文语境。因此,将各个模型通过某种方式结合在一起的混合模型是目前声学建模的主要方法,它不仅可以结合各种模型的优点,还能解决特定场景下的问题。
1)语音合成概述:
如果说语音识别是为了让计算机听懂人类的语言,那么语音合成(voice synthesis)则是让计算机能够像人一样说话,它是将任意文本转换成语音的技术。实际上,人类对语音合成的研究要远远早于对语音识别的研究。
早在18到19世纪,科学家就开始研究利用机械装置来模拟人的发声,他们通过设计精巧的气囊和风箱合成出一些原音和单音。20世纪初,贝尔实验室开始了对电子语音合成技术的研究,人们使用电子器件来模拟声音的谐振,并制作出第一个电子语音合成器VODER,开启了近代语音合成技术的道路。之后,语音合成又经历了共振峰合成器阶段、单元挑选合成器阶段以及基于HMM的参数合成阶段,直到近几年,随着深度学习技术的迅速发展,深度神经网络模型开始被广泛应用于语音合成领域,并逐渐取代了传统技术。
随着研究的不断推进,当前语音合成技术在多数场景下发音水平已经接近真人发音,还可实现声音的个性化定制、方言发音等,满足不同应用场景的个性化需求(如各种导航软件的语音包)。现阶段,研究人员关注的重点是如何让合成的语音听起来更加自然和带有情感等问题。
2)波形拼接语音合成法:
波形拼接语音合成是根据所要合成的句子从已有的语音语料库中选择匹配的声音波形片段,并对这些片段进行编辑、数据平滑处理,最后拼接成为完整的一句话。对于一个波形拼接语音合成系统,要完成一套定制化的通用语音语料库的制作,往往需要对录音人进行长达几十个小时的专业录音采集。受此限制,该方法通常只能合成特定语言场景下的有限词汇的语音段,自动报时、交通报站、早期的车载导航等播报系统的语音合成都是采用这种方式。
3)参数语音合成法:
参数语音合成,又称为分析语音合成,其原理是通过分析计算在声音中提取出各种声学参数,并对其进行处理来合成语音。该方法和波形拼接法一样,也需要提前录制语音语料库,并从这些语音中提取出相关的声学参数,然后将这些语音与对应的声学参数组合成一个完整的音库。不同的是,该方法加入了一个韵律模型,用来从文本中提取韵律参数,这使得参数语音合成法相较于波形拼接合成法显得更成熟和专业。
当合成语音的时候,参数语音合成法根据所要合成的文本,从音库中选择合适的声学参数,配合韵律参数,并通过一些特定的算法合成语音。该领域比较成熟的方法是统计参数语音合成方法,“统计”是指这些声学参数由统计模型生成。目前使用最多的统计模型是隐马尔可夫模型。
和上面提到的波形拼接语音合成不同的是,参数语音合成通常只需要10小时左右的记录和采集就可以完成定制语音包的制作。同时,参数语音合成更能适应不同的韵律特征,这让该方法一度成为语音合成领域的主流技术。然而,该方法由于环节过多,参数和算法复杂,在“加工”过程中容易造成信息损失,导致合成的语音音质欠佳,直观的感受就是合成的语音听上去很僵硬,听众轻易就能判断出这种声音是“加工”出来的。
4)端到端语音合成法:
为了解决上述两种语音合成法的弊端,研究人员们逐渐将目光放到了机器学习领域,人们用深度神经网络来建立文本特征和声学特征之间的模型,并取得了极好的效果。深度信念网(deep belief net,DBN)和长短时记忆网络是最早被成功应用于语音合成的两个模型。之后,卷积神经网络也逐渐加入语音合成的行列中。随着技术的发展,又演变出了基于深度学习的端到端的语音合成模型。近几年,随着深度学习的快速发展,一些基于深度神经网络的端到端的语音合成技术逐渐成熟,这样既省去了繁缛的特征提取工程,也免去了文本分析效果对合成结果的不利因素。因此,随后的关于语音合成的工作,大都自然而然地转向了端到端模型的研究。目前市面上常见的手机导航软件便是加载了这种端到端语音合成技术,软件公司邀请特定的人(通常是明星)录取少量关键信息组成语音库,交给机器学习后就会生成完整的语音包供使用者下载,几乎可以达到以假乱真的效果。
自然语言是人类社会独有的智慧结晶。在日常生活中,几乎所有的人类活动都存在着自然语言理解和生成的过程。然而掌握语言系统对于计算机来说却并非易事。即使是拥有精密大脑系统的人类,学会一门语言仍需要多年的训练与实践。自然语言处理(natural language processing,NLP)应运而生,旨在研究能实现人与计算机自然交互、有效通信的各种理论和方法,让计算机读懂人类语言并能通过人类语言给予反馈。
智慧医疗近年来成为一大研究热点,这与自然语言处理的发展有密不可分的关系。国内众多医院目前已经累积了庞大的医疗数据,然而由于医疗数据结构化不足,不同医疗机构之间存在数据壁垒,医疗大数据始终没有得到充分的挖掘和利用。为了减轻医疗人员的工作负担,更高效准确地为病人提供诊断服务,研究人员尝试通过NLP辅助完成医学领域的知识提炼过程,挖掘其中有用的诊疗信息,并统一规范以方便医疗人员及医疗机构之间共享成果。
自然语言处理主要包括语音识别、文本理解、文本生成等方向。其中,语音识别技术在研究目标和方法上和自然语言处理有较大差异,近年来逐渐单列成一个研究领域。本章节将介绍文本理解与生成的发展情况,并重点介绍基于深度学习的相关算法。
从19世纪30年代开始,自然语言处理领域就开始使用人工制定的特殊规则对人类语言进行处理。在19世纪80年代,数据驱动的统计概率方法以及机器学习方法开始受到重视。在深度学习被广泛认可和应用之前,解决NLP问题的机器学习方法主要包括支持向量机(SVM)和逻辑回归。
如果把深度学习架构比作一架火箭,那么数据就是火箭的燃料。随着社会信息化进程的快速发展,人类活动在互联网上产生了大量的数据。同时,业界对于海量数据收集能力也在不断提高。有了充分的燃料,火箭才具备上升的动力。深度学习架构在数据充足的前提下,逐渐展露出优势,在各个领域都有突出的表现。随着硬件技术的进步,计算机的计算与并行能力逐步提升,如今已经达到了人们运用深度学习处理实际问题的标准。算法速度的提升无疑在很大程度上刺激了NLP在市场上的应用,比如机器翻译、对话系统等。
国内近年来开始重视人工智能在各行各业的落地应用,政府相继出台了支持社会信息化、智能化,扶持人工智能初创企业的相关政策。大量AI独角兽企业嗅到商机,其中包括如今在自然语言处理技术方面独树一帜的科大讯飞。腾讯、阿里巴巴、百度也都在智能对话系统上有所部署。在医疗领域,医疗系统智能化显示出必不可挡的趋势,在未来几年内可能会迎来蓬勃发展的小高潮。其中文本理解与生成技术可以在医学文本挖掘、医学决策系统、医学信息提取与分析等方面发挥具体作用。
生物医学文本挖掘可以辅助医疗人员从数量庞大的生物医学文本数据中抽取出实体(比如基因、蛋白质、药物、疾病)以及各实体之间的关系,从而建立起一个完整的生物知识网络,并应用到生物体关系的预测、新药的研制等方面。2020年,武汉发生新型冠状病毒疫情,席卷中国各地。面对突如其来的新型病毒,人工智能在新药筛选的研究工作中也占了一席之地。据《柳叶刀》 2020年2月份最新研究表明,利用人工智能筛选出的某上市药物可能对新型冠状病毒感染有效。可见随着人工智能的成熟,未来医疗行业将更多地借助其加速新药研制和疾病诊断。
医疗决策系统是一种较好的辅助手段,可以指导医务人员的诊疗判断,降低其出错率并提高其工作效率。医疗决策系统的建立一般分为以下三个步骤。
1)知识库的建立:
医学领域有其特殊性,不能使用通用的知识库。因此需要专门针对医学专业词汇、词语常用组合及常见的语句进行建模,建立专用于医学语言处理的知识库。
2)语言处理:
中文相对于英文更加复杂,尤其是在预处理方面,需要考虑更多的情况。一般需要经过分词、分句、语义分析、文本摘要等过程。
3)医疗决策支持系统的生成:
在以上两个步骤的基础上,通过输入的病理描述推理病情,并对病情走向做出判断,帮助医务人员分析病情。
信息抽取是指从文本中抽取出信息,并以结构化的形式储存在库中,以便用户对信息查询使用。人类对信息摄入十分有限,无法掌握海量的医学文献知识。但是借助于信息抽取系统,就可以快速掌握特定的医学信息,比如对某些疑难杂症的治疗方法,从而探索出新的有价值的治疗手段。信息抽取技术在电子病历中也发挥了重要的作用。哥伦比亚大学的Carol Friedman等人设计的MEDLEE系统有效地将病历报告从文本转换成格式化数据,是一个很成功的医学信息抽取系统。
最近几年,基于神经网络的模型算法在多种NLP任务上都达到了优秀的性能。在2011年,Collobert等人的论文首次提出并证明了简单的深度学习框架能够在多种NLP任务上超越传统方法。自此,NLP逐渐成为人工智能领域的一个研究热点。
在2018年,谷歌发表了一篇基于转换器的双向编码表征(bidirectional encoder representations from transformers,BERT)语言模型论文,是深度学习在自然语言领域的一个重大突破。虽然基于长短期记忆网络的模型已经具有强大的性能。但由于它的单向性,计算机仍然不能最大程度地学习到文本中的信息。BERT提出了一种深度双向变换器模型,不仅解决了单向模型的问题,而且刷新了11种NLP任务的指标,在业界引起了巨大的轰动。
以下梳理了NLP领域发展史上重要的模型算法,并着重介绍近年来NLP领域几个典型的深度学习模型算法。
1)传统语言模型:
在一段文本中,通过前一个单词预测下一个单词的任务是语言模型主要解决的问题。语言模型的历史由来已久,经典的方法是基于n元模型(n-gram model)——利用前 n 个单词预测下一个单词。简言之,语言模型就是计算一个句子的概率,这个概率代表这个句子的合理度。
用以下两个句子为例:
句1:“今天我超市买菜,碰到了一个朋友。”Prob=0 7。
句2:“爱因斯坦喝水没有人来到这里。”Prob=0 2。
句子1相对较为通顺,因此得到了相对高的概率值。句子2不通顺,因此得到了较低的概率值。句子的概率值通过词序列出现的概率计算,采用链式法则,即第 n 个词出现的概率取决于前 n -1个词。为了简化,通常会采用 k 阶马尔可夫假设(Markov assumption),即当前词出现的概率取决于前 k 个词。
在神经语言模型出来之前,人们一直采用的是传统语言模型。假设#( w i ,…, w j )表示词序列 w i ,…, w j 在语料中出现的次数。对多个词的概率相乘,就得到了句子的概率。然而传统的基于极大似然估计的语言模型缺少对上下文的泛化能力。比如,语料库中如果出现白衬衫、黑衬衫,而没有出现过蓝衬衫,该语言模型对蓝衬衫的概率估计就会偏低。但是也正因为它的“死板”,在特定的语料库中反而比灵活的模型达到更好的准确度。比如语料库中出现了白马、黑马,那么出现蓝马的概率也会偏低,这反而是我们希望看到的结果。
2)神经语言网络:
为了解决传统语言模型的问题,研究人员提出基于神经网络的语言模型。Bengio等人于2001年提出“前馈神经语言网络(feedforward neural language network)”。随着词嵌入的出现,循环神经网络和长短时记忆网络(LSTM)逐渐取代了前馈神经语言网络。尽管语言模型的核心思想很简单,却为之后各种模型的产生奠定了基础。
3)词嵌入:
大部分监督机器学习模型,都可以归结为此公式: f ( x )→ y 。
假设有一对( x , y )的样本, x 为一个句子中一个词, y 为 x 附近的 k 个词。通过语言模型 f ,判断( x , y )这个样本是否符合自然语言的规则,更通俗点说就是:词语 x 和词语 y 放在一起,是不是一句能为人所理解的句子。word2vec是词嵌入模型的经典之作,它的最终目的不是要训练一个完美准确的语言模型 f ,而是获得模型训练完后的副产物模型参数,即神经网络的权重。通过模型参数,输入的 x 可以输出向量化的数据表示,这个数据表示便叫作词向量。连续词袋模型(continuous bag-ofwords,Cbow)和跳字模型(Skip-Gram)是两种不同的解决方式。它们一个是根据周围的词语预测中心词语,另一个则是根据中心词语预测周围词语,如图1-2-5所示。
图1-2-5 Cbow和Skip-Gram架构
由于神经网络只能接受数值化的输入,因此需要对单词进行数字化表示。可以基于训练数据构建一个词汇表,再对词汇表中的单词进行独热编码(one-hot encoding)。这样每一个单词都能对应一个数值化的向量。
通常的做法是,从训练数据中找出出现频率超过比如5次的单词,将这些单词组成一个词汇表。假设一共抽取了10 000个不重复的单词,可以对这个词汇表中的单词进行one-hot编码。每个单词都是一个10 000维的向量,向量每个维度的值只有0或者1。假如单词apple在词汇表中的出现位置为第3个,那么apple的向量就可以表示为在其第三维度取值为1,其他维都为0的10 000维的向量(apple=[0,0,1,0,0,……,0])。模型的输出同样是一个10 000维度的向量,每一个维度都是一个0到1的概率值,每一个概率代表着当前词是输入样本中输出字(output word)的概率大小。
以Skip-Gram模型为例,假如有一个句子“The present is talking in the public”。
首先选取第一个词“The”作为输入词。有了输入词以后,再定义一个叫作skip_window的参数,它代表着从当前输入词的两侧选取词的数量。假设skip_window参数设为1,那么就得到了(the,present)这对词。接着选取单词“present”,就得到了(present,the)(present,is)两对词。以此类推,得到整个句子的词对。
那么神经网络参数如何训练呢?以talking为例,将形成2组训练数据(talking,is)和(talking,in)。talking的one-hot编码向量输入神经网络后,得到的output也是一个10 000维的向量。这个output通过softmax函数转换成了10 000个概率值,这10 000个概率值的总和为1。以(talking,is)为例,将这个output和is的one-hot编码向量求交叉熵,即损失值。最终的目标是最小化损失函数。通过反向传播(back propagation),使用随机梯度下降法(SGD)进行模型权重的优化,最终得到优化过的模型。Cbow模型与Skip-Gram模型类似,只是训练数据的提取方式有所区别。
词嵌入在自然语言处理领域最大的贡献,并不是训练出的语言模型,而是训练出的词嵌入矩阵。研究发现,用预训练的词嵌入用来初始化模型,可以提高许多下游任务的性能。
4)长短期记忆网络:
2013年,自然语言处理领域正式步入神经网络时代。在处理动态输入序列时,自然而然会想到使用循环神经网络模型。但自从长短时记忆网络(LSTM)出现后,循环神经网络模型很快就被替换掉了。在RNN中,随着网络深度的增加,模型会因为梯度消失和梯度爆炸逐渐忘记前期的数据。而LSTM模型能更好地解决这个问题。
5)序列到序列模型:
序列到序列模型最典型的应用,就是机器翻译。机器翻译目前已经达到了商用标准,多家公司都推出过相关的软件。其中谷歌翻译在业界享有较高的声誉,归功于其较早地用神经机器翻译模型取代基于短语的整句机器翻译模型。2014年,Sutskever等人提出了序列到序列学习。在这个模型中,一个神经网络作为编码器,压缩输入的句子向量;另一个神经网络作为解码器,根据编码器的输出逐个预测出新的序列,并将前一个预测得到的输出符号作为预测下一个输出符号的输入。解码器与编码器可以选用异构的神经网络架构,具有相当的灵活性。模型如图1-2-6所示。
图1-2-6 序列到序列模型
2016年,谷歌宣布他们将用神经机器翻译模型取代基于短语的整句机器翻译模型。也就是说用500行神经网络模型代码达到的效果可以超过50万行基于短语的机器翻译代码。序列到序列(seq2seq)模型不仅提高了机器翻译的准确率,更是在很大程度上简化了代码的开发量。
6)注意力机制:
序列到序列学习有一个缺点,就是需要输入固定大小的向量,这会导致压缩过程中损失一部分信息。众所周知,一个由30个词组成的句子序列与一个由10个词组成的句子序列所携带的信息量是不同的,而注意力机制通过增加有效关键信息的权重,减少序列中的信息损失。如今,注意力机制已经被应用于情感分析、文本理解、图像理解等任务中。注意力机制还有一个附加作用,它可以通过注意力权重来检测出输入位置与特定的输出有关,从而窥探到模型内部的运作机制。
7)预训练的语言模型
语言模型的训练是无监督学习,因此可以使用海量的原始数据。2015年预训练的语言模型首次被提出,最近它被证明能在大量不同类型的任务中发挥作用。BERT是2018年10月的最新技术水平(state of the art)模型,对比之前的预训练模型,它使用了机器翻译模型(transformer),相对循环神经网络(RNN)更加高效,并且能捕捉到更长距离的依赖。
如图1-2-7所示,假如输入第一句“my dog is cute”和第二句“he likes playing”这两个句子。词的输入(token embeddings)部分是对每个单词进行词嵌入向量的转化,其中[sep]是两个句子间的分割符,前半句在句子的输入(segment embeddings)部分编码为 A ,后半句为 B 。为了感知词间的位置关系,模型通过词位置的输入(position embeddings)编码了各个词的位置信息。
图1-2-7 BERT编码信息
尽管BERT性能惊人,但是模型需要大量计算力和冗长的训练时间。用33亿词量的数据集训练一个高性能的BERT Large模型,在8块P100上可能需要1年的时间。自然语言处理发展到现在,虽然在许多任务上达到了较好的性能,但是在应用领域上还是有许多不够成熟的地方。其最关键的原因仍在于研究界与工业界存在的知识壁垒和数据壁垒。不过随着大数据共享时代的来临,可以预见自然语言处理在医疗领域的应用,必然会对智慧医疗的发展带来很大的推进作用。
多模态图像融合概述:图像是人类认识世界、观察事物和获取信息的最直观渠道之一。图像融合技术能够定量和定性地提高图像特征的质量,使得多模态方法相对于单模态方法更加高效和准确。通过某一种特定的算法将不同传感器根据不同成像原理生成的图像进行融合,去除源图像间的冗余信息,并提取源图像间的互补信息,得到一幅信息更精确、丰富和全面的融合图像。
X射线的发现和CT图像的出现,促进了医学图像学的飞速发展,到20世纪80年代中期,不同模态、不同原理的医学图像陆续诞生,促进了图像融合技术在医学图像学上的应用和推广。多模态医学图像融合技术的发展有助于提高医务人员在短时间内做出公正、客观的决策的效率,可有效避免对患者病情的误判和误诊,对临床医学疾病诊断准确率的提高具有重要意义。
目前主流的医学图像主要有计算机断层扫描(computed tomography,CT)、磁共振成像(magnetic resonance imaging,MRI)、正电子发射体层摄影(positron emission tomography,PET)、单光子发射计算机体层摄影(singlephoton emission computed tomography,SPECT)、超声成像(ultrasonography),此外还有其他几种成像方法,如红外、荧光、X射线、微波和显微成像,以及一些复合型成像方法,如正电子发射计算机体层显像仪(PET/CT)、单一光子发射计算机体层摄影(SPECT/CT)等。
多模态图像融合过程一般分为四个阶段:图像预处理、图像配准、图像融合以及融合结果评价,如图1-2-8所示。
图1-2-8 多模态图像融合步骤
由于成像设备功能、性能的不同,以及环境的影响都可以对图像的质量造成一定的差异,常常伴有灰度分布不均匀、遮挡、图像集合位置扭曲等现象。图像预处理是关键一步,该阶段通过对源图像进行噪声过滤、边缘检测和几何校正等方法提高图像质量,为最终融合图像的结果奠定基础。
图像配准与图像融合密不可分,是图像融合的前提条件。实际的医学影像采集过程中,由于位置不同,导致源图像不可避免地出现平移、旋转、尺度伸缩等空间偏差,配准的过程就是消除这些差异,通常涉及对尺度变化、旋转和平移造成的可变性补偿等操作。图像配准可分为特征配准和区域配准。特征配准需先建立源图像的特征模型,通过对某种特征(点特征、线特征)的分析,实现对图像信息的分析。该方法运算效率高,且对图像的差异性有较大包容,适用于复杂情况。基于区域的配准方法通常采用模板匹配,局限性较大,只适用于一些特定器官的图像配准。
图像融合指将多幅已达到精确配准的源图像,通过一定的融合算法,生成一幅新的图像。图像融合阶段保留每幅源图像的显著特征信息的同时,提取不同图像之间的互补信息,克服单一设备图像存在的局限性,为最终的医学诊断提供最确切的信息支撑。
融合结果的评价方式可分为主观评价和客观评价。主观评价指观察者肉眼观察后对图像融合的质量进行评估,根据主观感觉对融合图像质量进行评价,比如融合图像的边缘、轮廓是否清晰,对比度是否降低等。主观评价时,图像质量的好坏程度很大程度上取决于观察者的主观意识(心理状态、喜好和经验等),具有主观和片面性,一般用客观评价来辅助衡量。
下面介绍7种客观评价指标。
熵是衡量融合图像中有用信息的重要指标。
其中, n 为灰度级总数,融合图像的像素灰度分布为 p ={ p (1), p (2),…, p ( i ),…, p ( n )}, p ( i )为灰度值等于 i 的像素数与图像总像素数之比。图像的熵值越高,表示图像所含的信息内容越丰富,融合效果越好。
标准差是衡量图像像素灰度值分布情况的重要指标,表示单个图像的对比度。大小为 M × N 的图像的像素灰度级 I ( i , j )与平均值之间的偏差程度表示为:
标准差越高表示图像的灰度分布越离散,空间细节量越大,图像对比度越高。
空间频率表示图像的清晰度。
其中,RF和CF分别表示空间行频率和空间列频率,
其中,图像大小为 M × N , I ( i , j )表示图像的灰度级。空间频率越大,表示图像分辨率越高。
结构相似性指数是量化图像质量退化的感知度量。
其中, F 为融合图像, I 为输入图像 ,μ F 和 μ I 、σ F 和σ I 分别表示图像 F 和 I 的平均亮度和方差,σ FI 表示图像 F 和 I 的协方差,C 1 和C 2 为常数。结构相似性指数的动态范围为[-1,1],且其值越大表示源图像和融合图像之间的相似性越高、关系越紧密。
基于人类感知的度量在人类视觉系统建模的基础上,尝试计算最大保留对比度和局部显著性,通过对全局质量图进行平均得到该度量。
其中, A 和 B 为源图像, λ A 和 λ B 分别表示A和B的显著性图, Q AF 和 Q BF 分别表示A和B的对比的信息保存值。
互信息是衡量源图像与融合图像之间相关程度的重要指标,也是衡量融合图像包含源图像信息量的重要度量方法,其值随着融合图像中的细节和纹理信息而增加。给定源图像 A 和 B 以及融合图像 F ,互信息可表示为:
其中,
R 为源图像 A 或 B , h R , F ( μ ,ν)表示 R 和 F 的联合灰度直方图, h R ( μ )和 h F (ν)分别表示 R 和 F 的归一化灰度直方图。融合图像的互信息值越高,表示融合图像从源图像中获取的信息越丰富,融合后的图像质量越好。
图像质量指数反映融合图像的质量,可表示为式1-2-10。
其中, μ F 和 μ R 、σ F 和σ R 分别融合图像 F 和源图像 R 的均值和方差。由于融合过程中有两个源图像 A 和 B ,因此最终IQI的值取源图像的平均值:
图像质量指数IQI的动态范围为[-1,1],且其值越接近单位IQI表示融合效果越好。
此外还有很多评价图像融合质量的客观指标,比如:衡量融合图像的保留程度的加权边缘信息保留值、计算边缘检测值的索贝尔算子以及衡量融合图像和源图像相似程度的结构相似度等。
图像融合技术根据信息表征层次的不同,由低到高可分为像素级图像融合、特征级图像融合和决策级图像融合。像素级图像融合是最基础的融合技术,是其他图像融合方法的理论基础。由于像素级图像融合对配准精度要求高以及其在源图像边缘、纹理等细节处理上的优势,受到了广大医学图像融合学者的研究和探索。本文所述的融合算法属于像素级领域。
多模态图像融合技术按融合方法的不同可以分为基于空间域和基于变换域的图像融合。基于空间域的融合方法算法简单、计算复杂度小、效率高、实时性好,但其细节表现力不足,难以分辨图像中的清晰区域和边界特征;基于变换域的图像融合算法计算复杂度高,但对于图像的细节保留度高,与人类视觉感知具有良好的一致性,图像的显著特征能更好地表达。在对图像精度要求高的医学领域,常使用基于变换域的图像融合方法。
由于融合图像的多样性,不可能设计出一种适用于所有图像融合任务的通用方法,但是大部分的图像融合方法可以归纳为三个主要阶段:图像变换、融合变换系数和逆变换。最经典的变换域融合方法是基于多尺度变换(multi-scale transform,MST)理论的图像融合方法,图像融合框架如图1-2-9所示。其基本原理是,使用多尺度分解方法获得输入图像的多尺度表示,并根据特定的融合规则对不同图像的多尺度表示进行融合,得到融合后的多尺度表示,最后对融合后的图像进行多尺度逆变换,得到融合后的图像。其核心问题是多尺度分解方法的选择,以及用于多尺度表示的融合策略的选择。
图1-2-9 基于多尺度变换的多模态图像融合框架
在多模态图像融合技术中,最常用的多尺度分解方法是金字塔分解和小波变换,如拉普拉斯金字塔(Laplacian pyramid,LP)、离散小波变换(discrete wavelet transform,DWT)和双树复小波变换(dual-tree complex wavelet transform,DTCWT),但小波变换方法的一个共同局限是不能很好地表示图像中的曲线和边缘。轮廓波和剪切波等多尺度几何分析工具的应用,可以准确地表示图像中的空间结构。轮廓波是一种能够捕捉图像固有几何结构的曲线变换,是处理二维信号的较好方法,但由于轮廓波在转换过程中包含下采样过程,故其不具备移位不变属性。基于非下采样轮廓波变换(non-subsampled contourlet transform,NSCT)的方法可以解决这个问题,但需要花费更多的时间。此外,轮廓波中使用的方向滤波器组是固定的,故不能很好地表示具有多个不同方向的复杂空间结构。与轮廓波相比,剪切波具有更高的计算效率,并且对剪切方向的数量和支撑的尺寸没有限制。
为了提高融合质量,选择有效的融合策略至关重要。融合策略中最关键的问题之一是计算权重图,权重图集成了来自不同源的像素活动信息。在大多数现有的融合方法中,该目标通过活跃度测量和权重分配两个步骤来实现。然而,由于噪声、误配准和源图像像素强度之间的差异等因素,常常导致活跃度测量和权重分配方法通常不是很稳健。为了提高融合性能,很多学者提出了很多复杂的系数分解方法和精细的权重分配策略。然而,设计一个能够综合考虑融合的所有关键问题的理想活跃度测量或权重分配策略实际上并非易事,且两个步骤单独设计,导致很多融合方法之间没有很强关联性,极大地限制了算法性能。
卷积神经网络(convolutional neural network,CNN)是深度学习的代表算法之一,可通过学习网络参数以最佳方式共同实现活跃度测量和权重分配,以克服现有融合方法所面临的上述困难,设计稳健的活跃度测量和权重分配策略。
在图像分类问题中,CNN是一个端到端框架体系结构,其中输入为源图像,输出为标签向量,表示每个类别的概率。在这两个端点之间,网络包含卷积层、池化层和全连接层。深度CNN由交替连接的卷积层和池化层以及全连接层组成。在图像融合系统中,卷积层和池化层通常被看作特征提取部分,存在于输出端的全连接层被看作分类部分。因此,利用CNN进行图像融合在理论上是可行的。具体来说,在基于CNN的多模态图像融合模型中,活跃度测量被称为特征提取任务,而权重分配问题类似于分类任务。
在CNN模型中,通过训练获得从源图像到权重图的直接映射,源图像同时进行特征提取和分类,学习的结果在一定程度上可以看成是最优解,比传统方法更具潜力。CNN的主要优势还在于它的深层架构,可以在多个抽象层提取有识别力的特征,特别是在网格状拓扑中。CNN权值共享策略可定位相似特征在图像中存在关联的位置,且降低了复杂度,用卷积代替乘法,减少了权重的数量。
在文献中,Liu等人提出了一种专门用于医学图像融合的深度学习策略,采用金字塔多尺度变换方法,使融合过程更符合人类视觉感知。此外,采用基于局部相似性度量的融合策略,对源图像的分解系数进行自适应调整。融合算法采用Siamese结构生成从源图像到包含完整像素活动信息的权重图的直接映射。其中,源图像分别输入到Siamese卷积网络的两个有相同的体系结构和权值的分支,每个分支由三个卷积层和一个最大池化层组成,然后通过级联方式融合两分支的特征映射,最后再通过两个全连接层。
文献中所提出的医学图像融合算法可以概括为以下四个步骤。
步骤1:生成基于CNN的权重图
将两个源图像 A 和 B 分别输入卷积网络的两个分支,生成权重图 W 。
步骤2:金字塔分解
将每个源图像分解成拉普拉斯金字塔。设L{ A } l 和L{ B } l 分别表示 A 和 B 的金字塔,其中 l 表示第 l 级分解。将权重图 W 分解为高斯金字塔G{ W } l 。每个金字塔的总分解级别最大值设置为 log 2 min( H , W ) ,其中 H × W 表示源图像的空间大小, · 表示向下取整操作。
步骤3:系数融合
对于每个分解级别 l ,分别计算 L { A } l 和 L { B } l 的局部能量图(小窗口内系数平方和)。
用于融合模式确定的相似性度量计算为:
该度量范围为[-1,1],且其值越靠近1表示相似性越高。设置阈值 t 来确定要使用的融合模式。若 M l ( x , y )≥ t ,则采用基于权重图 W 的加权平均融合方式:
若 M l ( x , y )< t ,通过比较式 中的局部能量选择融合方式:
融合策略可以总结为的一个整体,如下式所示:
步骤4:拉普拉斯金字塔重建
从拉普拉斯金字塔L{F} l 重建融合图像 F 。
文中为验证所提算法的有效性,将对医学图像进行实验,并采用医学图像融合中常用的五个客观融合指标进行定量评价,分别是融合图像的信息熵(En)、特征互信息(FMI)、基于Xydeas-Petrovic的梯度度量 Q G 、基于Piella-Heijmans的相似性度量 Q E 和视觉信息保真度融合度量(VIFF)。这些指标的得分越高,表示融合性能越好。
此外,文中对比分析了三种最新的医学图像融合算法,分别是基于相位一致性和方向对比度的非下采样轮廓波变换(NSCT-PCDC)方法、基于稀疏表示的同时正交匹配跟踪(SP-SOMP)方法和基于引导滤波(GF)的方法。实验中,所提融合方法通过不同设置对比视觉体验和客观指标,将阈值 t 的参数设置为0 6,其他三种融合算法的参数分别设置为其默认值。
文中仿真分析了三对多模态医学图像的不同方法的融合结果。可以看出,NSCT-PCDC方法可以从源图像中提取足够的空间细节,但是融合图像中存在不期望出现的伪影,一定程度上降低了视觉感知;SR-SOMP方法可以很好地防止视觉伪影出现,但往往会丢失源图像中包含的能量,导致融合图像中某些区域的亮度和对比度降低;GF方法的主要缺陷是其保留细节的能力有限,可以观察到融合图像中源图像的许多小细节是模糊的;所提算法在细节和能量保存方面都很好,且不会引入视觉伪像。
此外,文献中还列出了不同融合方法的客观评价指标结果,每个评价指标值为超过8对源图像的平均得分。可以发现,所提算法除了 Q G 外,所有指标都优于其他三种方法,所提算法在 Q G 上的表现仅次于GF算法,优势明显。
文章的最后还计算了融合方法的计算效率,结果表明所提算法通过GPU计算加速的C++版本用时不到0 1秒完成融合,展示了该算法的实际应用潜力,可用于实时医疗辅助系统中的多模态图像融合中。
目前医学图像融合算法的方法论创新还比较有限,在医学领域训练CNN也存在诸多挑战,主要原因是训练数据注释量大,专家注释昂贵,难以满足。迁移学习通过有效地将知识从源域传输到目标域,而不依赖于非常大的数据集,从而解决训练数据注释量大的问题。迁移学习属于机器学习的一种,将成熟的知识应用到其他的场景中,且训练过程不需要随机初始化,用预先训练参数可以加快学习过程。
文献中介绍了一种基于非下采样剪切波变换(non-subsampling shearlet transform,NSST)和卷积神经网络的CT和MRI医学图像融合方法,通过从自然数据中学习的预训练架构初始化卷积神经网络,以一种迁移学习的方式用医学图像训练CNN模型,算法流程图如图1-2-10所示。融合过程分三步进行:首先,利用NSST进行尺度分解和方向分解,将输入图像分解为低频子带和高频子带;然后,通过应用局部能量融合规则来组合低频系数,同时将高频子带馈送到CNN提取部分,提取相似的特征图,并且计算加权归一化互相关以融合各个子带;最后,针对融合系数执行NSST的逆变换,获得融合后的图像。
图1-2-10 文献中图像融合算法框图
文中将多模态融合任务建模为一个相似性度量学习问题,融合过程的活跃度是相对于相似性度量来执行的。CNN的整体架构采用完全卷积的Siamese结构。完全卷积的体系结构中,卷积层和最大池化层构成特征提取部分,决策层为相似性度量学习部分;Siamese结构中,相同权重的两个分支解释了输入子带的相同活跃度测量。对于每个分支,将一个剪切波系数的图像块输入到拥有64个大小为3×3的滤波器的第一个卷积层(C 1 )(为了不丢失剪切波的负值系数,所有卷积层都不进行线性整流函数激活),得到64个特征图,再由大小为2×2的最大池化层(M 1 )下采样(步长设置为2,增加输入畸变的不变性);第二个卷积层(C 2 )有128个大小为3×3×64的过滤器,最大池化层(M 2 )的大小为2×2,步长为2,使卷积输出对剪切波变换产生的局部平移更加健壮;最后一层为包含256个大小为3×3×128的滤波器的卷积层和大小为2×2、步长为2的最大池化层。与CNN串联的部分处理相似性度量学习。根据特征之间的相似性度量进行迁移学习,目的是学习特征之间的映射。在度量学习过程中,相似性度量评分被馈送到逻辑损失层,该逻辑损失层用作优化网络参数的目标函数,并利用随机梯度下降法使损失函数的最小化。
文中分别从两个角度对所提算法进行了实验对比。第一个实验对比了深度学习与变换域的浅层学习的优势,将所提算法与三种融合技术进行了比较,分别是:具有神经模糊的非下采样剪切波(NSST-NF)、剪切波域中的脉冲神经网络(NSSTSNN)和剪切波系数的脉冲耦合神经网络(NSSTMAX-SF-PCNN)。文中对预注册的CT和MRI图像进行了多次实验。视觉结果显示,与其他方案相比,所提方案在边界和平滑过渡区域拥有更好的质量。此外,一些客观评价也支持了视觉感知评估结果,文中列出了两个数据集在不同融合方法下的性能测量,可以看出所提算法与NSST-SNN和NSSTMAX-SF-PCNN方法相比,MI、SF和IQI指标得到了改进,且在对间隙较大的第二幅图像进行融合时,得到了最佳的STD,表明所提算法拥有更好的对比度。实验所用训练和测试数据集来源于哈佛医学院发布的包含注册CT和MRI图像的大脑图像数据集。
为了进一步评估所提算法的性能,第二个实验将所提算法与预训练好的CNN融合方法(CNNMF)进行比较。文中显示了六个预注册CT和MRI图像的视觉融合结果,可以看见所提算法的融合图像包含更多的边缘信息,说明迁移学习增强了融合结果的影响。此外,通过评估指标结果可以看出,所提方法拥有较高的SSIM值,说明相似性学习增强了CNN对融合过程的影响;MI值说明所提算法图像融合结果保留了更多信息; Q CB 说明所提算法在视觉人类感知方面提供了最佳的融合性能,符合视觉实验仿真结果。
视觉分析和客观评估证明,文献中所提出的深层架构在主观和客观评估方面提供了最先进的性能。但所提方法的平均运行速度较慢,复杂度较传统方法高,耗时较长,不适合用于实时辅助诊断系统。此外,迁移学习需要更多的医学实况数据,且转移学习对剪切域医学成像和相似性学习对融合过程都有一定的影响。
医学融合方法的设计既需要医学领域的知识,又需要算法的洞察力。目前医学图像融合算法的方法论创新还比较有限,大部分医学图像融合算法都是来源于已有的图像融合研究,具有挑战性的任务仍然是针对特定临床问题的特征处理、特征提取和决策算法的正确组合。
除了融合方法外,融合方法性能的客观评价也是一个具有挑战性的难题。这些融合质量指标一般分为两大类:第一类基于人类视觉的感知功能,侧重于更精确地测量参考图像与融合图像之间的差值;第二类侧重于测量融合图像中出现的互补信息(包括互补的空间结构、全局对比度等)和视觉伪影(包括边缘、颜色伪影等)。此外,在不同的应用中,选择最优的融合质量指标还应考虑实际应用的需要。由于图像噪声、图像间分辨率的差异等原因,在图像融合和目标融合性能评价方面仍存在许多挑战。