主要内容

wordEmbeddingLayer

字嵌入层深度学习网络

自从R2018b

描述

一个字嵌入层地图单词索引向量。

使用一个词嵌入层深度学习长短期记忆(LSTM)网络。LSTM网络是一种递归神经网络(RNN),可以学习长期时间步骤的序列数据之间的依赖关系。一个字嵌入层地图一个词指数序列嵌入向量和学习这个词嵌入在训练。

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

创建

描述

例子

= wordEmbeddingLayer (,numWords)创建一个字嵌入层和指定嵌入维度和词汇量的大小。

例子

= wordEmbeddingLayer (,numWords,名称,值)设置可选属性使用一个或多个名称-值对。在单引号附上每个属性的名字。

属性

全部展开

字嵌入

维度的嵌入,指定为一个正整数。

例子:300年

单词数量模型,指定为一个正整数。如果独特的词的数量大于训练数据NumWords层,然后将词汇表之外的词汇映射到相同的向量。

参数和初始化

初始化权重函数,指定为以下之一:

  • “narrow-normal”——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。

  • “glorot”——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = NumWords + 1numOut =维度

  • “他”——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / numIn,在那里numIn = NumWords + 1

  • “正交”——初始化输入权重正交矩阵的QR分解Z=R对于一个随机矩阵Z抽样单位正态分布。[3]

  • “零”——初始化权重为零。

  • “的”——初始化权重的。

  • 函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳权重的大小。

层只初始化时的重量权重属性是空的。

数据类型:字符|字符串|function_handle

层权重,指定为一个——- - - - - -NumWords数组或一个————(NumWords + 1)数组。

如果权重是一个——- - - - - -NumWords数组,那么软件自动添加一个额外的列词汇表之外的输入训练网络时使用trainNetwork或者当初始化函数dlnetwork对象。

输入整数小于或等于NumWords,层输出向量权重(:,我)。否则,该层地图输出向量权重(:,NumWords + 1)

学习速率和正规化

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

软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor2,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions(深度学习工具箱)函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

全球的软件增加这个因素l2正则化因子来确定l2正则化这一层的权重。例如,如果WeightL2Factor2,那么l2正则化这一层的权重是全球的两倍l2正则化因子。您可以指定全球l2正则化因子使用trainingOptions(深度学习工具箱)函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork(深度学习工具箱),assembleNetwork(深度学习工具箱),layerGraph(深度学习工具箱),dlnetwork(深度学习工具箱)函数自动分配名称层的名称

数据类型:字符|字符串

这个属性是只读的。

输入层的数量。这一层只接受一个输入。

数据类型:

这个属性是只读的。

输入层的名称。这一层只接受一个输入。

数据类型:细胞

这个属性是只读的。

输出层的数量。这一层只有一个输出。

数据类型:

这个属性是只读的。

输出层的名称。这一层只有一个输出。

数据类型:细胞

例子

全部折叠

创建一个字嵌入层与嵌入维数300和5000字。

层= wordEmbeddingLayer (300、5000)
层= WordEmbeddingLayer属性:名称:“Hyperparameters维度:300 NumWords: 5000可学的参数权重:[]显示所有属性

包括一个字嵌入层LSTM网络。

inputSize = 1;embeddingDimension = 300;numWords = 5000;numHiddenUnits = 200;numClasses = 10;层= [sequenceInputLayer (inputSize) wordEmbeddingLayer embeddingDimension, numWords lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 6层阵列层:1“1维2序列输入序列输入”字嵌入层字嵌入层300维度和5000个独特的单词3”LSTM LSTM 200隐藏单位4”完全连接10完全连接层5”Softmax Softmax 6”crossentropyex分类输出

初始化一个词在深入学习网络中嵌入层嵌入pretrained词的权重,使用word2vec函数来提取层和设置权重“重量”名称-值对的wordEmbeddingLayer函数。词的词嵌入层预计列向量,所以你必须转置的输出word2vec函数。

emb = fastTextWordEmbedding;话说= emb.Vocabulary;尺寸= emb.Dimension;numWords =元素个数(单词);层= wordEmbeddingLayer(维、numWords“重量”word2vec (emb)”)
层= WordEmbeddingLayer属性:名称:“Hyperparameters维度:300 NumWords: 999994可学的参数权重:(300×999994单)显示所有属性

创建相应的词字嵌入编码,输入嵌入这个词的词汇wordEncoding作为一个单词列表。

内附= wordEncoding(字)
内附= wordEncoding属性:NumWords: 999994词汇:[1×999994字符串)

引用

[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”In《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。https://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf

[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”In学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。https://doi.org/10.1109/ICCV.2015.123

[3]萨克斯,安德鲁·M。,James L. McClelland, and Surya Ganguli. "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks."arXiv预印本arXiv: 1312.6120(2013)。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

版本历史

介绍了R2018b