主要内容

字嵌入层

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

描述

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

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

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

创建

描述

例子

= wordEmbeddingLayer (numWords创建单词嵌入层并指定嵌入维度和词汇表大小。

例子

= wordEmbeddingLayer (numWords名称、值设置可选属性使用一个或多个名称-值对。将每个属性名用单引号括起来。

属性

全部展开

单词嵌入

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

例子:300

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

参数和初始化

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

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

  • “glorot”-使用gloria初始化器初始化权重[1](也称为Xavier初始化器)。格洛特初始化器从均值和方差均为零的均匀分布中独立抽样2 / (numIn + numOut)哪里nummin=NumWords+1numOut =维度

  • “他”-使用He初始化器初始化权值[2].初始化器的样本来自均值和方差为零的正态分布2 / numIn哪里nummin=NumWords+1

  • “正交”—初始化输入权值的QR分解给出的正交矩阵ZR对于随机矩阵Z从单位正态分布中取样。[3]

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

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

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

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

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

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

如果权重是一个-借-NumWords数组,然后在使用列车网络函数或初始化数据链路网络对象

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

学习速率和正规化

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

软件将该系数乘以全局学习率,以确定该层中权重的学习率。例如,如果WeightLearnRateFactor2,则此层中权重的学习速率是当前全局学习速率的两倍。软件将根据使用指定的设置确定全局学习速率培训选项(深度学习工具箱)函数。

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

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

软件将该系数乘以全局系数l2正则化因子的确定l2此层中权重的正则化。例如,如果权重12因子2,那么l2该层中权重的正则化是全局权重的两倍l2正则化因子。您可以指定全局l2使用正则化因子培训选项(深度学习工具箱)函数。

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

层名,指定为字符向量或字符串标量。为数组输入,列车网络assembleNetwork分层图数据链路网络函数会自动将名称指定给具有的名字设置为''

数据类型:烧焦|字符串

此属性是只读的。

层的输入数。此层仅接受单个输入。

数据类型:双重的

此属性是只读的。

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

数据类型:单间牢房

此属性是只读的。

层的输出数。该层只有一个输出。

数据类型:双重的

此属性是只读的。

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

数据类型:单间牢房

例子

全部崩溃

创建一个单词嵌入层,嵌入维度为300和5000个单词。

层=字嵌入层(3005000)
名称:" Hyperparameters Dimension: 300 NumWords: 5000 Learnable Parameters Weights:[]显示所有属性

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

inputSize = 1;embeddingDimension = 300;numWords = 5000;numHiddenUnits = 200;numClasses = 10;layer = [sequenceInputLayer(inputSize) wordEmbeddingLayer(embedingdimension,numWords) lstmLayer(numHiddenUnits,“OutputMode”“最后一次”)软连接层(numClasses)
layers=6x1带层的层阵列:1''序列输入序列输入1维2''字嵌入层字嵌入层300维和5000个唯一字3''LSTM LSTM 200个隐藏单元4''完全连接10完全连接层5''Softmax Softmax 6''分类输出交叉熵

在深度学习网络中初始化词嵌入层,使用预先训练的词嵌入权值word2vec函数提取层权重并设置“重量”的名称-值对字嵌入层函数。单词嵌入层需要单词向量的列,所以你必须转置输出word2vec函数。

emb=fastTextWordEmbedding;words=emb.词汇;dimension=emb.dimension;numWords=nummel(words);layer=wordEmbeddingLayer(dimension,numWords,...“重量”word2vec (emb)”)
layer=WordEmbeddingLayer,属性:名称:''超参数维度:300 NumWords:99994可学习参数权重:[300×99994 single]显示所有属性

从词嵌入生成对应的词编码,输入词嵌入词汇表到wordEncoding用作单词列表。

内附= wordEncoding(字)
enc=wordEncoding,属性:NumWords:99994词汇表:[1×99994字符串]

参考文献

[1] 格洛特、泽维尔和约书亚·本吉奥。“理解训练深度前馈神经网络的困难”,摘自第十三届国际人工智能和统计会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。

何开明,张翔宇,任少青,孙健深入研究整流器:在图像网分类上超越人类水平的表现。在2015年IEEE计算机视觉国际会议记录,1026–1034。华盛顿特区:IEEE计算机视觉学会,2015年。

Saxe, Andrew M., James L. McClelland和Surya Ganguli。深度线性神经网金宝搏官方网站络中学习的非线性动力学的精确解arXiv预印本arXiv: 1312.6120(2013)。

扩展功能

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

介绍了R2018b