主要内容

wordEmbeddingLayer

深度学习网络的字嵌入层

描述

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

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

此图层需要深入学习工具箱™。

创建

描述

例子

= wordembeddinglayer(numwords.的)创建单词嵌入层并指定嵌入维度和词汇表大小。

例子

= wordembeddinglayer(numwords.名称,值的)设置可选属性使用一个或多个名称值对。将每个属性名称括在单引号中。

特性

全部展开

字嵌入

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

例子:300

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

参数和初始化

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

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

  • 'glorot'- 使用Glorot Initializer初始化权重[1](也称为Xavier Initializer)。Glorot Initializer独立地从均匀分布的样本,零均匀和方差2 /(numin + numout),在那里numIn = NumWords + 1numout =尺寸

  • “他”- 用初始化程序初始化权重[2].他初始化来自正常分布的样本,零均值和方差2 / NUMIN.,在那里numIn = NumWords + 1

  • '正交'- 初始化输入权重问:,QR分解给出的正交矩阵Z.=问:R.对于一个随机矩阵Z.从单位正态分布中抽样。[3]

  • 'zeros'—初始化权值为0。

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

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

属性时,层才初始化权重重量财产是空的。

数据类型:字符|细绳|function_handle.

层权重,指定为a——- - - - - -numwords.阵列或A.————(NumWords + 1)数组。

如果重量是A.——- - - - - -numwords.数组,然后当使用。数组训练网络时,软件会自动为词汇表外的输入附加一列trainNetwork函数或初始化dlnetwork对象。

对于输入整数一世小于或等于numwords.,层输出矢量重量(:,i).否则,层映射输出矢量权重(:,numwords + 1)

学习速度和正规化

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

该软件将这个因子乘以全局学习率,以确定这一层权重的学习率。例如,如果举重性活动器2,则该层权重的学习率为当前全局学习率的两倍。该软件根据您指定的设置来确定全局学习率trainingOptions(深度学习工具箱)功能。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

L.2权值的正则化因子,指定为非负标量。

软件将这个因素乘以全球L.2确定正则化因素确定L.2正则化这一层的权重。例如,如果WeightL2Factor2,那么L.2这一层权重的正则化是全局权重的两倍L.2正则化因素。您可以指定全局L.2正则化因子trainingOptions(深度学习工具箱)功能。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

层名,指定为字符向量或字符串标量。为阵列输入,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为层分配名称姓名设置''

数据类型:字符|细绳

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:细胞

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:细胞

例子

全部折叠

使用嵌入维度300和5000字的单词嵌入层。

层= wordEmbeddingLayer(300、5000)
Layer = WordembeddingLayer具有属性:名称:''Quand参数维数:300 NUM字:5000学习参数权重:[]显示所有属性

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

输入= 1;embeddingdimension = 300;numwords = 5000;numhidandunits = 200;numclasses = 10;图层= [sequentInputLayer(inputsize)wordembeddinglayer(embeddingdimension,num字)lstmlayer(numhidentunits,'OutputMode''最后的')全连接列(numclasses)softmaxlayer分类层]
层x1 = 6层阵列层:1“1维2序列输入序列输入”字嵌入层字嵌入层300维度和5000个独特的单词3”LSTM LSTM 200隐藏单位4”完全连接10完全连接层5”Softmax Softmax 6”crossentropyex分类输出

初始化在深度学习网络中的单词嵌入层,重量从嵌入的Word嵌入,使用word2vec函数提取图层权重并设置'重量'的名称-值对wordEmbeddingLayer功能。单词嵌入层期望字向量列,因此您必须转换输出word2vec功能。

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

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

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

参考文献

[1]格洛洛,泽维尔,还有约书亚·本吉奥。理解训练深度前馈神经网络的困难在第十三国际人工智能与统计会议的诉讼程序,249-356。撒丁岛,意大利:Aistats,2010。

[2]他,Kaiming,湘雅张,少清任,剑孙。“深入研究整流器:超越了在想象中分类上的人力水平表现。”在2015 IEEE计算机视觉国际会议论文集, 1026 - 1034。计算机视觉,2015。

[3] Saxe,Andrew M.,James L. McClelland和Surya Ganguli。“深线性神经网金宝搏官方网站络中学习非线性动力学的精确解决方案”。ARXIV预印迹ARXIV:1312.6120(2013)。

扩展能力

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

在R2018B中介绍