当前位置: 代码迷 >> 综合 >> Deep Learning(Andrew Ng)学习笔记 (一)
  详细解决方案

Deep Learning(Andrew Ng)学习笔记 (一)

热度:17   发布时间:2024-03-09 22:36:05.0

简介

Andrew Ng 深度学习课程,我本科做毕设时粗略看了一遍,但是当时知识积累不够。读研后开始系统接触自然语言处理,从头再扫一遍,发现第一遍时对很多概念理解得很模糊,第二次对一些重要概念和结论简要记录一下。这次先从自然语言处理部分开始看,因为这部分有一些相对独立于深度学习的知识,从这打头没影响。

序列模型——自然语言处理

1 词汇表征。

传统表示:one-hot。缺点是假设词语是相互独立的,难以刻画词语之间的相关性。

词嵌入(word embeddings) 是一种特征表示方法。能够达到降维效果,并且学习词语之间相关性。

词嵌入之后,可通过t-SNE进行可视化。[van der Maaten and Hinton 2008. Visualizing data using t-SNE]

2 使用词嵌入。

词嵌入的应用:命名实体识别、文本摘要、文本解析、指代消解。

词嵌入有效原因:训练词嵌入的模型在一个很大的语料库上。涉及到了迁移学习的思想。

词嵌入具有更强泛化能力,在已有词嵌入模型后,可以基于小样本数据建模。

3 词嵌入的特性。

词嵌入一个迷人特性是能够帮你实现类比推理。[mikolov 2013]

比较相似度常用的函数是余弦相似度。

4 词嵌入矩阵 & 5 学习词嵌入。

语言模型的基本思路,对每个单词用one-hot向量表示,假设向量为10000维,通过一个词嵌入矩阵,假设维10000*300,通过矩阵乘积得到一个300维的词嵌入向量。词嵌入向量再经过拼接作为神经网络的输入层和softmax层,预测词语输出。[Bengio.et.al 2003 A neural probabilistic language model]

在这里插入图片描述

6 word2vec。

word2vec算法。[mikolov et.al. 2013 Efficient Estimation of Word Representations in Vector Space]

skip-gram。从一个句子中随机选择一个词作为上下文context,从该词周围选择一个范围,例如前后五个词,再随机选择一个词语作为目标词target。通过context预测target,形成了监督学习问题。

skip-gram问题是在词汇表数量较大时,softmax计算变得异常困难。一种解决方法是使用分级softmax。

训练时对上下文进行采样的方法,一种自然思路是均匀分布采样,该方法难以捕捉频率较少的词出现次数。实践中一般采用启发算法估计上下分的分布。

7 负采样。

负采样 [mikolov et.al. 2013 Distributed Representations of Words and Phrases and their Compositionality]

在 context target对基础上增加正负标记,以10000维为例,高维的 softmax 转换为 10000个logistic分类器。

生成负标记的方法:根据词语对在语料库中的词频来估计分布。

8 GloVe

[pennington et.al. 2014 Glove Global vectors for word representation]。

9 情绪分类。

情绪分类一个难题是可能训练标记数量不够。

在小样本上同样可以进行情绪分类,方法是使用一个在大数据语料上学得的词嵌入矩阵,用该矩阵乘以 one-hot 向量,再将得到的词嵌入向量求平均。求平均后得到的特征向量输入进softmax,输出五个类别。该方法的缺陷是没有考虑词序。

改进的方法是将求平均改为使用RNN。

10 词嵌入除偏。

词嵌入的一个问题是会学习到性别、种族等偏见。

[bolukbasi at.al.man is to computer programmer as women to homemaker? debiasing word embeddings]

除偏的一个方法:首先确认偏见的方向,把描述性别的对应词向量相减求平均。然后对没有明显性别含义的词进行中和处理,区分有无明显性别含义要通过训练分类器解决。最后构造距离相等的词对。

  相关解决方案