一、简介

RNN的经典的用例之一就是将文本从一种语言翻译成另一种语言。 过去,这是使用手工制作的功能以及许多复杂的条件来完成的,这些条件花费很长时间才能创建并且理解起来很复杂。 因此,让我们看看RNN如何使生活更轻松,做得更好。

二、RNN机器翻译

简单模型(编码器-解码器模型)
最简单的想法是使用基本的RNN,如下图所示。 在此图中,展开了RNN,以便更轻松地了解正在发生的事情。这种类型的RNN是对RNN(seq2seq)进行排序的序列。

编码器
我们首先计算输入热词向量的词嵌入。 然后我们发送嵌入的单词进行翻译。 我们的(嵌入词向量)乘以一些权重矩阵W(hx)。 我们先前计算的隐藏状态(这是RNN节点的先前输出)乘以不同的权重矩阵W(hh)。 然后将这两个乘法的结果相加,并应用非线性(如Relu / tanh)。 现在这是我们的下一个隐藏状态h。然后在输入句子的整个过程中重复此过程。 显然,在第一个输入字x0上没有先前的隐藏状态,因此我们仅将此h0设置为全零。

如何知道我们的输入句子多长时间?
另请注意,我们的句子的长度可能不同,因此我们还必须有一个停止标记(例如句号),该标记表示我们已经到达了句子的结尾。 我们希望我们的模型将学习何时预测输出的停止令牌。 停止令牌基本上只是我们训练数据中的一个额外“单词”。

解码器
一旦到达停止令牌,便进入解码器RNN节点以开始产生输出矢量。为了在每个时间步长从解码器RNN获得输出y,我们有另一个权重矩阵W(S),我们将其隐藏状态h相乘以获得矢量输出。 然后将softmax应用于此,这将为我们提供最终输出。 此最终输出告诉您在该时间步预测了什么单词向量。

该模型非常简单,实际上只能用于非常排序的句子(2-3个单词)。 这是因为这些基本的RNN难以记住过去的多个步骤(消失的梯度问题)。

该模型的改进
那么,对于这个简单的模型,我们可以做些什么改变以使事情变得更好呢?
1、训练不同的RNN权重以进行编码和解码。 在上面的模型中,我们使用相同的RNN节点进行编码和解码,这显然不是学习的最佳选择。
2、在解码阶段,而不是像前面那样,仅将先前的隐藏阶段作为输入,现在,我们还包括编码器的最后一个隐藏阶段(在下图中将其称为C)。 除此之外,我们还包括最后的预测输出字向量。 这应该有助于模型知道它只是输出某个单词,而不是再次输出该单词。

因此,解码器节点现在将具有3个权重矩阵(其中一个是先前的隐藏状态h,一个是最后预测的单词向量y,一个是最后一个编码器隐藏状态c),我们将相应的输入乘以然后求和以获得 我们的解码输出。下图显示了另一种查看整个过程的方法。 从左下角开始,一直向上穿过直到到达红色圆圈。 然后向左和向上移动,直到预测到停止标记(完全停止)为止。重要的是要记住,在编码器每一步中用于乘以输入的权重矩阵是完全相同的,不是 不同的时间步长会有所不同。在解码阶段,它是与编码阶段不同的权重矩阵,但是在解码阶段仍使用此权重矩阵。

使用GRU
这可能与仅使用简单的RNN单元可以得到的效果一样好,因此,如果我们想做得更好,我们需要使用另一种类型的RNN单元,称为门控循环单元(简称GRU)。GRU的基本思想是保持内存保持长距离依赖性。 您的模型将学习如何做到这一点。 这也将允许错误消息根据输入以不同的强度传播。

三、总结

本次我们主要分享了与递归神经网络(RNN)相关的部分内容,大家感兴趣的话可以留言探讨。

机器学习-RNN机器翻译相关推荐

  1. 【李宏毅】机器学习-RNN

    RNN(Recurrent Neural Network) 为什么需要RNN呢? 举例来说,有一个任务需要识别每个单词代表的含义.在下面的句子中,taipei分别表示目的地和出发地,我们希望神经网络能 ...

  2. 循环神经网络LSTM RNN回归:sin曲线预测

    摘要:本篇文章将分享循环神经网络LSTM RNN如何实现回归预测. 本文分享自华为云社区<[Python人工智能] 十四.循环神经网络LSTM RNN回归案例之sin曲线预测 丨[百变AI秀]& ...

  3. 机器翻译和人工智能翻译,语言学与机器翻译

    利用深度学习技术翻译和机器翻译相比,会有哪些不同 谷歌人工智能写作项目:神经网络伪原创 深度学习能应用在哪些领域? 深度学习的快速发展,不仅使机器学习得到许多实际的应用,还拓展了整个AI(人工智能的) ...

  4. 浅谈机器学习之深度学习

    浅谈机器学习之深度学习 从人工智能到机器学习再到深度学习 人工智能是个很大的知识集合体,但目前有个和它关系最大的学科---机器学习 机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算 ...

  5. 统计学、深度学习、机器学习、数据挖掘

    统计学.深度学习.机器学习.数据挖掘 1. 2. 3.数据挖掘: (1)数据挖掘是在大型数据库中,自动地发现有用信息的过程.用来探查大型数据库,发现先前未知的有用模式,预测未来观测接结果. (2)它是 ...

  6. 机器学习 数据挖掘 统计学 深度学习

    1.机器学习 (1)机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能. (2)机器学习是对能通过经验自动改进的计算机算法的研究. (3)机器学习是 ...

  7. 机器学习从零到一的基础知识总集篇

    机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性 ...

  8. 人工智能、机器学习、数据挖掘等基础概念-考研复试面试

    (写一点关于前沿知识的简单问题,可能复试中会问到的) 文章目录 1.人工智能(Artificial Intelligence, AI) 1.1.人工智能是什么? 1.2.人工智能应用在什么地方? 1. ...

  9. 浅析机器学习、深度学习、神经网络三者的关系及内在联系

    一.机器学习 机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不 ...

最新文章

  1. im和音视频开发哪个更好_找时间成为更好的开发人员
  2. php相关扩展安装及报错总结
  3. cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析
  4. sql server 用户'sa'登录失败(错误18456)
  5. 1019.Line Painting(线段树 离散化)
  6. Jenkins进阶-Gitlab使用Webhook实现Push代码自动部署(3)
  7. centos7 安装 php7
  8. demo 网络运维_【运维面试】面试官:你们公司的docker主要用来做啥?
  9. 计算机网络常用术语WWW,计算机网络常用术语
  10. python倒三角代码_vb代码输出倒三角形 python倒三角代码
  11. android expandablelistview横向,ExpandableListView的使用多级列表
  12. PHP工程师的最佳学习路线
  13. dcat-admin oss图片上传
  14. Laragon 在Windows中快速搭建Laravel本地开发环境
  15. 只有两个键的键盘,只会复制粘贴
  16. 消费心理学(04):价格锚点
  17. 七彩虹计算机主板维修,七彩虹C .H61U v28主板维修一例
  18. dell灵越笔记本后盖怎么拆_戴尔灵越5584笔记本按键拆卸、安装教程
  19. 我的3D游戏开发书架 1
  20. Linux学习问题篇

热门文章

  1. react中findDOMNode
  2. 成功职业指导:我适合往管理方向发展吗?
  3. 常用的console 的方法,你真的了解 console 吗
  4. IDEA alt+ins快捷键失效问题解决方法
  5. parallel的一个小坑
  6. SpringMVC @RequestBody和@ResponseBody原理解析
  7. 瑞丽的SQL-基于窗体的排名计算
  8. LightOJ - 1079 Just another Robbery —— 概率、背包
  9. 服务器绑定自己的域名-腾讯云(超详细)
  10. fckeditor编辑器上传漏洞getshell——突破.变_的限制