李宏毅机器学习课程

此文是根据李宏毅2021年春季的机器学习课程撰写。李宏毅机器学习课程的特点是对理论理解的剖析非常深入同时又不失在实际训练过程中的trick教学。

1. 机器学习general guidence

机器学习general guidence

2. 调参trick

1. local minima(局部最小值)and saddle point(鞍点)

Hessian Matrix - 其实就是二阶导 在一阶导数消失的时候通过二阶导来决定下一步行进的方向

H正定时(Hessian Matrix 所有特征值为正)说明遇到 local minima

H正负不定(Hessian Matrix 特征值有正有负)说明遇到 saddle point

向沿H特征向量的方向更新参数

2. batch size and momentum

batch size大小的优劣

batch size

由1、2得出的conclusion

conclusin of 1 and 2

3. Adaptive Learning Rate

sigma

Root Mean Square –> RMSProp –> Adam(RMSProp + Momentum)

eta

Learning Rate Scheduling: Learing Rate Decay and Warm Up

Optimizer总结

Optimization Summary

4. Loss function

Cross-entropy 如何优于 Mean Square Error (MSE)?

从error surface的角度来看 Cross-entropy 的梯度变化更平缓 –> 更好 train

5. Batch Normalization

Feature Normalization - 对所有样本的每一个维度(dimension)作 normalization(减均值、除方差)

可以对每一层的输出(激活函数前后影响不大)作上述 Featurn Normalization

归根结底让整个 error surface 不那么崎岖(还有各种Normalization的方法)

3. CNN

在图像感知的问题中使用

stride 迈步步长 padding 越界填充

Receptive field –> neutrons –> shared parameters

filters –> Feature Map

两种看待CNN所做事情的角度

两个故事

Pooling - subsampling 比较典型的 Max Pooling

Pooling不是必要的

CNN的标准流程

典型CNN流程

4. Self-attention

Sequence(vector set) input 考虑整个input sequence的资讯

《Attention is all you need》

Self-attention的运行方式

self attention运作机制

Multi-head Self-attention

multi-head self attention

Position Encoding

position encoding

Self-attention可以视作可调感知域的CNN(在数据量足够大时效果要好于CNN) CNN属于简化版的Self-attention

Self-attention比起RNN更加不受输入vector之间距离的影响

5. Transformer (Seq2Seq)

语音辨识

Encoder + Decoder

Encoder

Encoder block的构成

one block of Encoder

Encoder的结构

Encoder

Decoder

分为 Autoregressive 和 Non- Autoregressive

对比

下面以Autoregressive为例概述Decoder的组成结构

Masked Self-attention

显然在Decoder中上一个的输出作为下一个的输入,输入一个一个依次产生,无法像Self-attention那样直接考虑所有的资讯

Masked Self-attention

Cross attention

Cross attention

Decoder的结构(Encoder and Decoder)

Decoder

其它的Seq2Seq架构

Copy mechanism: Pointer Network

Guided Attention: Monotonic Attention、 Location-aware attention

评价方法

BLUE score

但BLUE难以用于optimuze,对于不知道如何optimize的问题可以使用RL解决

exposure bias

Scheduled Sampling来防止在teacher forcing下可能出现的“一步错步步错”的问题

6. GAN

输出一种分布 Generator-生成

Discriminator(判别Generator生成的优劣)

D将G的生成集和训练集分别label后进行训练以期分辨G的生成和自然数据的差异(real or fake,real打分更高);G将生成接到D上让D打分 以此作为loss 来更新G的参数

轮流固定G和D,训练D和G

训练trick

D存在的意义是在无法或者不容易计算生成数据分布与自然数据分布的divergence的情况下给出loss使G能够train起来,divergence的选择(参见f-GAN文章)决定了D的objective function。

JS divergence 不适合区分两个分布没有重叠(overlap)的情况,而在高维空间中不同分布图像的overlap很少;Wasserstein distance适于计算两个分布之间的距离(WGAN)

未完待续…