HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    DNN语言模型(DNN语言模型拼写纠错)

    发布时间:2023-03-13 11:58:38     稿源: 创意岭    阅读: 71        问大家

    大家好!今天让创意岭的小编来大家介绍下关于DNN语言模型的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    DNN语言模型(DNN语言模型拼写纠错)

    一、深度学习在语音识别方面主要的难题和困难是什么?

    深度学习的应用:语音识别系统长期以来,在描述每个建模单元的统计概率模型时,大多采用的是混合高斯模型(GMM)。这种模型由于估计简单,适合海量数据训练,同时有成熟的区分度训练技术支持,长期以来,一直在语音识别应用中占有垄断性地位。但这种混合高斯模型本质上是一种浅层网络建模,不能充分描述特征的状态空间分布。另外,GMM建模的特征维数一般是几十维,不能充分描述特征之间的相关性。最后,GMM建模本质上是一种似然概率建模,虽然区分度训练能够模拟一些模式类之间的区分性,但能力有限。微软研究院语音识别专家邓立和俞栋从2009年开始和深度学习专家GeofferyHinton合作。2011年微软宣布基于深度神经网络的识别系统取得成果并推出产品,彻底改变了语音识别原有的技术框架。采用深度神经网络后,可以充分描述特征之间的相关性,可以把连续多帧的语音特征并在一起,构成一个高维特征。最终的深度神经网络可以采用高维特征训练来模拟。由于深度神经网络采用模拟人脑的多层结果,可以逐级地进行信息特征抽取,最终形成适合模式分类的较理想特征。这种多层结构和人脑处理语音图像信息时,是有很大的相似性的。深度神经网络的建模技术,在实际线上服务时,能够无缝地和传统的语音识别技术相结合,在不引起任何系统额外耗费情况下,大幅度提升了语音识别系统的识别率。其在线的使用方法具体如下:在实际解码过程中,声学模型仍然是采用传统的HMM模型,语音模型仍然是采用传统的统计语言模型,解码器仍然是采用传统的动态WFST解码器。但在声学模型的输出分布计算时,完全用神经网络的输出后验概率乘以一个先验概率来代替传统HMM模型中的GMM的输出似然概率。百度在实践中发现,采用DNN进行声音建模的语音识别系统相比于传统的GMM语音识别系统而言,相对误识别率能降低25%。最终在2012年11月,百度上线了第一款基于DNN的语音搜索系统,成为最早采用DNN技术进行商业语音服务的公司之一。

    国际上,Google也采用了深层神经网络进行声音建模,是最早突破深层神经网络工业化应用的企业之一。但Google产品中采用的深度神经网络只有4-5层,而百度采用的深度神经网络多达9层。这种结构差异的核心其实是百度更好地解决了深度神经网络在线计算的技术难题,因此百度线上产品可以采用更复杂的网络模型。这将对于未来拓展海量语料的DNN模型训练有更大的优势。

    二、Youtube DNN经典论文

    最近在看王喆的知乎专栏,第三、四、十三篇都是Youtube的经典论文DNN:https://zhuanlan.zhihu.com/p/52169807  https://zhuanlan.zhihu.com/p/52504407  https://zhuanlan.zhihu.com/p/61827629

    跟着大佬又回顾了一下,发现之前真的只能算是一知半解,趁着这次把对这篇论文的新的理解记录一下,可能还会有一些错误。

    论文讲解了在召回和精排两个阶段的模型:

    召回:

    先从特征说起:用户观看过的video的embedding,用户搜索词的embedding,用户的地理位置、年龄等side_infomation,还有exampl_age这个需要解释的特征

    然后是模型:三层DNN

    最后是training的loss:softmax做分类

    serving的方式:nearest neighbor

    里面其实有很多疑点:

    1.example_age是什么

    这个点专栏里说是训练时间 - 得到这条样本的时间(视频点击时间),但是我觉得这样表达不出“新视频”这个概念,也不知道用当前时间去减是啥意思,label是点击那一刻打上去的,又不是训练的时候;

    所以我觉得这个example age应该是点击时间-上架时间,表示用户对新上架视频的偏好,用这个特征去捕获这个偏好了,在serve的时候全都置为0就可以消除这个偏好,毕竟这是召回阶段,可以多召回些东西。(这样就是消除用户对新视频的偏好了?)

    2.为什么要做多分类,而不是预测分,多分类的话有海量视频,性能怎么保证

    为什么要做多分类,而不是把样本的embedding也给到网络里做打分,这一点我是真的没弄明白;

    海量视频的多分类性能的提升是用到了sampled softmax,可以参考http://www.4k8k.xyz/article/Kaiyuan_sjtu/119881236  https://zhuanlan.zhihu.com/p/349908071 总的来说就是通过Q(y|x)采样出一个子集,对子集计算logits,然后用计算结果F(x,y)-log(Q(y|x))可以表示原数据集上的logits

    3.serving阶段为什么不做多分类了,而是做nearest neighbor

    这里首先要弄明白serving阶段的user embedding和video embedding是什么,user_embedding是最后一层relu之后的结果,比如是一个d维的向量;然后要得到一个几百万维(用d_N表示)的向量,需要过一个d*d_N维的矩阵,这个矩阵的每一列训练完之后就是video embedding;如果是serving的阶段依然是和每一列相乘,再算一个softmax,既然分母是一样的,取指数的操作也是一样的,那么就直接做点积就好了。

    排序:

    先从特征说起:当前排序的video的embedding,用户观看过的video的embedding,用户和video的语言embedding,time since last watch是自上次观看同channel视频的时间,previous impressions是该视频已经被曝光给该用户的次数(这里已经引入了负反馈的思路)

    然后是模型:三层DNN

    最后是training的loss:weighted logistic

    serving的方式:e^(Wx+b)

    这里面也有一些疑点:

    1.training时候的weighted logistic是什么,为什么serving的时候用的是e^(Wx+b)

    这个点是我重读的时候最没理解的地方,先尝试写一下,这里首先要搞清楚weighted logitstic是什么,那先回顾一下LR的公式的由来是log(odds) = w*x;这里的odds=p/(1-p)表示正样本发生的概率/负样本发生的概率;在weighted LR里面这个odds要变成W*p/(1-p)这里的W就是给正样本加的权重,至于为什么是这样有一种解释是用正负样本比去解释的,我觉得不是很合理 https://zhuanlan.zhihu.com/p/435912211;但是如果能够接受这个odds的话,那么log(odds) = w*x就可以得到odds = e^(wx),后者就是serving的目标;

    再说W*p/(1-p)是什么,这里W权重是这条视频的时长T,那么sum(Ti*pi)就是E(T)即时长的期望,E(T)/(1-p)泰勒展开就是E(T)*(1+p)这里的p很小的话其实就是E(T)也就是说serving的时候其实得到的就是观看时长的期望,这里如果用到电商里用price去加权,得到的应该也是对price的预估。

    还是非常建议多去看一下十大工程问题那篇专栏,讲到了更多,比如对每个用户提取等数量的训练样本、把大量长尾video的embedding置0这些方法的出发点。

    三、各种编程语言的深度学习库整理大全!

    各种编程语言的深度学习库整理大全!

    Python1. Theano是一个python类库,用数组向量来定义和计算数学表达式。它使得在Python环境下编写深度学习算法变得简单。在它基础之上还搭建了许多类库。

    1.Keras是一个简洁、高度模块化的神经网络库,它的设计参考了Torch,用Python语言编写,支持调用GPU和CPU优化后的Theano运算。

    2.Pylearn2是一个集成大量深度学习常见模型和训练算法的库,如随机梯度下降等。它的功能库都是基于Theano之上。

    3.Lasagne是一个搭建和训练神经网络的轻量级封装库,基于Theano。它遵循简洁化、透明化、模块化、实用化和专一化的原则。

    4.Blocks也是一个基于Theano的帮助搭建神经网络的框架。

    2. Caffe是深度学习的框架,它注重于代码的表达形式、运算速度以及模块化程度。它是由伯克利视觉和学习中心(Berkeley Vision and Learning Center, BVLC)以及社区成员共同开发。谷歌的DeepDream项目就是基于Caffe框架完成。这个框架是使用BSD许可证的C++库,并提供了Python调用接口。

    3. nolearn囊括了大量的现有神经网络函数库的封装和抽象接口、大名鼎鼎的Lasagne以及一些机器学习的常用模块。

    4. Genism也是一个用Python编写的深度学习小工具,采用高效的算法来处理大规模文本数据。

    5. Chainer在深度学习的理论算法和实际应用之间架起一座桥梁。它的特点是强大、灵活、直观,被认为是深度学习的灵活框架。

    6. deepnet是基于GPU的深度学习算法函数库,使用Python语言开发,实现了前馈神经网络(FNN)、受限玻尔兹曼机(RBM)、深度信念网络(DBN)、自编码器(AE)、深度玻尔兹曼机(DBM)和卷积神经网络(CNN)等算法。

    7. Hebel也是深度学习和神经网络的一个Python库,它通过pyCUDA控制支持CUDA的GPU加速。它实现了最重要的几类神经网络模型,提供了多种激活函数和模型训练方法,例如momentum、Nesterov momentum、dropout、和early stopping等方法。

    8. CXXNET是一个基于MShadow开发的快速、简洁的分布式深度学习框架。它是一个轻量级、易扩展的C++/CUDA神经网络工具箱,提供友好的Python/Matlab接口来进行训练和预测。

    9. DeepPy是基于NumPy的深度学习框架。

    10. DeepLearning是一个用C++和Python共同开发的深度学习函数库。

    11. Neon是Nervana System 的深度学习框架,使用Python开发。

    Matlab

    1. ConvNet 卷积神经网络是一类深度学习分类算法,它可以从原始数据中自主学习有用的特征,通过调节权重值来实现。

    2. DeepLearnToolBox是用于深度学习的Matlab/Octave工具箱,它包含深度信念网络(DBN)、栈式自编码器(stacked AE)、卷积神经网络(CNN)等算法。

    3. cuda-convet是一套卷积神经网络(CNN)代码,也适用于前馈神经网络,使用C++/CUDA进行运算。它能对任意深度的多层神经网络建模。只要是有向无环图的网络结构都可以。训练过程采用反向传播算法(BP算法)。

    4. MatConvNet是一个面向计算机视觉应用的卷积神经网络(CNN)Matlab工具箱。它简单高效,能够运行和学习最先进的机器学习算法。

    CPP

    1. eblearn是开源的机器学习C++封装库,由Yann LeCun主导的纽约大学机器学习实验室开发。它用基于能量的模型实现卷积神经网络,并提供可视化交互界面(GUI)、示例以及示范教程。

    2. SINGA是Apache软件基金会支持的一个项目,它的设计目标是在现有系统上提供通用的分布式模型训练算法。

    3. NVIDIA DIGITS是用于开发、训练和可视化深度神经网络的一套新系统。它把深度学习的强大功能用浏览器界面呈现出来,使得数据科学家和研究员可以实时地可视化神经网络行为,快速地设计出最适合数据的深度神经网络。

    4. Intel? Deep Learning Framework提供了Intel?平台加速深度卷积神经网络的一个统一平台。

    Java

    1. N-Dimensional Arrays for Java (ND4J) 是JVM平台的科学计算函数库。它主要用于产品中,也就是说函数的设计需求是运算速度快、存储空间最省。

    2. Deeplearning4j 是第一款商业级别的开源分布式深度学习类库,用Java和Scala编写。它的设计目的是为了在商业环境下使用,而不是作为一款研究工具。

    3. Encog是一个机器学习的高级框架,涵盖支持向量机、人工神经网络、遗传编程、贝叶斯网络、隐马可夫模型等,也支持遗传算法。

    JavaScript

    1. Convnet.js 由JavaScript编写,是一个完全在浏览器内完成训练深度学习模型(主要是神经网络)的封装库。不需要其它软件,不需要编译器,不需要安装包,不需要GPU,甚至不费吹灰之力。

    Lua

    1. Torch是一款广泛适用于各种机器学习算法的科学计算框架。它使用容易,用快速的脚本语言LuaJit开发,底层是C/CUDA实现。Torch基于Lua编程语言。

    Julia

    1. Mocha是Julia的深度学习框架,受C++框架Caffe的启发。Mocha中通用随机梯度求解程序和通用模块的高效实现,可以用来训练深度/浅层(卷积)神经网络,可以通过(栈式)自编码器配合非监督式预训练(可选)完成。它的优势特性包括模块化结构、提供上层接口,可能还有速度、兼容性等更多特性。

    Lisp

    1. Lush(Lisp Universal Shell)是一种面向对象的编程语言,面向对大规模数值和图形应用感兴趣的广大研究员、实验员和工程师们。它拥有机器学习的函数库,其中包含丰富的深度学习库。

    Haskell

    1. DNNGraph是Haskell用于深度神经网络模型生成的领域特定语言(DSL)。

    .NET

    1. Accord.NET 是完全用C#编写的.NET机器学习框架,包括音频和图像处理的类库。它是产品级的完整框架,用于计算机视觉、计算机音频、信号处理和统计应用领域。

    R

    1. darch包可以用来生成多层神经网络(深度结构)。训练的方法包括了对比散度的预训练和众所周知的训练算法(如反向传播法或共轭梯度法)的细调。

    2. deepnet实现了许多深度学习框架和神经网络算法,包括反向传播(BP)、受限玻尔兹曼机(RBM)、深度信念网络(DBP)、深度自编码器(Deep autoencoder)等等。

    四、汉字纠错手抄报

    汉字纠错手抄报

    中文别字错误类型:

    1. 别字: 感帽,随然,传然,呕土

    2. 人名,地名错误:哈蜜(正:哈密)

    3. 拼音错误:咳数(ke shu)—> ke sou,

    4. 知识性错误:广州黄浦(埔)

    5. 用户发音、方言纠错:我系东北滴黑社会,俚蛾几现在在我手上。(我是东北的黑社会,你儿子现在在我手上。)

    6. 重复性错误:在 上 上面 上面 那 什么 啊

    7. 口语化问题:呃 。 呃 ,啊,那用户名称是叫什么呢?(正:那用户名称是叫什么呢?)

    错别字纠正的主要技术:

    错别字词典,编辑距离,语言模型(ngram LM,DNN LM,基于字的模型?基于词的模型?)

    三个关键点:分词质量、领域相关词表质量、语言模型的种类和质量。

      1. 常见的中文错误类型

      发音错误, 特点:音近,发音不标准, 原因:地方发音,语言转化。 - 灰机

      拼写错误:特点: 正确词语错误使用, 原因: 输入法导致-拼音、五笔、手写 - 眼睛蛇

      语法,知识错误: 特点:逻辑错误,多字、少字,乱序 - 女性患病前列腺炎

      汉字是我们中国人使用的文字,它长得方方正正,写在纸上非常好看。

      在我呀呀学语的时候,爸爸妈妈就开始教我学汉字;我上幼儿园的时候,幼儿园老师继续教我学汉字;现在我上小学四年级了,我还在学汉字。老师告诉我说,汉语言文化博大精深,要活到老学到老。我对此也深有体会,记得在学习《字谜七则》时,有这样一道题把我难住了:有心走不快,见水装不完,长草难收拾,遇食就可餐。我绞尽脑汁就是想不出来是什么字,最后还是在老师的引导下我才知道谜底是“曼”字,为什么呢?你看“曼”字加上字谜里说的偏旁不就变成“慢”、“漫”、“蔓”、“馒”了吗。多有意思呀!

      在我学汉字的过程中,最让我记忆犹新不能忘记的是爸爸给我说的一句话:不认识的字要查字典,不能只读一半。这还要从我学汉字时闹的一个笑话说起,那时我觉得我认识的汉字已经很多了,就开始让爸爸给我推荐课外书,爸爸给了我一本《水浒》,我张口就读成了“水许”,爸爸妈妈笑了,爷爷奶奶也笑了,我有些莫名其妙,后来我查了字典才知道自己闹了一个大笑话。从那以后,我养成了查字典的习惯,这对我大量读课外书带来了很大的帮助。

      听说现在很多外国人都在学习汉字,我真感到自豪和骄傲!

      以上就是关于DNN语言模型相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


      推荐阅读:

      youtube网页版登录入口(海外网站cdn加速)

      香港高防ip(香港高防cdn)

      销售计划实施方案(销售计划实施方案pDNA)

      站内推广方式

      中国传统文化简介50字(中国传统文化简介100字)