主要内容

字嵌入层

深度学习网络的字嵌入层

描述

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

在深度学习长短时记忆(LSTM)网络中使用单词嵌入层。LSTM网络是一种递归神经网络(RNN),可以学习序列数据时间步长之间的长期依赖关系。单词嵌入层将一系列单词索引映射到嵌入向量,并在训练期间学习单词嵌入。

这一层需要深入学习™.

创造

描述

实例

=字嵌入层(,纽姆沃兹)创建单词嵌入层并指定嵌入维度和词汇表大小。

实例

=字嵌入层(,纽姆沃兹,名称、值)设置可选项性质使用一个或多个名称-值对。用单引号将每个属性名称括起来。

性质

全部展开

字嵌入

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

例子:300

模型中的字数,指定为正整数。如果训练数据中唯一的单词数大于纽姆沃兹,然后该层将词汇表外的单词映射到同一向量。

参数和初始化

函数初始化权值,指定为以下其中之一:

  • “narrow-normal”-从均值为零、标准差为0.01的正态分布中独立抽样来初始化权重。

  • “格洛特”–使用Glorot初始值设定项初始化权重[1](也称为Xavier初始值设定项)。Glorot初始值设定项以零均值和零方差从均匀分布中独立采样2/(单位:分钟+单位:分钟)哪里numIn = NumWords + 1numOut=尺寸

  • “他”–使用He初始值设定项初始化权重[2]. He初始值设定项从均值和方差为零的正态分布采样2/努明哪里numIn = NumWords + 1

  • “正交”–使用以下命令初始化输入权重:Q的QR分解得到的正交矩阵Z=QR对于一个随机矩阵Z从单位正态分布中抽样。[3]

  • “零”—初始化权值为0。

  • “的”–使用1初始化权重。

  • 函数句柄——用自定义函数初始化权重。如果指定函数句柄,则该函数必须是这种形式的权重=func(sz)哪里深圳是重量的大小。

属性时,层才初始化权重砝码属性为空。

数据类型:字符|一串|功能手柄

层权重,指定为——- - - - - -纽姆沃兹数组或————(NumWords + 1)数组。

如果砝码是一个——- - - - - -纽姆沃兹数组,然后当使用。数组训练网络时,软件会自动为词汇表外的输入附加一列列车网络函数或初始化dlnetwork对象。

对于输入整数小于或等于纽姆沃兹,层输出矢量权重(:,i).否则,层映射输出矢量权重(:,NumWords+1)

学习速率与正则化

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

该软件将这个因子乘以全局学习率,以确定这一层权重的学习率。例如,如果加权比率因子2.,则该层权重的学习率为当前全局学习率的两倍。该软件根据您指定的设置来确定全局学习率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

层名,指定为字符向量或字符串标量。为数组输入列车网络,装配网络,layerGraph,dlnetwork函数自动为层分配名称名称着手''

数据类型:字符|一串

此属性是只读的。

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

数据类型:双重的

此属性是只读的。

输入层名。这一层只接受单个输入。

数据类型:细胞

此属性是只读的。

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

数据类型:双重的

此属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建嵌入维度为300和5000单词的单词嵌入层。

层= wordEmbeddingLayer(300、5000)
layer=WordEmbeddingLayer,属性:名称:''超参数维度:300 NumWords:5000可学习参数权重:[]显示所有属性

在LSTM网络中包括单词嵌入层。

输入大小=1;嵌入尺寸=300;numWords=5000;numhidden单位=200;numclass=10;layers=[sequenceInputLayer(inputSize)wordEmbeddedingLayer(EmbeddedingDimension,numWords)lstmLayer(numHiddenUnits,“输出模式”,“最后”)fullyConnectedLayer(NumClass)softmaxLayer classificationLayer]
层x1 = 6层阵列层:1“1维2序列输入序列输入”字嵌入层字嵌入层300维度和5000个独特的单词3”LSTM LSTM 200隐藏单位4”完全连接10完全连接层5”Softmax Softmax 6”crossentropyex分类输出

要使用预训练单词嵌入的权重初始化深度学习网络中的单词嵌入层,请使用word2vec函数提取图层权重并设置“重量”的名称-值对字嵌入层作用单词嵌入层需要一列单词向量,因此必须转置word2vec作用

emb = fastTextWordEmbedding;话说= emb.Vocabulary;尺寸= emb.Dimension;numWords =元素个数(单词);层= wordEmbeddingLayer(维、numWords...“重量”,word2vec(教统局,words)’)
layer = WordEmbeddingLayer带有属性:Name: " Hyperparameters Dimension: 300 NumWords: 999994 Learnable Parameters Weights: [300×999994 single]显示所有属性

要从单词嵌入创建相应的单词编码,请将单词嵌入词汇表输入到文字编码作为一个单词列表。

enc=单词编码(单词)
enc = wordEncoding with properties: NumWords: 999994

参考文献

[1]格洛洛,泽维尔,还有约书亚·本吉奥。理解训练深度前馈神经网络的困难在第十三届人工智能和统计国际会议记录, 249–356. 意大利撒丁岛:AISTATS,2010年。

[2] 何开明、张向宇、任少清和孙健。“深入研究整流器:在ImageNet分类上超越人类水平的性能。”年2015 IEEE计算机视觉国际会议论文集, 1026 - 1034。计算机视觉,2015。

[3] 萨克斯、安德鲁·M、詹姆斯·L·麦克莱兰和苏里亚·甘古利。“深层线性神经网络学习非线性动力学的精确解。”金宝搏官方网站arXiv预印本arXiv:1312.6120(2013).

扩展能力

GPU代码生成
使用GPU编码器为NVIDIA®GPU生成CUDA®代码™.

在R2018b中引入