导航:首页 > 源码编译 > 对话系统算法训练

对话系统算法训练

发布时间:2022-07-26 20:29:09

‘壹’ 英语口语人机对话系统操作应用的技巧

想提高英语口语水平,首先要在语音上下功夫,方法是无法取代刻苦的学习。
要大量的阅读和听力做基础,在读和听的过程中,积累词汇,掌握句型,并熟悉英语表达思想的方式,着重培养语感
1.大声朗读对话和文章,还有各种句型和口语中常用的句子,并背诵文章及演讲。多与别人练习对话,最好是以英语为母语的人练习。也可以自言自语亦是练习口语。
2.练习口语要大胆说出来,过一段时间后,突然有一天你会自如、清楚地表达自己的思想。有了大胆说的精神,你才能闯过口语的难关。
3.只会学英语,而不能尽快地去用,那就永远也学不好英语。要始终寻找机会说英语。可以和你周围的同学或朋友交流,即巩固了已学的和 从别人那里学到新的的东西。
4.在国内学英语缺乏环境,看电影学英语口语是弥补环境不足的好方法。

‘贰’ 使用Transformer来实现一个对话系统,如何判定用户当前的交流的内容是否离题

随着大数据技术和深度学习技术的发展,创造一个智能人机对话系统作为我们的个人助理或聊天伙伴,变得越来越现实.根据对话系统应用领域的不同,一般可分为两类:任务型对话

‘叁’ 求论文(语音识别)

与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门交叉学科。近二十年来,语音识别技术取得显着进步,开始从实验室走向市场。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。
语音识别听写机在一些领域的应用被美国新闻界评为1997年计算机发展十件大事之一。很多专家都认为语音识别技术是2000年至2010年间信息技术领域十大重要的科技发展技术之一。
语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。 任务分类和应用 根据识别的对象不同,语音识别任务大体可分为3类,即孤立词识别(isolated word recognition),关键词识别(或称关键词检出,keyword spotting)和连续语音识别。其中,孤立词识别 的任务是识别事先已知的孤立的词,如“开机”、“关机”等;连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话;连续语音流中的关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现,如在一段话中检测“计算机”、“世界”这两个词。
根据针对的发音人,可以把语音识别技术分为特定人语音识别和非特定人语音识别,前者只能识别一个或几个人的语音,而后者则可以被任何人使用。显然,非特定人语音识别系统更符合实际需要,但它要比针对特定人的识别困难得多。
另外,根据语音设备和通道,可以分为桌面(PC)语音识别、电话语音识别和嵌入式设备(手机、PDA等)语音识别。不同的采集通道会使人的发音的声学特性发生变形,因此需要构造各自的识别系统。
语音识别的应用领域非常广泛,常见的应用系统有:语音输入系统,相对于键盘输入方法,它更符合人的日常习惯,也更自然、更高效;语音控制系统,即用语音来控制设备的运行,相对于手动控制来说更加快捷、方便,可以用在诸如工业控制、语音拨号系统、智能家电、声控智能玩具等许多领域;智能对话查询系统,根据客户的语音进行操作,为用户提供自然、友好的数据库检索服务,例如家庭服务、宾馆服务、旅行社服务系统、订票系统、医疗服务、银行服务、股票查询服务等等。 前端前端处理是指在特征提取之前,先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它滤波器。处理声学特征 声学特征的提取与选择是语音识别的一个重要环节。声学特征的提取既是一个信息大幅度压缩的过程,也是一个信号解卷过程,目的是使模式划分器能更好地划分。由于语音信号的时变特性,特征提取必须在一小段语音信号上进行,也即进行短时分析。这一段被认为是平稳的分析区间称之为帧,帧与帧之间的偏移通常取帧长的1/2或1/3。通常要对信号进行预加重以提升高频,对信号加窗以避免短时语音段边缘的影响。常用的一些声学特征* 线性预测系数LPC:线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而n 时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小LMS,即可得到线性预测系数LPC。对 LPC的计算方法有自相关法(德宾Durbin法)、协方差法、格型法等等。计算上的快速有效保证了这一声学特征的广泛使用。与LPC这种预测参数模型类似的声学特征还有线谱对LSP、反射系数等等。
* 倒谱系数CEP:利用同态处理方法,对语音信号求离散傅立叶变换DFT后取对数,再求反变换iDFT就可得到倒谱系数。对LPC倒谱(LPCCEP),在获得滤波器的线性预测系数后,可以用一个递推公式计算得出。实验表明,使用倒谱可以提高特征参数的稳定性。
* Mel倒谱系数MFCC和感知线性预测PLP:不同于LPC等通过对人的发声机理的研究而得到的声学特征,Mel倒谱系数MFCC和感知线性预测 PLP是受人的听觉系统研究成果推动而导出的声学特征。对人的听觉机理的研究发现,当两个频率相近的音调同时发出时,人只能听到一个音调。临界带宽指的就是这样一种令人的主观感觉发生突变的带宽边界,当两个音调的频率差小于临界带宽时,人就会把两个音调听成一个,这称之为屏蔽效应。Mel刻度是对这一临界带宽的度量方法之一。
MFCC的计算首先用FFT将时域信号转化成频域,之后对其对数能量谱用依照Mel刻度分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换DCT,取前N个系数。PLP仍用德宾法去计算LPC参数,但在计算自相关参数时用的也是对听觉激励的对数能量谱进行DCT的方法。声学模型语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对应于语音到音节概率的计算和音节到字概率的计算。本节和下一节分别介绍声学模型和语言模型方面的技术。
HMM声学建模:马尔可夫模型的概念是一个离散时域有限状态自动机,隐马尔可夫模型HMM是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值只与当前状态(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。HMM的打分、解码和训练相应的算法是前向算法、Viterbi算法和前向后向算法。
语音识别中使用HMM通常是用从左向右单向、带自环、带跨越的拓扑结构来对识别基元建模,一个音素就是一个三至五状态的HMM,一个词就是构成词的多个音素的HMM串行起来构成的HMM,而连续语音识别的整个模型就是词和静音组合起来的HMM。上下文相关建模:协同发音,指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异。上下文相关建模方法在建模时考虑了这一影响,从而使模型能更准确地描述语音,只考虑前一音的影响的称为Bi- Phone,考虑前一音和后一音的影响的称为Tri-Phone。
英语的上下文相关建模通常以音素为基元,由于有些音素对其后音素的影响是相似的,因而可以通过音素解码状态的聚类进行模型参数的共享。聚类的结果称为senone。决策树用来实现高效的triphone对senone的对应,通过回答一系列前后音所属类别(元/辅音、清/浊音等等)的问题,最终确定其HMM状态应使用哪个senone。分类回归树CART模型用以进行词到音素的发音标注。 语言模型语言模型主要分为规则模型和统计模型两种。统计语言模型是用概率统计的方法来揭示语言单位内在的统计规律,其中N-Gram简单有效,被广泛使用。
N-Gram:该模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
语言模型的性能通常用交叉熵和复杂度(Perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的N元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率值。通常使用的平滑技术有图灵估计、删除插值平滑、Katz平滑和Kneser-Ney平滑。 搜索连续语音识别中的搜索,就是寻找一个词模型序列以描述输入语音信号,从而得到词解码序列。搜索所依据的是对公式中的声学模型打分和语言模型打分。在实际使用中,往往要依据经验给语言模型加上一个高权重,并设置一个长词惩罚分数。
Viterbi:基于动态规划的Viterbi算法在每个时间点上的各个状态,计算解码状态序列对观察序列的后验概率,保留概率最大的路径,并在每个节点记录下相应的状态信息以便最后反向获取词解码序列。Viterbi算法在不丧失最优解的条件下,同时解决了连续语音识别中HMM模型状态序列与声学观察序列的非线性时间对准、词边界检测和词的识别,从而使这一算法成为语音识别搜索的基本策略。
由于语音识别对当前时间点之后的情况无法预测,基于目标函数的启发式剪枝难以应用。由于Viterbi算法的时齐特性,同一时刻的各条路径对应于同样的观察序列,因而具有可比性,束Beam搜索在每一时刻只保留概率最大的前若干条路径,大幅度的剪枝提高了搜索的效率。这一时齐Viterbi- Beam算法是当前语音识别搜索中最有效的算法。 N-best搜索和多遍搜索:为在搜索中利用各种知识源,通常要进行多遍搜索,第一遍使用代价低的知识源,产生一个候选列表或词候选网格,在此基础上进行使用代价高的知识源的第二遍搜索得到最佳路径。此前介绍的知识源有声学模型、语言模型和音标词典,这些可以用于第一遍搜索。为实现更高级的语音识别或口语理解,往往要利用一些代价更高的知识源,如4阶或5阶的N-Gram、4阶或更高的上下文相关模型、词间相关模型、分段模型或语法分析,进行重新打分。最新的实时大词表连续语音识别系统许多都使用这种多遍搜索策略。
N-best搜索产生一个候选列表,在每个节点要保留N条最好的路径,会使计算复杂度增加到N倍。简化的做法是只保留每个节点的若干词候选,但可能丢失次优候选。一个折衷办法是只考虑两个词长的路径,保留k条。词候选网格以一种更紧凑的方式给出多候选,对N-best搜索算法作相应改动后可以得到生成候选网格的算法。
前向后向搜索算法是一个应用多遍搜索的例子。当应用简单知识源进行了前向的Viterbi搜索后,搜索过程中得到的前向概率恰恰可以用在后向搜索的目标函数的计算中,因而可以使用启发式的A算法进行后向搜索,经济地搜索出N条候选。 系统实现 语音识别系统选择识别基元的要求是,有准确的定义,能得到足够数据进行训练,具有一般性。英语通常采用上下文相关的音素建模,汉语的协同发音不如英语严重,可以采用音节建模。系统所需的训练数据大小与模型复杂度有关。模型设计得过于复杂以至于超出了所提供的训练数据的能力,会使得性能急剧下降。
听写机:大词汇量、非特定人、连续语音识别系统通常称为听写机。其架构就是建立在前述声学模型和语言模型基础上的HMM拓扑结构。训练时对每个基元用前向后向算法获得模型参数,识别时,将基元串接成词,词间加上静音模型并引入语言模型作为词间转移概率,形成循环结构,用Viterbi算法进行解码。针对汉语易于分割的特点,先进行分割再对每一段进行解码,是用以提高效率的一个简化方法。
对话系统:用于实现人机口语对话的系统称为对话系统。受目前技术所限,对话系统往往是面向一个狭窄领域、词汇量有限的系统,其题材有旅游查询、订票、数据库检索等等。其前端是一个语音识别器,识别产生的N-best候选或词候选网格,由语法分析器进行分析获取语义信息,再由对话管理器确定应答信息,由语音合成器输出。由于目前的系统往往词汇量有限,也可以用提取关键词的方法来获取语义信息。 自适应与强健性 语音识别系统的性能受许多因素的影响,包括不同的说话人、说话方式、环境噪音、传输信道等等。提高系统鲁棒性,是要提高系统克服这些因素影响的能力,使系统在不同的应用环境、条件下性能稳定;自适应的目的,是根据不同的影响来源,自动地、有针对性地对系统进行调整,在使用中逐步提高性能。以下对影响系统性能的不同因素分别介绍解决办法。
解决办法按针对语音特征的方法(以下称特征方法)和模型调整的方法(以下称模型方法)分为两类。前者需要寻找更好的、高鲁棒性的特征参数,或是在现有的特征参数基础上,加入一些特定的处理方法。后者是利用少量的自适应语料来修正或变换原有的说话人无关(SI)模型,从而使其成为说话人自适应(SA)模型。
说话人自适应的特征方法有说话人规一化和说话人子空间法,模型方法有贝叶斯方法、变换法和模型合并法。
语音系统中的噪声,包括环境噪声和录音过程加入的电子噪声。提高系统鲁棒性的特征方法包括语音增强和寻找对噪声干扰不敏感的特征,模型方法有并行模型组合PMC方法和在训练中人为加入噪声。信道畸变包括录音时话筒的距离、使用不同灵敏度的话筒、不同增益的前置放大和不同的滤波器设计等等。特征方法有从倒谱矢量中减去其长时平均值和RASTA滤波,模型方法有倒谱平移。 微软语音识别引擎 微软在office和vista中都应用了自己开发的语音识别引擎,微软语音识别引擎的使用是完全免费的,所以产生了许多基于微软语音识别引擎开发的语音识别应用软件,例如《语音游戏大师》《语音控制专家》《芝麻开门》等等软件。 语音识别系统的性能指标 语音识别系统的性能指标主要有四项。①词汇表范围:这是指机器能识别的单词或词组的范围,如不作任何限制,则可认为词汇表范围是无限的。②说话人限制:是仅能识别指定发话者的语音,还是对任何发话人的语音都能识别。③训练要求:使用前要不要训练,即是否让机器先“听”一下给定的语音,以及训练次数的多少。④正确识别率:平均正确识别的百分数,它与前面三个指标有关。
小结
以上介绍了实现语音识别系统的各个方面的技术。这些技术在实际使用中达到了较好的效果,但如何克服影响语音的各种因素还需要更深入地分析。目前听写机系统还不能完全实用化以取代键盘的输入,但识别技术的成熟同时推动了更高层次的语音理解技术的研究。由于英语与汉语有着不同的特点,针对英语提出的技术在汉语中如何使用也是一个重要的研究课题,而四声等汉语本身特有的问题也有待解决。

‘肆’ 如何利用深度学习技术训练聊天机器人语言模型

数据预处理

模型能聊的内容也取决于选取的语料。如果已经具备了原始聊天数据,可以用SQL通过关键字查询一些对话,也就是从大库里选取出一个小库来训练。从一些论文上,很多算法都是在数据预处理层面的,比如Mechanism-Aware Neural Machine for Dialogue Response Generation就介绍了,从大库中抽取小库,然后再进行融合,训练出有特色的对话来。

对于英语,需要了解NLTK,NLTK提供了加载语料,语料标准化,语料分类,PoS词性标注,语意抽取等功能。

另一个功能强大的工具库是CoreNLP,作为 Stanford开源出来的工具,特色是实体标注,语意抽取,支持多种语言。

下面主要介绍两个内容:

中文分词

现在有很多中文分词的SDK,分词的算法也比较多,也有很多文章对不同SDK的性能做比较。做中文分词的示例代码如下。

# coding:utf8
'''
Segmenter with Chinese
'''

import jieba
import langid


def segment_chinese_sentence(sentence):
'''
Return segmented sentence.
'''
seg_list = jieba.cut(sentence, cut_all=False)
seg_sentence = u" ".join(seg_list)
return seg_sentence.strip().encode('utf8')


def process_sentence(sentence):
'''
Only process Chinese Sentence.
'''
if langid.classify(sentence)[0] == 'zh':
return segment_chinese_sentence(sentence)
return sentence

if __name__ == "__main__":
print(process_sentence('飞雪连天射白鹿'))
print(process_sentence('I have a pen.'))

以上使用了langid先判断语句是否是中文,然后使用jieba进行分词。

在功能上,jieba分词支持全切分模式,精确模式和搜索引擎模式。

全切分:输出所有分词。

精确:概率上的最佳分词。

所有引擎模式:对精确切分后的长句再进行分词。

jieba分词的实现

主要是分成下面三步:

1、加载字典,在内存中建立字典空间。

字典的构造是每行一个词,空格,词频,空格,词性。

上诉书 3 n
上诉人 3 n
上诉期 3 b
上诉状 4 n
上课 650 v

建立字典空间的是使用python的dict,采用前缀数组的方式。

使用前缀数组的原因是树结构只有一层 -word:freq,效率高,节省空间。比如单词"dog", 字典中将这样存储:

{
"d": 0,
"do": 0,
"dog": 1 # value为词频
}

字典空间的主要用途是对输入句子建立有向无环图,然后根据算法进行切分。算法的取舍主要是根据模式- 全切,精确还是搜索。

2、对输入的语句分词,首先是建立一个有向无环图。
有向无环图,Directed acyclic graph(音 /ˈdæɡ/)。

【图 3-2】 DAG

DAG对于后面计算最大概率路径和使用HNN模型识别新词有直接关系。

3、按照模式,对有向无环图进行遍历,比如,在精确模式下,便利就是求最大权重和的路径,权重来自于在字典中定义的词频。对于没有出现在词典中的词,连续的单个字符也许会构成新词。然后用HMM模型和Viterbi算法识别新词。

精确模型切词:使用动态规划对最大概率路径进行求解。

最大概率路径:求route = (w1, w2, w3 ,.., wn),使得Σweight(wi)最大。Wi为该词的词频。

更多的细节还需要读一下jieba的源码

自定义字典

jieba分词默认的字典是:1998人民日报的切分语料还有一个msr的切分语料和一些txt小说。开发者可以自行添加字典,只要符合字典构建的格式就行。

jieba分词同时提供接口添加词汇。

Word embedding

使用机器学习训练的语言模型,网络算法是使用数字进行计算,在输入进行编码,在输出进行解码。word embedding就是编解码的手段。

【图 3-3】 word embedding, Ref. #7

word embedding是文本的数值化表示方法。表示法包括one-hot,bag of words,N-gram,分布式表示,共现矩阵等。

Word2vec

近年来,word2vec被广泛采用。Word2vec输入文章或者其他语料,输出语料中词汇建设的词向量空间。详细可参考word2vec数学原理解析。

使用word2vec

安装完成后,得到word2vec命令行工具。

word2vec -train "data/review.txt"
-output "data/review.model"
-cbow 1
-size 100
-window 8
-negative 25
-hs 0
-sample 1e-4
-threads 20
-binary 1
-iter 15

-train "data/review.txt" 表示在指定的语料库上训练模型

-cbow 1 表示用cbow模型,设成0表示用skip-gram模型

-size 100 词向量的维度为100

-window 8 训练窗口的大小为8 即考虑一个单词的前八个和后八个单词

-negative 25 -hs 0 是使用negative sample还是HS算法

-sample 1e-4 采用阈值

-threads 20 线程数

-binary 1 输出model保存成2进制

-iter 15 迭代次数

在训练完成后,就得到一个model,用该model可以查询每个词的词向量,在词和词之间求距离,将不同词放在数学公式中计算输出相关性的词。比如:

vector("法国") - vector("巴黎) + vector("英国") = vector("伦敦")"

对于训练不同的语料库,可以单独的训练词向量模型,可以利用已经训练好的模型。

其它训练词向量空间工具推荐:Glove。

Seq2Seq

2014年,Sequence to Sequence Learning with Neural Networks提出了使用深度学习技术,基于RNN和LSTM网络训练翻译系统,取得了突破,这一方法便应用在更广泛的领域,比如问答系统,图像字幕,语音识别,撰写诗词等。Seq2Seq完成了【encoder + decoder -> target】的映射,在上面的论文中,清晰的介绍了实现方式。

【图 3-4】 Seq2Seq, Ref. #1

也有很多文章解读它的原理。在使用Seq2Seq的过程中,虽然也研究了它的结构,但我还不认为能理解和解释它。下面谈两点感受:

a. RNN保存了语言顺序的特点,这和CNN在处理带有形状的模型时如出一辙,就是数学模型的设计符合物理模型。

【图 3-5】 RNN, Ref. #6

b. LSTM Cell的复杂度对应了自然语言处理的复杂度。

【图 3-6】 LSTM, Ref. #6

理由是,有人将LSTM Cell尝试了多种其它方案传递状态,结果也很好。

【图 3-7】 GRU, Ref. #6

LSTM的一个替代方案:GRU。只要RNN的Cell足够复杂,它就能工作的很好。

使用DeepQA2训练语言模型

准备工作,下载项目:

git clone https://github.com/Samurais/DeepQA2.git
cd DeepQA2
open README.md # 根据README.md安装依赖包

DeepQA2将工作分成三个过程:

数据预处理:从语料库到数据字典。

训练模型:从数据字典到语言模型。

提供服务:从语言模型到RESt API。

预处理

DeepQA2使用Cornell Movie Dialogs Corpus作为demo语料库。

原始数据就是movie_lines.txt和movie_conversations.txt。这两个文件的组织形式参考README.txt

deepqa2/dataset/preprocesser.py是将这两个文件处理成数据字典的模块。

train_max_length_enco就是问题的长度,train_max_length_deco就是答案的长度。在语料库中,大于该长度的部分会被截断。

程序运行后,会生成dataset-cornell-20.pkl文件,它加载到python中是一个字典:

word2id存储了{word: id},其中word是一个单词,id是int数字,代表这个单词的id。

id2word存储了{id: word}。

trainingSamples存储了问答的对话对。

比如 [[[1,2,3],[4,5,6]], [[7,8,9], [10, 11, 12]]]

1,2,3 ... 12 都是word id。

[1,2,3] 和 [4,5,6] 构成一个问答。 [7,8,9] 和 [10, 11, 12] 构成一个问答。

开始训练

cp config.sample.ini config.ini # modify keys
python deepqa2/train.py

config.ini是配置文件, 根据config.sample.ini进行修改。训练的时间由epoch,learning rate, maxlength和对话对的数量而定。

deepqa2/train.py大约100行,完成数据字典加载、初始化tensorflow的session,saver,writer、初始化神经元模型、根据epoch进行迭代,保存模型到磁盘。

session是网络图,由placeholder, variable, cell, layer, output 组成。

saver是保存model的,也可以用来恢复model。model就是实例化variable的session。

writer是查看loss fn或者其他开发者感兴趣的数据的收集器。writer的结果会被saver保存,然后使用tensorboard查看。

Model

Model的构建要考虑输入,状态,softmax,输出。

定义损耗函数,使用AdamOptimizer进行迭代。

最后,参考一下训练的loop部分。

每次训练,model会被存储在save路径下,文件夹的命名根据机器的hostname,时间戳生成。

提供服务

在TensorFlow中,提供了标准的serving模块 - tensorflow serving。但研究了很久,还专门看了一遍 《C++ Essentials》,还没有将它搞定,社区也普遍抱怨tensorflow serving不好学,不好用。训练结束后,使用下面的脚本启动服务,DeepQA2的serve部分还是调用TensorFlow的python api。

cd DeepQA2/save/deeplearning.cobra.vulcan.20170127.175256/deepqa2/serve
cp db.sample.sqlite3 db.sqlite3
python manage.py runserver 0.0.0.0:8000

测试

POST /api/v1/question HTTP/1.1
Host: 127.0.0.1:8000
Content-Type: application/json
Authorization: Basic YWRtaW46cGFzc3dvcmQxMjM=
Cache-Control: no-cache

{"message": "good to know"}

response
{
"rc": 0,
"msg": "hello"
}

serve的核心代码在serve/api/chatbotmanager.py中。

使用脚本

scripts/start_training.sh启动训练

scripts/start_tensorboard.sh启动Tensorboard

scripts/start_serving.sh启动服务

对模型的评价

目前代码具有很高的维护性,这也是从DeepQA项目进行重构的原因,更清晰的数据预处理、训练和服务。有新的变更可以添加到deepqa2/models中,然后在train.py和chatbotmanager.py变更一下。

有待改进的地方

a. 新建models/rnn2.py, 使用dropout。目前DeepQA中已经使用了Drop.

b. tensorflow rc0.12.x中已经提供了seq2seq network,可以更新成tf版本.

c. 融合训练,目前model只有一个库,应该是设计一个新的模型,支持一个大库和小库,不同权重进行,就如Mechanism-Aware Neural Machinefor Dialogue Response Generation的介绍。

d. 代码支持多机多GPU运行。

e. 目前训练的结果都是QA对,对于一个问题,可以有多个答案。

f. 目前没有一个方法进行accuracy测试,一个思路是在训练中就提供干扰项,因为当前只有正确的答案,如果提供错误的答案(而且越多越好),就可以使用recall_at_k方法进行测试。

机器人家上了解到的,希望对你有用

‘伍’ 深度学习的职业发展方向有哪些

当前,人工智能发展借助深度学习技术突破得到了全面关注和助力推动,各国政府高度重视、资本热潮仍在加码,各界对其成为发展热点也达成了共识。本文旨在分析深度学习技术现状,研判深度学习发展趋势,并针对我国的技术水平提出发展建议。
一、深度学习技术现状
深度学习是本轮人工智能爆发的关键技术。人工智能技术在计算机视觉和自然语言处理等领域取得的突破性进展,使得人工智能迎来新一轮爆发式发展。而深度学习是实现这些突破性进展的关键技术。其中,基于深度卷积网络的图像分类技术已超过人眼的准确率,基于深度神经网络的语音识别技术已达到95%的准确率,基于深度神经网络的机器翻译技术已接近人类的平均翻译水平。准确率的大幅提升使得计算机视觉和自然语言处理进入产业化阶段,带来新产业的兴起。
深度学习是大数据时代的算法利器,成为近几年的研究热点。和传统的机器学习算法相比,深度学习技术有着两方面的优势。一是深度学习技术可随着数据规模的增加不断提升其性能,而传统机器学习算法难以利用海量数据持续提升其性能。二是深度学习技术可以从数据中直接提取特征,削减了对每一个问题设计特征提取器的工作,而传统机器学习算法需要人工提取特征。因此,深度学习成为大数据时代的热点技术,学术界和产业界都对深度学习展开了大量的研究和实践工作。
深度学习各类模型全面赋能基础应用。卷积神经网络和循环神经网络是两类获得广泛应用的深度神经网络模型。计算机视觉和自然语言处理是人工智能两大基础应用。卷积神经网络广泛应用于计算机视觉领域,在图像分类、目标检测、语义分割等任务上的表现大大超越传统方法。循环神经网络适合解决序列信息相关问题,已广泛应用于自然语言处理领域,如语音识别、机器翻译、对话系统等。
深度学习技术仍不完美,有待于进一步提升。一是深度神经网络的模型复杂度高,巨量的参数导致模型尺寸大,难以部署到移动终端设备。二是模型训练所需的数据量大,而训练数据样本获取、标注成本高,有些场景样本难以获取。三是应用门槛高,算法建模及调参过程复杂繁琐、算法设计周期长、系统实施维护困难。四是缺乏因果推理能力,图灵奖得主、贝叶斯网络之父Judea Pearl指出当前的深度学习不过只是“曲线拟合”。五是存在可解释性问题,由于内部的参数共享和复杂的特征抽取与组合,很难解释模型到底学习到了什么,但出于安全性考虑以及伦理和法律的需要,算法的可解释性又是十分必要的。因此,深度学习仍需解决以上问题。
二、深度学习发展趋势
深度神经网络呈现层数越来越深,结构越来越复杂的发展趋势。为了不断提升深度神经网络的性能,业界从网络深度和网络结构两方面持续进行探索。神经网络的层数已扩展到上百层甚至上千层,随着网络层数的不断加深,其学习效果也越来越好,2015年微软提出的ResNet以152层的网络深度在图像分类任务上准确率首次超过人眼。新的网络设计结构不断被提出,使得神经网络的结构越来越复杂。如:2014年谷歌提出了Inception网络结构、2015年微软提出了残差网络结构、2016年黄高等人提出了密集连接网络结构,这些网络结构设计不断提升了深度神经网络的性能。
深度神经网络节点功能不断丰富。为了克服目前神经网络存在的局限性,业界探索并提出了新型神经网络节点,使得神经网络的功能越来越丰富。2017年,杰弗里辛顿提出了胶囊网络的概念,采用胶囊作为网络节点,理论上更接近人脑的行为,旨在克服卷积神经网络没有空间分层和推理能力等局限性。2018年,DeepMind、谷歌大脑、MIT的学者联合提出了图网络的概念,定义了一类新的模块,具有关系归纳偏置功能,旨在赋予深度学习因果推理的能力。
深度神经网络工程化应用技术不断深化。深度神经网络模型大都具有上亿的参数量和数百兆的占用空间,运算量大,难以部署到智能手机、摄像头和可穿戴设备等性能和资源受限的终端类设备。为了解决这个问题,业界采用模型压缩技术降低模型参数量和尺寸,减少运算量。目前采用的模型压缩方法包括对已训练好的模型做修剪(如剪枝、权值共享和量化等)和设计更精细的模型(如MobileNet等)两类。深度学习算法建模及调参过程繁琐,应用门槛高。为了降低深度学习的应用门槛,业界提出了自动化机器学习(AutoML)技术,可实现深度神经网络的自动化设计,简化使用流程。
深度学习与多种机器学习技术不断融合发展。深度学习与强化学习融合发展诞生的深度强化学习技术,结合了深度学习的感知能力和强化学习的决策能力,克服了强化学习只适用于状态为离散且低维的缺陷,可直接从高维原始数据学习控制策略。为了降低深度神经网络模型训练所需的数据量,业界引入了迁移学习的思想,从而诞生了深度迁移学习技术。迁移学习是指利用数据、任务或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。通过将训练好的模型迁移到类似场景,实现只需少量的训练数据就可以达到较好的效果。
三、未来发展建议
加强图网络、深度强化学习以及生成式对抗网络等前沿技术研究。由于我国在深度学习领域缺乏重大原创性研究成果,基础理论研究贡献不足,如胶囊网络、图网络等创新性、原创性概念是由美国专家提出,我国研究贡献不足。在深度强化学习方面,目前最新的研究成果大都是由DeepMind和OpenAI等国外公司的研究人员提出,我国尚没有突破性研究成果。近几年的研究热点生成式对抗网络(GAN)是由美国的研究人员Goodfellow提出,并且谷歌、facebook、twitter和苹果等公司纷纷提出了各种改进和应用模型,有力推动了GAN技术的发展,而我国在这方面取得的研究成果较少。因此,应鼓励科研院所及企业加强深度神经网络与因果推理模型结合、生成式对抗网络以及深度强化学习等前沿技术的研究,提出更多原创性研究成果,增强全球学术研究影响力。
加快自动化机器学习、模型压缩等深度学习应用技术研究。依托国内的市场优势和企业的成长优势,针对具有我国特色的个性化应用需求,加快对深度学习应用技术的研究。加强对自动化机器学习、模型压缩等技术的研究,加快深度学习的工程化落地应用。加强深度学习在计算机视觉领域应用研究,进一步提升目标识别等视觉任务的准确率,以及在实际应用场景中的性能。加强深度学习在自然语言处理领域的应用研究,提出性能更优的算法模型,提升机器翻译、对话系统等应用的性能。
来源:产业智能官
END
更多精彩内容请登录http://www.innov100.com官方网站
往期精选▼
1. 饮鹿网2018-2019年中国人工智能产业创新百强榜单发布!
2. 饮鹿网2018-2019年中国人工智能产业Top20投资机构榜单发布!
3. 饮鹿网2018-2019年中国大数据产业创新百强榜单发布!
4. 饮鹿网2018-2019年中国大数据产业Top20投资机构榜单发布!
5. 饮鹿网2018-2019年中国物联网产业创新百强榜单发布!
6. 饮鹿网2018-2019年中国5G与物联网产业TOP20投资机构榜单发布!
7. 饮鹿网2018-2019年中国集成电路产业创新百强榜单发布!
8. 饮鹿网2018-2019年中国集成电路产业Top20投资机构榜单发布!
9. 饮鹿网2018-2019年中国企业服务产业创新百强榜单发布!
10. 饮鹿网2018-2019年中国企业服务产业TOP20投资机构榜单发布!

‘陆’ 护士资格人机对话系统使用注意事项有哪些

护士资格考试人机对话系统怎么使用?答题的过程中需要注意哪些问题?2018年护士资格考试全面实行人机对话模式,相信很多考生想要了解,环球医学教育网小编为大家解答如下:
点击领取:护士考前60天冲刺计划
1、考试进程的单向性: 在进行 专业知识 科目考试时,在某一题型(如 单选题 )的测试过程中,考生是可以随时查看、修改此题型内任何一题的选择答案的,而一旦确认完成作答、 进入新的题型时(如结束 单选题 ,进入 不定项选择题 ),考生将不能退回到前一测试题型( 单选题 )进行查看和修改答案。在进行 专业实践能力 科 目考试时,针对每道案例分析题,只有完成前一个问题才能看到下一问题,并且在确定进入下一问题后是无法对前面问题的作答进行查看和修改的(如当确认完成 第l问 ,进入 第2问 后,考生无法查看或修改其 第l问 的选择)。因此考生须谨慎、认真作答。
考试进程为 只可前进,不可后退 单向操作的原则, 主要出于三方面的考虑:一是模拟临床、贴近临床。如医生下了医嘱,护士已执行,就无法更改了;二是因考试进程的单向性,使命题的思路大为拓宽,题间互为关 联,一环扣一环,令考生感觉如在现实工作中对患者进行检查、诊断、治疗;三是由于试题提问序贯性的特点,试题后面的提问往往已经明示或暗示出前面提问的答 案,因此不允许考生再返回去进行修改。经多年实践证明,考试进程单向性是完全符合卫生专业技能考试特点的。
2、中断考试:考生考试过程中因特殊原因,征得监考老师同意,可以由监考老师按相关键中断考试。如非机器故障,下一次考试必须使用同一台机器,并只能选择断点续考。
以上就是环球医学教育网小编为大家整理的 护士资格人机对话系统使用注意事项有哪些? 一文,希望对大家有帮助!
相关推荐:
2018护士资格考试全新辅导课程火爆招生中~
中国卫生人才网2018年护士执业资格考试特别提示 | 机考注意事项

‘柒’ 采用人机对话系统进行英语口语练习应用的技术是什么技术

采用人机对话系统进行英语口语练习应用的技术是人工智能。

在对话过程中,计算机可能要求回答一些问题,给定某些参数或确定选择项。通过对话,人对计算机的工作给以引导或限定,监督任务的执行。该技术属于人工智能领域,有利于将人的意图、判断和经验,纳入计算机工作过程,增强计算机应用的灵活性,也便于软件编写。

以下是人机对话发展阶段的相关介绍:

第一代人机对话时代,人机交流使用的语言全部是经过定义并有数量限制由字符集组成的被双方牢记的密码式语言,在此体系外的人基本不了解语言含义。

第二代人机对话时代,则采用的是接近人类自然思维的“所见即所得”的图形式交流方式,可以说在交流的内容上已经非常接近人类的自然交流习惯(以类似人类书写形式的视觉交流为主),但其交流方式仍主要是通过按键(键盘、鼠标等)实现,而不是按照人类本来的交流方式进行。

第三代人机对话则完全与第一第二代人机对话方式不同,人机交流的内容主要是人习惯的自然交流语言,交流方式也是人习惯的自然语言交流方式(包括智能语伴、语音和手写等,甚至包括人的表情、手势、步态等)。

以上资料参考网络——人机对话

‘捌’ 未来24个月,机器学习领域将可能有哪些重大突破

近日,卡内基梅隆大学(CMU)计算机学院院长Andrew W. Moore和副院长Philip L. Lehman来到微软亚洲研究院,与研究员们分享了过去两年中人工智能领域的一些技术突破,并从业界和学界两个角度,探讨了他们对于人工智能接下来发展方向的看法。

今天,我们就在这里与大家分享此次演讲~以下为Andrew W. Moore演讲的精简版文字整理。

2005到2015年间,我们见证了数据科学在学术界和商业界的发展,学会了如何正确地使用分布式计算、GPU,如何很快的建立抽象模型等等。仿佛AI完全转化成了机器学习,每个人都在处理数据、基于数据为复杂的世界建模……

大约2014年,许多人开始意识到这些工作还远远不够,它们仅能实现改变世界蓝图的一半,而另一半则是被我们视为数据科学最顶层的决策系统。上世纪90年代,我们对所建立的系统都十分乐观。但渐渐地,我们发现,这些系统在应用到实际生活中时并没有效果,比如在优化城市交通数据时,一个完美的优化算法并没有帮助,因为那时我们没有任何关于城市交通的数据。所以现在,我们严肃认真地考虑重新回到基于数据科学的大规模优化和决策上。

而在大学里,我们会思考更多的可能性。有些教授认为自主性(autonomy)是最重要的,是AI的真正目标,对此观点我们十分尊重。它在很多方面,比如深空探索或需要快速决策的情况下,都将有重要的应用。当然,自主性不是AI最终唯一的目标。它还包括其他方面,例如增强人类(augmented humans)等等,在我看来这和微软的核心任务,如何更好地帮助人类工作、生活,有着很大的重合度。我们需要帮助人类更好地工作、生活,同时也需要自主性。

在数据科学方面,我们需要关注三个部分。首先是人工智能的基础建设,包括大型优化策略,它需要我们擅长大规模线性规划问题和随机梯度下降等问题。其次,是自主性(autonomy),最后是增强人类(augmented humans)。

Andrew W. Moore是卡内基梅隆大学(CMU)计算机学院的第十五位院长。他的研究领域主要有统计机器学习、人工智能、机器人技术以及大数据统计计算。他曾在机器人控制、制造、强化学习、天体物理算法、电子商务领域都有所建树。他的数据挖掘教程下载量已达100多万。他建立了Auton Lab研究组,该研究组设计了有效的关于大型统计操作的新方法,并在多种情况下都实现了几个数量级的加速效果。Auton研究组的成员与许多科学家、政府机构、技术公司都有着密切的合作,旨在不断寻求在计算、统计数据挖掘、机器学习和人工智能领域中最函待解决的问题。2006年,Andrew加入谷歌,参与Google Pittsburgh的建立。同时,他也参与了包括Google Sky和Android SkyMap的相关事宜。2014年8月,Andrew重返卡内基梅隆大学(CMU),继续担任计算机学院院长。

‘玖’ 纯正英语学生人机对话和自然英语学生人机对话训练系统有什么区别

虽然我没有用过这样的软件,但从你提供的问题来看,应该是不同公司产品,菜单界面肯定不一样了。但你只是想学习而已,我认为这点不同应该不会影响你学习的,只是习惯可能稍微有点不同,多用几下应该会两套软件都掌握的,这种软件一般是用VB或者VC写的。

阅读全文

与对话系统算法训练相关的资料

热点内容
一年程序员面试 浏览:174
多个jpg合成pdf 浏览:929
pdf转word是图片 浏览:939
程序员看不懂怎么办 浏览:271
linux操作系统题 浏览:765
单片机无符号数加法 浏览:227
应用隐藏加密怎么关闭 浏览:269
汽车空调的压缩机电线有什么用 浏览:429
电脑加密图片如何取消加密 浏览:340
慧净电子51单片机视频 浏览:343
javamap赋值 浏览:165
什么app可以玩掌机游戏 浏览:46
java简单聊天室 浏览:462
通用汽车编程软件 浏览:432
一级抗震框架梁箍筋加密区规定是多少 浏览:974
教你如何把安卓手机变成苹果 浏览:11
app编译分类 浏览:323
怎么用服务器的资源包 浏览:199
oa软件手机登陆服务器地址 浏览:289
androidrtp打包 浏览:723