主要内容

Wordembeddinglayer

深度学习网络的单词嵌入层

描述

一个单词嵌入图层将单词索引映射到向量。

Use a word embedding layer in a deep learning long short-term memory (LSTM) network. An LSTM network is a type of recurrent neural network (RNN) that can learn long-term dependencies between time steps of sequence data. A word embedding layer maps a sequence of word indices to embedding vectors and learns the word embedding during training.

该层需要深度学习工具箱™。

创建

描述

例子

= Wordembeddinglayer(方面,,,,数字创建一个单词嵌入层,并指定嵌入尺寸和词汇大小。

例子

= Wordembeddinglayer(方面,,,,数字,,,,名称,价值设置可选properties使用一个或多个名称值对。将每个属性名称包装在单引号中。

特性

展开全部

单词嵌入

单词嵌入的维度,指定为正整数。

例子:300

模型中的单词数,指定为正整数。如果培训数据中的唯一单词数量大于数字,然后该层将磁盘外词映射到同一矢量。

参数和初始化

功能以初始化权重,指定为以下一个:

  • “窄正常”- 通过从平均值零和标准偏差为0.01的正态分布中独立采样来初始化权重。

  • “ Glorot”- 使用Glorot初始化器初始化重量[1](也称为Xavier Initializer)。Glorot初始化器独立于均匀分布的均匀分布和方差样本2/(numin + numout), 在哪里numin = numwords + 1numout =维度

  • '他'- 用He Initializer初始化重量[2]。来自均值和方差的正态分布的HE初始化样品样本2/numin, 在哪里numin = numwords + 1

  • '正交'- 初始化输入权重,由QR分解给出的正交基质z=r对于随机矩阵z从单位正态分布采样。[3]

  • “零”- 用零初始化权重。

  • 'ones'- 用一个初始化权重。

  • 功能处理 - 使用自定义功能初始化权重。如果指定函数句柄,则该函数必须是表单的重量= func(SZ), 在哪里SZ是重量的大小。

The layer only initializes the weights when the权重属性是空的。

数据类型:char|细绳|function_handle

层权重,指定为方面-经过-数字数组或一个方面-经过-(numwords+1) 大批。

如果权重是一个方面-经过-数字阵列,然后该软件会在使用该网络训练网络时自动附加额外的列,以进行播放外输入火车网功能或初始化dlnetwork目的。

用于输入整数一世小于或等于数字,该层输出向量重量(:,i)。否则,图层映射输出向量权重(:,numwords+1)

学习费率和正则化

权重的学习率因子,指定为非负标量。

该软件将该因素乘以全球学习率,以确定该层中权重的学习率。例如,如果重量应培训2,那么此层中权重的学习率是当前全球学习率的两倍。该软件根据您使用的设置确定全局学习率训练(深度学习工具箱)功能。

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

l2权重的正则化因子,指定为非负标量。

该软件将该因素乘以全局l2正则化因子确定l2该层中的权重的正则化。例如,如果举重2因子2,然后l2该层中重量的正则化是全局的两倍l2正则化因子。您可以指定全局l2使用的正规化因子使用训练(深度学习工具箱)功能。

数据类型:单身的|双倍的|int8|INT16|INT32|INT64|UINT8|UINT16|UINT32|Uint64

图层名称,,,,specified as a character vector or a string scalar. For数组输入,火车网,,,,assembleNetwork,,,,LayerGraph, 和dlnetwork功能自动将名称分配给具有名称的图层''

数据类型:char|细绳

此属性仅阅读。

该层的输入数量。该层仅接受单个输入。

数据类型:双倍的

此属性仅阅读。

层的输入名称。该层仅接受单个输入。

数据类型:细胞

此属性仅阅读。

层的输出数。该层仅具有单个输出。

数据类型:双倍的

此属性仅阅读。

层的输出名称。该层仅具有单个输出。

数据类型:细胞

例子

全部收缩

创建一个具有嵌入尺寸300和5000个单词的单词嵌入层。

layer = Wordembeddinglayer(300,5000)
layer = wordembeddinglayer具有属性:名称:''超参数尺寸:300 numwords:5000可学习的参数权重:[]显示所有属性

在LSTM网络中包含一个单词嵌入层。

inputsize = 1;嵌入dimension = 300;numWords = 5000;numhidendunits = 200;数字= 10;layers = [sequenceInputlayer(inputsize)Wordembeddinglayer(embeddingDimension,numwords)lstmlayer(numhidendunits,numhiddenunits,'outputmode',,,,'最后的')完整连接的layerer(numClasses)SoftMaxlayer分类器]
层= 6x1层阵列,带有图层:1''序列输入序列输入,带有1个维度2''单词嵌入层嵌入层带有300个尺寸和5000个唯一单词3''LSTM LSTM,具有200个隐藏的单位4'''完全连接的10完全连接10完全连接连接的层5''SOFTMAX SOFTMAX 6'分类crossentropyex

要在深度学习网络中初始化单词嵌入层,并具有验证单词嵌入的权重,请使用Word2Vec功能以提取层权重并设置“重量”名称值对Wordembeddinglayer功能。单词嵌入层期望单词向量的列,因此您必须转换Word2Vec功能。

EMB = FastTextWordembedding;单词= Emb.Vocabulary;尺寸= enm.dimension;numwords = numel(words);layer = wordembeddinglayer(尺寸,numwords,...“重量”,word2vec(emb,word)')
layer = wordembeddinglayer具有属性:name:''超参数尺寸:300 numwords:999994可学习参数权重:[300×999994 SINCE]显示所有属性

要创建从单词嵌入单词编码的相应单词,请输入嵌入词汇的单词文字编码功能是单词列表。

enc = wordencoding(单词)
enc =带有属性的文字编码:numwords:999994词汇:[1×999994字符串]

references

[1] Glorot,Xavier和Yoshua Bengio。“了解训练深馈神经网络的困难。”在第十三国际人工智能与统计会议论文集,249–356。意大利萨迪尼亚:Aistats,2010年。

[2]他,Kaiming,Xiangyu Zhang,Shaoqing Ren和Jian Sun。“深入研究整流器:超过人类在成像网分类方面的表现。”在2015年IEEE国际计算机愿景会议论文集,1026–1034。华盛顿特区:IEEE计算机视觉协会,2015年。

[3] Saxe,Andrew M.,James L. McClelland和Surya Ganguli。“深层线性神经万博 尤文图斯网络中学习的非线性动力学的确切解决方案。”ARXIV预印ARXIV:1312.6120(2013)。

扩展功能

GPU代码生成
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

版本历史记录

在R2018B中引入