主要内容

WordEmbeddingLayer.

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

描述

单词嵌入层将Word Indice映射到向量。

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

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

创建

描述

例子

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

例子

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

属性

全部展开

单词嵌入

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

例子:300

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

参数和初始化

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

  • '窄正常'- 通过独立从正常分布采样,零平均值和标准偏差0.01,通过自主分布初始化权重。

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

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

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

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

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

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

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

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

层权重,指定为尺寸-经过-NumWords数组或一个尺寸-经过-(numwords + 1) 大批。

如果权重是一个尺寸-经过-NumWords阵列,当软件在使用时,软件在培训网络时自动追加额外的列。trainNetwork函数或初始化a时dlnetwork.对象。

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

学习速率和正规化

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

该软件通过全局学习率乘以此因素来确定该层中权重的学习率。例如,如果WeightLearnRateFactor2,则该层权重的学习率为当前全局学习率的两倍。该软件根据您指定的设置来确定全局学习率培训选项(深度学习工具箱)函数。

数据类型:|双倍的|int8|INT16|INT32.|INT64.|uint8|uint16|uint32|uint64

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

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

数据类型:|双倍的|int8|INT16|INT32.|INT64.|uint8|uint16|uint32|uint64

层名,指定为字符向量或字符串标量。为数组输入,trainNetworkassembleNetwork分层图, 和dlnetwork.函数自动将名称分配给图层的名字设置为''

数据类型:char|字符串

此属性是只读的。

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

数据类型:双倍的

此属性是只读的。

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

数据类型:细胞

此属性是只读的。

图层的输出次数。此图层仅具有单个输出。

数据类型:双倍的

此属性是只读的。

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

数据类型:细胞

例子

全部收缩

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

第= Wordembeddinglayer(300,5000)
名称:" 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)
图层= 6x1层阵列,带有图层:1''序列输入序列用1尺寸2'字嵌入层字嵌入层,具有300维和5000个独特的单词3'LSTM LSTM,具有200个隐藏单元4''完全连接的10个完全连接的10连接的第5层''softmax softmax 6''分类输出crossentropyex

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

emb = fasttextwordembeddings;单词= emb.vocabulary;尺寸= emb.dimension;numwords = numel(单词);tallay = wordembeddinglayer(维度,numwords,...“重量”word2vec (emb)”)
layer = wordembeddinglayer具有属性:名称:'''Quand参数维数:300 Num字:999994学习参数权重:[300×999994单个]显示所有属性

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

内附= wordEncoding(字)
enc = wordencoding属性:numwords:999994词汇表:[1×999994字符串]

参考文献

[1] Glorot,Xavier和Yoshua Bengio。“了解训练深馈神经网络的难度。”在第十三届国际人工智能和统计会议论文集, 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