主要内容

WordembeddingLayer.

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

描述

嵌入层映射到向量中的Word Indices。

在深度学习长短期内存(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+1)阵列。

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

学习速率和正规化

学习权重的因素,指定为非负标量。

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

示例:2

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

该软件将这个因子乘以全局L2正则化因子,以确定该层权重的L2正则化。例如,如果掌权2factor.为2,则该层权值的L2正则化是全局L2正则化因子的两倍。的方法可以指定全局L2正则化因子培训选项(深度学习工具箱)函数。

示例:2

图层名称,指定为字符向量或字符串标量。如果的名字设置为'',然后软件会在训练时自动指定一个名字。

数据类型: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 = fasttextwordembedding;单词= emb.vocabulary;尺寸= emb.dimension;numwords = numel(单词);tallay = wordembeddinglayer(维度,numword,...“重量”word2vec (emb)”)
Layer = WordembeddingLayer具有属性:名称:''''''''QuideParameters维数: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