RNN结构
One-hot encoding: Sparse
Distributed representation: Non-sparse/compact
Vanishing/Exploding Gradient 梯度消失/爆炸
BPTT: Back propagation through time
ht(隐藏)层对之前ht-1(隐藏)层的梯度
- Vanshing Gradient: <1
- Exploding Gradient: >1
RNN比较难训练的原因,当时序的长度非常长的时候,在计算梯度的时候,会遇到梯度爆炸/消失。
不同模型的应用场景
GRU (Gated Recurrent Unit)
两个门,模型比LSTM简单,但是效果差不多
分词:
动态规划或递归算法
递归:时间复杂度高,因为中间过程没有存储,很多递归问题都可以优化成动态规划的问题。
Representation Learning 表示学习
The better representation lies in lower dimensional manifold.
判别一个好的representation:
1. Smoothness
不平滑的函数很难做优化
2. Multiple Expalnatory Factors (Disentangling Factors)
3. Hierarchical Representation
比较底层一些的特征可以进行迁移学习,例如word2vec可以看成是一个迁移学习的产物。
4. Shared Factors Across Tasks
把学好的representation 应用到不同的task上,核心还是迁移学习。
5. Low Dimensional Manifold
6. Temporal/Spacial Coherence
u1和u2的表示不要差别太大
7. Sparsity
越往下训练,梯度会越来越小
Ways to solve training
- layer-wise pretraining
- activation function
- better optimisation
- large data
Dropout
在深度学习网络的训练过程中,按照一定的概率将一部分神经网络单元暂时从网络中丢弃,相当于从原始的网络中找到一个更瘦的网络。
Dropout通过随机的选择,产生不同的model, 继而可以产生一系列集成的模型,然后取平均,可以防止过拟合。
Seq2Seq Model
分为encoder和decoder两个过程
穷举法,列出所有的可能性
每次选取概率最大的k个词,相当于贪心算法
attention 机制
Self attention
在机器学习尤其是深度学习中,softmax是个常用且比较重要的函数,尤其在多分类的场景中使用广泛。softmax把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。
Self attention中,除以了一个学习出来的数“8”(根号下dk),将原始的score,112和96转换成14和12,然后再用softmax函数,得到了结果0.88和0.12。(直接用的话得到的结果是1和0)