http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML19.html
未来要做的
- 机器知道自己不知道:Anomaly Detection(异常检测)
- 机器知道自己为什么知道
- long life learning
- Meta-Learn / learn-to-learn
- few-shot learning
- zero shot learning (没有训练样本,比如说要识别熊猫,只告诉机器黑白的熊,有黑眼圈)
- 增强学习 (能不能学快一点)
- 神经网络压缩(参数二元化(+1, -1)、减少神经元)
Anomaly Detection
- 应用:刷卡行为、网络入侵识别、癌细胞检测
有classifier的情况下
没有classifier的情况
函数F(x)=P{X<=x}称为X的概率分布函数,连续的概率分布函数是概率密度的积分,概率密度是概率分布的导数
Attack and Defense
- 机器训练出来的模型不光性能要强,还要能够对抗人类的恶意、攻击
Attack
- 没有目标的攻击:找一个输入经过NN后,输出与正确答案越远越好
- 有目标的攻击:输出与正确答案越远越好的同时,与指定的输出越接近越好(也可以理解成很接近的输入,输出却很不同)
-
d
就是输入的限制(简单理解成,人眼看不出差别,但机器给出完全不同的答案)
- L-infinity: 所有delta的最大值
FGSM
黑盒攻击
-
以上说的都是白盒攻击(知道NN的所有参数),如何做黑盒攻击呢?
- 那么问题来了,没有训练数据怎么办?拿不同的图片去测试,生成训练集即可
生活中的攻击
Defense
Explainable ML
Local Explanation (WHY)
Global Explanation
机器要告诉我们它为什么知道,不仅有答案,还要提供解释。
以上是人想的正则项R,现在有更好的方式,下方高能
Using a Model to explain Another
Life Long Learning
难点
记住以前学过的东西
Meta-Learning (Learn to learn)
网络压缩
Learning Efficient Convolutional Networks through Network Slimming 2017
RETHINKING THE SMALLER-NORM-LESSINFORMATIVE ASSUMPTION IN CHANNEL PRUNING OF CONVOLUTION LAYERS 2018
Network Pruning
- 移除不重要的神经元:神经元的输出大多数时候等于0或者接近0,然后再做fine-tuning,再重复做几遍
- 为什么不直接训练小模型:小模型难训练,大模型比较容易找到全局最优
why pruning:https://arxiv.org/abs/1810.05270
压缩后的小模型,layer都是不规则的
实战中,好的情况可以压缩掉90%的参数
Knowledge Distillation
https://arxiv.org/pdf/1503.02531.pdf
先训练一个大模型,然后训练小模型,使得小模型的输出模仿大模型的输出
- 李老师说实战中knowledge distillation没啥用...
Parameter Quantization
对所有的权重进行聚类
-
记录权重的时候,只记录每个权重对应的cluster
-
极端情况:能不能训练一个只有1和-1的网络,可以看做是一种正则化
https://arxiv.org/abs/1602.02830
Architecture Design
-
Depthwise Conv
每个filter负责一个channel -
Pixelwise Conv
就是1x1 filter
SqueezeNet
MobileNet
ShuffleNet
Xception
GAN
Typical GAN
Conditional GAN
Paired Data
把G的输入和输出都放入D,看输出好坏的同时,也看输入和输出有多match
-
一张图中有多个物体识别,可以想象成conditional GAN,输入是图片,输出是多个分类
-
Talking Head
https://arxiv.org/abs/1905.08233
Unsupervised Conditional GAN
- Unpaired Data
- 图像风格迁移
-
Cycle GAN
- 语音风格迁移
- 语义迁移(褒贬转换)
GAN用到文字中是有困难的,主要是离散的数据无法求微分
Flow-based Generative Model
已有的生成模型
- Component-by-component (Autoregressive model)
像素是一个一个生成的,那么生成的顺序怎么定?生成速度慢 - Autoencoder
优化的是最大似然的lower bound - GAN
很难训练
那如何优化这个呢
数学基础
-
Jacobian
-
Determinant 行列式 (含义是高维中的体积)
-
Change of Variable Theorem
GLOW
https://arxiv.org/abs/1807.03039
https://openai.com/blog/glow/
语音生成用的很多
Parallel WaveNet
WaveGlow
Transformer
-
Transformer
是一种使用self-attention
层Seq2Seq
模型,原来用seq2seq的地方,都可以用transformer代替 -
BERT
是一种unsupervised transformer
Seq2Seq最常用的是RNN,但是RNN难以做到并行计算,怎么改进呢?
用CNN替代RNN,那如何让CNN看到所有输入呢?多叠几层!
有个叫Self-attention的东西出现了!作用和RNN一样!但是可以并行计算!
Attention
的本质:输入两个向量,输出一个分数,告诉你这两个向量有多匹配
Multi Head Self-Attention
http://jalammar.github.io/illustrated-transformer/
https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html
Universal Transformer
https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html
Transformer在图像中的应用
ELMO、BERT、GPT
WordEmbedding的局限:一词多义,ELMO可以解决这个问题。比如bank可以有多个解释,我们叫做不同的token
,不同的token
相同的type
(bank),不同的embedding
(向量)。
BERT是transformer的encoder
GPT是transformer的decoder
ELMO
Embeddings from Language Model
-
基于RNN的语言模型,只需要大量的文本信息,不需要标注
BERT
Bidirectional Encoder Representations from Transformers
- 训练的时候也不需要标注
-
transformer的encoder
两种训练方法
-
Masked LM
Next Sentence Prediction
当两种方法一起训练的时候,训练效果最好
怎么用BERT?
- 把BERT当做抽取feature的工具,输出一组新的Embedding,然后做后面的任务
- 论文中,BERT会和后面的任务结合在一起
ERNIE
专门为中文设计的BERT
BERT每一层做了什么事呢?
BERT Rediscovers the Classical NLP Pipeline
GPT
- transformer的decoder
- GPT-2没有开源,传说很牛逼
- 在阅读理解领域比较突出