目录

第一周 循环序列模型

第二周 自然语言处理与词嵌入

第三周 序列模型和注意力机制

第一周 循环序列模型

在进行语音识别时,给定一个输入音频片段X,并要求输出对应的文字记录Y,这个例子中输入和输出数据就是序列模型。

音乐生产问题也是使用序列数据的一个例子。

在自然语言处理中,首先需要决定怎样表示一个序列里单独的单词,解决办法式创建一个词典。然后每个单词的序列表示可以使用该词典长度的一维数组来表示,匹配的位置数据为1,其它位置数据为0。

下面看一个循环神经网络模型:

RNN反向传播示意图:

如何构建一个语言模型呢?

首先需要一个训练集,包含一个很大的英文文本语料(corpus)或者其它的语言,你想用于构建模型的语言的语料库。语料库是自然语言处理的一个专有名词,意思就是很长的或者说数量众多的英文句子组成的文本。

下图是一个RNN构建序列的概率模型:

RNN的梯度消失:

GRU单元:

LSTM主要公式:

双向RNN:

深层循环神经网络(Deep RNNs)

下面看一下RNN单元:

LSTM模型可以更好地解决梯度消失问题,能够更好地记住一条信息,并且可以在很多时间步中保存。

下面看下LSTM模块:

第二周 自然语言处理与词嵌入

在对单词进行向量化表示的时候,可以对其特征进行标志学习,例如学习apple的相关特性后,可以依据orange与apple的相似程度,推断出orange也会有相关的特性。一般可以定义一个多维的特征向量,每一维表示一个特性判断。

使用词潜入,能够有效解决一些同类型词特性识别问题,其中该词在训练集中出现较少或者就没有出现过。 当你的任务的训练集相对较小时,词嵌入的作用最明显,所以它广泛用于NLP领域。

词嵌入的特性

如果你学习一些词嵌入,通过算法来找到使得相似度最大化的单词w,你确实可以得到完全正确的答案。例如,man和women的差值,求出king对应的差值单词,比较理想的单词是queen。

词嵌入的一个显著成果就是,可学习的类比关系的一般性。举个例子,它能学会man对于woman相当于boy对于girl,因为manwoman之间和kingqueen之间,还有boygirl之间的向量差在gender性别)这一维都是一样的。

如何建立神经网络来预测序列中的下一个单词?如下图模型

CBOW是从原始语句推测目标字词;而Skip-Gram正好相反,是从目标字词推测出原始语句。CBOW对小型数据库比较合适,而Skip-Gram在大型语料中表现更好。 (下图左边为CBOW,右边为Skip-Gram

情感分类任务就是看一段文本,然后分辨这个人是否喜欢他们在讨论的这个东西,这是NLP中最重要的模块之一,经常用在许多应用中(PS:例如,从用户对某店铺的评价留言信息,分析出是正面评价还负面评价,并给出最终的打分衡量数据)。 情感分类一个最大的挑战就是可能标记的训练集没有那么多。下图是一个简单的模型:

第三周 序列模型和注意力机制

目前,深度学习技术可以借助seq2seq模型实现不同语言的互译,以及识别图片,给出图片中物体的描述。如下图,识别图中猫,给出文字描述:

集束搜索算法能够让机器翻译的记过更加贴近原意,而且语法也能够尽量规整。

长度归一化(Length normalization)是对集束搜索算法稍作调整的一种方式,帮助得到更好的结果。

当你使用RNN读一个句子,于是另一个会输出一个句子。我们要对其做一些改变,称为注意力模型(the Attention Model),并且这会使它工作得更好。注意力模型或者说注意力这种思想(The attention algorithm, the attention idea)已经是深度学习中最重要的思想之一,下图是其运行模式:

注意力模型能够让一个神经网络只注意到一部分的输入句子,当它生成句子的时候,更像人类翻译。模型如下图:

参考资料:

1.https://blog.csdn.net/u013733326/article/details/80890454

2.http://www.ai-start.com

Deep Learning.ai学习笔记_第五门课_序列模型的更多相关文章

  1. Deep Learning.ai学习笔记_第一门课_神经网络和深度学习

    目录 前言 第一周(深度学习引言) 第二周(神经网络的编程基础) 第三周(浅层神经网络) 第四周(深层神经网络) 前言 目标: 掌握神经网络的基本概念, 学习如何建立神经网络(包含一个深度神经网络), ...

  2. Deep Learning.ai学习笔记_第四门课_卷积神经网络

    目录 第一周 卷积神经网络基础 第二周 深度卷积网络:实例探究 第三周 目标检测 第四周 特殊应用:人脸识别和神经风格转换 第一周 卷积神经网络基础 垂直边缘检测器,通过卷积计算,可以把多维矩阵进行降 ...

  3. Deep Learning.ai学习笔记_第三门课_结构化机器学习项目

    目录 第一周 机器学习策略(1) 第二周 机器学习策略(2) 目标:学习一些机器学习优化改进策略,使得搭建的学习模型能够朝着最有希望的方向前进. 第一周 机器学习策略(1) 搭建机器学习系统的挑战:尝 ...

  4. Deep Learning.ai学习笔记_第二门课_改善深层神经网络:超参数调试、正则化以及优化

    目录 第一周(深度学习的实践层面) 第二周(优化算法) 第三周(超参数调试.Batch正则化和程序框架) 目标: 如何有效运作神经网络,内容涉及超参数调优,如何构建数据,以及如何确保优化算法快速运行, ...

  5. deep learning深度学习之学习笔记基于吴恩达coursera课程

    feature study within neural network 在regression问题中,根据房子的size, #bedrooms原始特征可能演算出family size(可住家庭大小), ...

  6. AI学习笔记:特征工程

    一.概述 Andrew Ng:Coming up with features is difficult, time-consuming, requires expert knowledge. &quo ...

  7. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  8. DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)

    一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...

  9. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

随机推荐

  1. Python操纵Excel,数据库

    操作excelxlwt:写入excel表格 ,用这个之前需要先导入模块 xlwt: import xlwtxlrd:读取excel,用这个之前需要先导入模块 xlwt:import xlrd 注意:e ...

  2. java添加多个水印

    package com.zhx.util.imgutil; import com.zhx.util.stringutil.ArithUtil; import net.coobird.thumbnail ...

  3. BroadcastReceiver插件化解决方案

    --摘自<android插件化开发指南> 1.静态广播和动态广播仅区别于注册方式的不同.静态广播的注册信息保存在PMS中,动态广播的注册信息保存在AMS中 2.发送广播,也就是Contex ...

  4. Jmeter实现Basic Auth方式登录

    背景 在实际测试日常中,产品有两种登录方式,一种是普通登录方式,另一种则是Basic Auth方式登录.两种登录对应着产品中不同的操作,对权限进行了一个划分. Postman登录 使用Postman登 ...

  5. Java中对数组的操作

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素.如:声明一个数组变量,numbers[100]来 ...

  6. Codeforces.348D.Turtles(容斥 LGV定理 DP)

    题目链接 \(Description\) 给定\(n*m\)的网格,有些格子不能走.求有多少种从\((1,1)\)走到\((n,m)\)的两条不相交路径. \(n,m\leq 3000\). \(So ...

  7. Centos中安装perl

    1.安装gcc,在虚拟机命令窗口中输入:yum install -y gcc 2.下载perl安装包输入命令:wget http://www.cpan.org/src/5.0/perl-5.16.1. ...

  8. .ftl文件介绍

    freemarker的文件一般以后缀ftl,ftl文件的头上要写<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /这样才能在ft ...

  9. [BZOJ3038]遥远的国度

    Description: 给定一棵树,每次询问u节点在以v为根时的子树权值最大值 Hint: \(n \le 10^5\) Solution: 这个模型还是很重要的 考虑树剖 以1节点为根建树 当\( ...

  10. C++程序设计方法3:类中的静态成员

    在类型前面加static修饰的数据成员,是隶属于类的,成为类的静态数据成员,也称为“类的变量” 静态数据成员被该类的所有对象共享(即所有对象中的这个数据域实际上处于同一个内存位置) 静态数据要在实现文 ...