创建一列矩阵数字一样吗_吴恩达深度学习笔记(122) | NLP | 嵌入矩阵Embedding Matrix...
嵌入矩阵(Embedding Matrix)
接下来我们要将学习词嵌入这一问题具体化,当你应用算法来学习词嵌入时,实际上是学习一个嵌入矩阵,我们来看一下这是什么意思。
和之前一样,假设我们的词汇表含有10,000个单词,词汇表里有a,aaron,orange,zulu,可能还有一个未知词标记。我们要做的就是学习一个嵌入矩阵E,它将是一个300×10,000的矩阵,如果你的词汇表里有10,000个,或者加上未知词就是10,001维。这个矩阵的各列代表的是词汇表中10,000个不同的单词所代表的不同向量。假设orange的单词编号是6257(下图编号1所示),代表词汇表中第6257个单词,我们用符号O_6527 来表示这个one-hot向量,这个向量除了第6527个位置上是1(下图编号2所示),其余各处都为0,显然它是一个10,000维的列向量,它只在一个位置上有1,它不像图上画的那么短,它的高度应该和左边的嵌入矩阵的宽度相等。
假设这个嵌入矩阵叫做矩阵E,注意如果用E去乘以右边的one-hot向量(上图编号3所示),也就是O_6527,那么就会得到一个300维的向量,E是300×10,000的,O_6527是10,000×1的,所以它们的积是300×1的,即300维的向量。
要计算这个向量的第一个元素,你需要做的是把E的第一行(上图编号4所示)和O_6527的整列相乘,不过O_6527的所有元素都是0,只有6257位置上是1,最后你得到的这个向量的第一个元素(上图编号5所示)就是orange这一列下的数字(上图编号6所示)。然后我们要计算这个向量的第二个元素,就是把E的第二行(上图编号7所示)和这个O_6527相乘,和之前一样,然后得到第二个元素(上图编号8所示),以此类推,直到你得到这个向量剩下的所有元素(上图编号9所示)。
这就是为什么把矩阵E和这个one-hot向量相乘,最后得到的其实就是这个300维的列,就是单词orange下的这一列,它等于e_6257,这个符号是我们用来表示这个300×1的嵌入向量的符号,它表示的单词是orange。
更广泛来说,假如说有某个单词w,那么e_w就代表单词w的嵌入向量。同样,EO_j,O_j就是只有第j个位置是1的one-hot向量,得到的结果就是e_j,它表示的是字典中单词j的嵌入向量。
在这一小节中,要记住的一件事就是我们的目标是学习一个嵌入矩阵E。
在下节笔记中你将会随机地初始化矩阵E,然后使用梯度下降法来学习这个300×10,000的矩阵中的各个参数,E乘以这个one-hot向量(上图编号1所示)会得到嵌入向量。再多说一点,当我们写这个等式(上图编号2所示)的时候,写出这些符号是很方便的,代表用矩阵E乘以one-hot向量O_j。
但当你动手实现时,用大量的矩阵和向量相乘来计算它,效率是很低下的,因为one-hot向量是一个维度非常高的向量,并且几乎所有元素都是0,所以矩阵向量相乘效率太低,因为我们要乘以一大堆的0。
所以在实践中你会使用一个专门的函数来单独查找矩阵E的某列,而不是用通常的矩阵乘法来做,但是在画示意图时(上图所示,即矩阵E乘以one-hot向量示意图),这样写比较方便。但是例如在Keras中就有一个嵌入层,然后我们用这个嵌入层更有效地从嵌入矩阵中提取出你需要的列,而不是对矩阵进行很慢很复杂的乘法运算。
在本笔记中你见到了在学习嵌入向量的过程中用来描述这些算法的符号以及关键术语,矩阵E它包含了词汇表中所有单词的嵌入向量。
在下节笔记中,我们将讨论学习矩阵E的具体算法。
创建一列矩阵数字一样吗_吴恩达深度学习笔记(122) | NLP | 嵌入矩阵Embedding Matrix...相关推荐
- 吴恩达深度学习代码_吴恩达深度学习笔记(58)-深度学习框架Tensorflow
TensorFlow 有很多很棒的深度学习编程框架,其中一个是TensorFlow,很期待帮助你开始学习使用TensorFlow,我想在这个笔记中向你展示TensorFlow程序的基本结构,然后让你自 ...
- 训练softmax分类器实例_吴恩达深度学习笔记(56)-训练一个 Softmax 分类器
训练一个 Softmax 分类器(Training a Softmax classifier) 上一个笔记中我们学习了Softmax层和Softmax激活函数,在这个笔记中,你将更深入地了解Softm ...
- 深度学习如何提高训练集准确率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率...
单一数字评估指标(Single number evaluation metric) 无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估 ...
- yolo算法_吴恩达深度学习笔记(100)-目标检测之YOLO 算法讲解
YOLO 算法(Putting it together: YOLO algorithm) 你们已经学到对象检测算法的大部分组件了,在这个笔记里,我们会把所有组件组装在一起构成YOLO对象检测算法. 我 ...
- 准确率 召回率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率
单一数字评估指标(Single number evaluation metric) 无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估 ...
- 吴恩达深度学习笔记(四)
吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...
- 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)
深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...
- 吴恩达深度学习笔记——神经网络与深度学习(Neural Networks and Deep Learning)
文章目录 前言 传送门 神经网络与深度学习(Neural Networks and Deep Learning) 绪论 梯度下降法与二分逻辑回归(Gradient Descend and Logist ...
- 吴恩达深度学习笔记——结构化机器学习项目(Structuring Machine Learning Projects)
深度学习笔记导航 前言 传送门 结构化机器学习项目(Machine Learning Strategy) 机器学习策略概述 正交化(orthogonalization) 评价指标 数字评估指标的单一性 ...
最新文章
- 仿百度GIF验证码 GIFEncoder 跳动验证码 随机背景色、颜色、字体、子大小、偏移、干扰线等...
- python pptx 从中间加几页_python-pptx---插入表格
- 12、Power Query-透视列实例应用(多单元格记录合并及汇总)
- T-SQL RIGHT JOIN
- SAP UI5 application - model propagation
- oracle中主键创建的语法,Oracle中主键、外键、索引、序列、唯一性约束的创建
- 【面试笔记系列】排序算法汇总
- 【Python】七段数码管绘制问题
- Mysql通过一个限制条件,查出多条不同的记录
- 【数据仓库】数据仓库设计前如何粗估所需的存储空间大小?
- 小米电视4A核心技术之语音识别浅析
- PHP中require(),include(),require_once()和include_once()有什么区别
- RichTextBox 中英文混输时,字体样式不同的解决方式
- SQL数据库的查询操作大全(select)
- 东芝机械手tspc安装_日本东芝工四轴机械手THL800
- 计算机DVD驱动禁用怎么恢复,设备管理器中找不到dvd驱动器 怎么恢复 - 驱动管家...
- 机器学习(课堂笔记)Day01:机器学习相关概念简介
- 【业界思考】Sam Altman 山姆奥特曼:Idea Generation 创意产生——优秀的创始人对任何事情都有很多想法
- 同花顺数据获取思路及算法
- 尚医通 (三十六) --------- 微信支付
热门文章
- Zabbix3.2.6之通过JMX监控Tomcat
- http返回头中content-length与Transfer-Encoding: chunked的问题释疑
- Spring 3 MVC and JSR303 @Valid example
- 我对Linux输入输出重定向的小结
- ZZULIOJ 1109: 数根(函数专题)
- android+场景切换,Android共享元素场景切换动画的实现
- 信息学奥赛一本通(1047:判断能否被3,5,7整除)
- string matching(HDU-6629)
- 组合数学 —— 基本计数原理
- 与指定数字相同的数的个数(信息学奥赛一本通-T1068)