[发明专利]一种基于循环神经网络的蒙古语语言模型的训练方法有效
| 申请号: | 201810345632.X | 申请日: | 2018-04-17 |
| 公开(公告)号: | CN108549703B | 公开(公告)日: | 2022-03-25 |
| 发明(设计)人: | 马杰;马志强;杨瑞 | 申请(专利权)人: | 内蒙古工业大学 |
| 主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08;G06F16/33;G06F16/332;G06F40/30;G06F40/284 |
| 代理公司: | 北京睿智保诚专利代理事务所(普通合伙) 11732 | 代理人: | 周新楣 |
| 地址: | 010080 内蒙古自治*** | 国省代码: | 内蒙古;15 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 循环 神经网络 蒙古语 语言 模型 训练 方法 | ||
1.一种基于循环神经网络的蒙古语语言模型的训练方法,其特征在于:
一、所述的基于循环神经网络的蒙古语语言模型MLMRNN在预训练阶段,使用Word2vec+k-means算法得到蒙古语词表中的蒙古语词及其所属的语义类别,并设计了基于one-hot的蒙古语语义词向量,蒙古语语义词向量是根据不同的语义类别下的蒙古语词的个数,作为每个语义类别下的蒙古语词向量的维度,依次按照语义类别进行词向量的编码,编码完成语义类别1下的所有蒙古语词后,继续进行语义类别2下的所有蒙古语词的词向量编码,直至完成所有语义类别下的蒙古语词编码,编码格式同one-hot编码格式相同,具体训练算法为:
输入:V表示包含|V|个蒙古语词向量{w1,…,wV}的数据集合;k表示簇的数目k≤|V|;
输出:k个簇的集合S;
1)随机初始化了K个与蒙古语词向量维度一致的类簇的簇心向量u1,u2,...,uk;
2)采用循环语句repeat循环,For循环;
3)For外循环语句使用循环变量i遍历|v|;
4)For内循环语句使用循环变量j遍历K个类簇;
5)进入循环体,Si←argminj||wi-uj||2代表计算得到的词向量与簇心向量的最小化平方误差;
6)代表更新簇心向量;
7)结束For内循环;
8)结束For外循环;
9)直到收敛,repeat循环结束;
二、当对循环神经网络的蒙古语语言模型MLMRNN进行训练和计算时,对每个输入的蒙古语词,根据类别信息创建基于one-hot的语义词向量,作为输入层进行计算;根据语义分为k类,基于one-hot的蒙古语语义词向量创建算法如下:
输入:k个簇的集合S,其中Si表示第i个集合,S共有k个分类;k表示簇的数目;
index表示k个簇下的蒙古语词向量的位置;
输出:kc-one-hot,k个簇下的基于one-hot的蒙古语词向量;
1)读取词汇表大小,作为词向量维度;
2)初始化kc-one-hot长度为n;
4)For外循环语句使用循环变量j遍历K个类簇;
3)For内循环语句使用循环变量i遍历蒙古语词表中的每个词表的大小;
5)进入循环体,确定该蒙古语词向量在one-hot编码中的位置;
6)kc-one-hot[index]=1,将该蒙古语词向量用one-hot编码形式编码;
7)结束For内循环;
7)结束For外循环;
三、模型的训练算法:
wt表示t时刻的当前输入蒙古语基于one-hot的语义词向量,维度是词典V的大小;ft表示t时刻预训练的蒙古语Skip-Gram词向量,维度为M<|V|;
wt表示t时刻的蒙古语分类词向量;ft表示t时刻的蒙古语Skip-Gram词向量;α表示学习率;epoch表示循环次数;τ表示bptt大小,其中bptt表示反向传播的步长;Wxs,Wss,Wfs,Wsc,Wsy分别表示输入部分中的蒙古语分类词向量到隐含层的权值矩阵;St-1代表上一时刻的隐含层的输出;lt是词在类中期望输出概率;yt是真实输出的类概率;ct'是期望输出的类概率;ct是真实输出的类概率;
输入:wt,ft;
输出:Wxs,Wss,Wfs,Wsc,Wsy,yt;
1)随机初始化Wxs,Wss,Wfs,Wsc,Wsy矩阵;
2)For外循环使用循环变量j遍历每个epoch;
3)xt←wxs·wt+wss·st-1+wfs·ft,将wt,ft,St-1与权值矩阵相乘并相加得到xt;
4)st←sigmoid(xt),将xt通过激活函数sigmoid计算得到St;
5)yt←softmax(Wsy·st),将Wsy和St相乘通过softmax函数计算得到yt;
6)ct←softmax(Wsc·st),将Wsc和St相乘通过softmax函数计算得到ct;
7)Et(yt,lt)←-logyt,使用yt计算训练损失;
8)Et(ct,c't)←-ctlogc't,使用ct和ct'计算训练损失;
9)For内循环使用循环变量τ遍历时间t;
10)
11)更新训练参数
12)结束For内循环;
13)结束For外循环;其中,所述的基于循环神经网络的蒙古语语言模型MLMRNN结构包括输入层x(t)、隐含层s(t)和输出层y(t);在t时刻,输入向量x(t)包括三部分,分别是w(t),s(t-1)和f(t),其中w(t)代表t时刻输入的词的one-hot词向量表示;s(t-1)为t-1时刻隐含层的输出;f(t)为t时刻Skip-Gram训练出的上下文词向量,维度远小于|V|;隐含层为s(t);输出向量用y(t)表示,包括两部分,一部分是类别层神经元,另一部分是蒙古语词神经元,c(t)为对词汇表进行的词向量的聚类的类别层,输出向量y(t)即表示下一个词w(t+1)的概率;
网络中,U、W、F为输入层与隐含层之间的权值矩阵,C为隐含层与类别层的权值矩阵,在输出层计算的时候先算词类的概率分布,再从所需的词类中计算特定词的概率,计算输出层的结果需要用到类别的输出结果;网络中各层输出值用表示为:
x(t)=w(t)+s(t-1)+f(t) (1)
s(t)=f(U·w(t)+W·s(t-1)+F·f(t)) (2)
c(t)=g(C·s(t)) (3)
y(t)=g(V′·s(t)) (4)
其中V′∈R(c(w(t))),R(c(w(t))表示w(t)所属的聚类的词集合,f表示sigmoid激活函数,g表示softmax激活函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于内蒙古工业大学,未经内蒙古工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810345632.X/1.html,转载请声明来源钻瓜专利网。





