Coursera - Sequence Models - Andrew Ng 学习随笔
Part 1 Recurrent Nerual Network
- 应用广泛:Speech Recognition / Music Generation / Sentiment Classification / DNA Sequence Analysis / Machine Translation / Video Activity Recognition / Name Entity Recognition
- Notation, 以Name Entity Recognition为例, Representing words可以采用one-hot, 但是维度过大, 且十分稀疏 - Problems, 句子的 输入输出长度不一定相等且句子中相同词汇需要共享特征提取的过程 , 所以native的DNN (比如全连接层) 则不适合这种工作
1.1 Recurrent Nerual Network:
- (当输入和输出长度相同时)
- Backpropagation through time BPTT, 循环结构展开,将所有时刻(对于句子就是词语的先后)下的损失函数求和对各个时刻的参数进行求和
- 按输出输出数目分类:many2many / one2many(music generation) / many2one / one2one 类型 ;Encoder-Decoder (Auto Encoder) 解决长度不一致的问题!
1.2 Language model and sequence generation
- Language Model: P(Sentence) = ? 给一个句子,判断在这个世界使用的几率大小. 训练数据: Large corpus of English text:
-
- RNN Model: 概率论上就是按照条件概率展开,乘法规则
1.3 Sampling novel sequence,将前序输出直接输入到后序,得到的整体输出序列,有句子有词语: Word-level and Character-level (更要求计算力) language model
1.4 Vanishing Gradients with RNNs: 基本的RNN结构无法捕捉长距离的依赖,按时序展开后较深的输出很难反向传播影响之前层的参数. The cats, which …, was/were full.
- 相应的Exploding Gradient容易发现(NaN, Not a Number),且可以采用Gradient Clipping去解决.
- Gated Recurrent Unit (GRU) - 2014
-
- Original RNN Unit:
- Original RNN Unit:
-
- GRU cell:
- GRU cell:
-
-
- 个人理解:1) Update Gate: gamma_u意在控制时序上的隐藏层的更新;2) Relevant Gate: gamma_r意在控制用于更新的隐藏层有多少或者是否能被使用(在是否利用前序隐藏层信息和只用当前输入信息间抉择)
-
- Long Short Term Memory (LSTM) Unit —— 1997
1.5 Bidirectional RNN (BRNN) - Getting information from the future. 缺点:需要整个数据序列才能在任何地方进行预测
1.6 Deep RNN example (隐藏层多)
- 多个隐藏层在时序上展开会是否庞大,一般有三层隐藏层就已经很大了
编程题包括基本RNN LSTM的模型搭建前后向传播,以及Name Entity (RNN) 和 Music Generation (LSTM),没试过不知道,试过真神奇,特别是音乐生成,虽然没有框架感,有点意思.
Part 2 Natural Language Processing & Word Embeddings
2.1 Introduction to Word Embeddings
- One-hot的局限性:只考虑了单个词在在向量(one-hot)中的作用,没有包括词之间的关系,无法度量词语之间的距离.
- So, Word Embedding (Embedding含义是将词语嵌入到特征空间中):给词语添加属性值,类似于构建特征向量(Featurized Representation) ——e_num, 使用t-SNE(将高维数据线性化到二维空间上进行可视化)去Visualizing 然后 Grouping - 2013年
- Properties of Word Embeddings:
-
- 例子:已知Queen对应Woman,给出King, 找到对应的词:
- 例子:已知Queen对应Woman,给出King, 找到对应的词:
- Embedding Matrix:就是将每个词语的属性按照列排列,这样当右乘One-hot编码时候,就得到该词语的 e_该词语的序号(Feature Vector),而矩阵乘法对于这个巨大的矩阵效率低(何况还是稀疏低秩矩阵,乘了大量的0,冗余的),具体可采用一个Embedding layer()从嵌入矩阵中拉取想要的列
2.2 Learning Word Embeddings: Word2Vec & Glove
- The Learning Progress: Context/target pairs (比如从语境词Context的固定先后词语作为Target词语), 词语的预测问题, 反向传播后就可求得Embedding Matrix.
- Word2Vec: 视为word预测问题, 由context -> target
-
- Skip-grams: 学习模型, 从挑选的Context词语©前后的固定窗内 随机 挑选一个词(t)作为Target
-
-
- Model: 1) 对于S-g模型, 当词典过大, 求和困难, 可以采用分层Softmax方法 2) 如何采样得到Context c? 需要排除词频特别高的介词和冠词等, 也要平衡好常见词汇和罕见词汇 (比如榴莲这种)
- - - Word2Vec中另一个模型CBow模型, 另一种学习模型
- Model: 1) 对于S-g模型, 当词典过大, 求和困难, 可以采用分层Softmax方法 2) 如何采样得到Context c? 需要排除词频特别高的介词和冠词等, 也要平衡好常见词汇和罕见词汇 (比如榴莲这种)
-
- 改进的学习模型: Negative Sampling:
-
- 新的学习问题定义: 给定Context word, 取其后一个词作为Target words, 该pair标记为正样本1, 再随机取K个其他的词构成pairs作为负样本0 (小样本数据下取K=5~20; 大样本数据下取K=2~5)
-
- Model, P(y=1|c, t) = sigmoid(theta转置 * 词特征e), 1w个词典时, 就构成了1w个二分类问题
-
- 挑选负样本, 使用均匀分布会得到大量介词, 使用词频的3/4来采样词语: Prob(word) = normalize(该词语的词频)
- Glove Word vectors, global vectors for word representation
-
- X_ij, 词j (t) 出现在词i © 的上下文次数, f(.)加权函数[1) f(0)=0, 0log0=0 2) 抑制介词冠词等无意义的词]. 注意e和theta是对称的, e_final = mean(e + theta), b是偏置项
- X_ij, 词j (t) 出现在词i © 的上下文次数, f(.)加权函数[1) f(0)=0, 0log0=0 2) 抑制介词冠词等无意义的词]. 注意e和theta是对称的, e_final = mean(e + theta), b是偏置项
-
- 注意学习到的embedding matrix中各个特征不能保证是可解释的 theta’ = A * theta, e’ = A * e, A可逆, 则theta^T * e = theta’^T * e’
- Applications using Word Embeddings
-
- Sentiment Classification: 1) Average Way: 缺点是只关注单词,不关注单词的顺序
类似问题的作业:给一个句子后面加个表情,Emojify:
2) RNN Way:
- Sentiment Classification: 1) Average Way: 缺点是只关注单词,不关注单词的顺序
- Debiasing word embeddings: 网络学习到的偏见在应用中会有很大问题,比如一些评分系统信用评价系统等,如果lawyer->man, woman->nurse, 这就是一个偏见.
Debiasing - Nerualize 近似乎 正交化
例如bias轴向量为:g = word_to_vec_map[‘woman’] - word_to_vec_map[‘man’] (You might get a more accurate representation if you compute g1=emother−efather, g2=egirl−eboy, etc. and average over them. or more specific, 采用SVD方法)
Equalize Pairs:将pair的和向量(一半)先Nerualize,再按e长度为1,得到Equalized-pairs
Part 3 Sequence models & Attention mechanism
3.1 Various sequence to sequence architectures
- Seq2seq model: Encoder + Decoder
- Pricking the most likely sentence:
-
- Machine Translation as Building a Conditional Language Model:
- Machine Translation as Building a Conditional Language Model:
-
- Finding the Most likely translation
- Finding the Most likely translation
-
-
- 首先 Greedy Search (当前输入取前面输出) 不适合, 因为整体句子的好坏和局部词组的常见性不等同,即局部最优值基本不能构成全局最优.
-
-
-
- Beam Search, 算法参数 Beam width = B, 每步骤保存使得当前句子概率P(y1,y2…,yt-1 | x)最高的B个词(结果)
- Beam Search, 算法参数 Beam width = B, 每步骤保存使得当前句子概率P(y1,y2…,yt-1 | x)最高的B个词(结果)
-
-
-
-
- Refinemens to Beam Search: Length normalization
Beam search discussion, Beam width怎么选, 10(常见), 100(应用中算大了), 1000~3000(论文中常用);Beam Search不像BFS和DFS, 更快但不能保证全局极值;误差分析:
- Refinemens to Beam Search: Length normalization
-
-
- Bleu (Bilingual Evaluation Understanding) Score: 评价几个较好的翻译中那个更好
-
- Precision: #(MT_output在翻译结果中出现了的词) / #(MT_output中所有词) a a a a 没啥用
-
- Modified Precision: (MT_output某词在翻译结果中出现的最大次数) / (MT_output某词的总数目)
-
- Bleu score on bigrams: 研究相邻的双词组的Modified Precision,并且将所有结果的分子和分母都加起来, 记为P2; 类似的Pi …
-
- Bleu Details:
- Bleu Details:
- Attention Model: 指望深度学习记录长句子是很难的,对人都是如此!
3.2 Speech recognition - Audio data
- 传统基于专家基于“音素”Phonemes已经淘汰了
- 对音频处理生成横轴时间纵轴频率的频谱图
- 两种解决方法,Attention based RNN 和 :
- Trigger World Detection: Many to one 问题,触发即输出1,否则输出0,问题有正负样本数量不平衡,需要调整.