RNN,LSTM和GRU和word2vec及embedding等的联系与区别解析。

普通的MLP和CNN都没有时间维度,可以从RNN开始引入了时间维度,这在理解上给我们带来了一些困难,笔者为了避免遗忘,将这种区别和特点记录如下。

(没时间画图,就看文字吧,写的比较简单。。。)


资料
https://zhuanlan.zhihu.com/p/36455374

这篇博客讲的其实很清楚了,为了帮助理解,我总结如下:

1. RNN可以看成是有t个3层的全连接神经网络,从1-t代表了一个时序的输入
2. 将这些全连接网络的隐含层全部连接起来
3. 每一次前面训练完的部分结果都会通过隐藏层传递给下一层(双向网络是双向传递)
4. 至于LSTM中的num_units这个参数,其实就是第一步提到的3层网络中的第二层的神经元节点数目。激活函数就是LSTM中定义的那些。

就这么简单。。。。。。


接下来再将word2vec和embedding中理解有障碍的地方说一下。。
word2vec顾名思义就是将一个word转成一个vector,怎么转呢,word2vec有两种办法,分别是skip-gram和CBOW,其实差不多,就是一对多和多对一的不同。 这里需要注意的是 word2vec是一个三层的网络,输入和输出都是one-hot向量,是一个半监督的网络(因为他的监督标签也来自于输入数据),训练完之后我们需要的是第一层和第二层之间的权重矩阵。加入输入的维度是n,中间层维度是m,则这个矩阵的维度是(n x m),其中的每一行代表了一个word,这也就是词嵌入embedding的由来,将一个词的向量表示嵌入到了一个矩阵单中,用的时候拿出来用。

这些都和自动编码机有异曲同工之妙。


另一个点就是哈夫曼树和word2vec的关系,再word2vec中,最末层的激活函数是softmax,但是对于的标签非常巨大(等于词的数目),这相当于是一个巨大的多分类问题,为了解决这个问题就再word2vec的末尾引入了哈夫曼树,即神经网络训练的输出对应的是一颗哈夫曼树,在多分类寻找的时候会大大的加快速度,从而加快word2vec的训练速度,这种优化方式被称为hierarchical softmax

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值