李宏毅2019笔记

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

x与训练数据的相似程度
  • 应用:刷卡行为、网络入侵识别、癌细胞检测
两种情况,clean:所有训练样本都是正常值, polluted:训练样本有异常值

有classifier的情况下

已经有分类器的情况下,在输出分类标签的同时,在输出一个置信值,用一个阈值来区分
置信值可以用分类概率最大值或者计算熵
神经网络输出添加置信值
如何判断系统的好坏?如何确定lambda? ROC曲线等等

可能存在的问题:有的东西比猫更猫
其他思路

没有classifier的情况

image.png
举个栗子,这是一个游戏中玩家的属性(说垃圾话的频率,无政府状态下发言的频率),数据稀疏的地方更有可能是不正常的玩家(小白、捣乱玩家)所以P小,那如何量化这个P呢?
最大似然估计就是估计这些数据是由概率密度函数f生成概率,即计算所有这些点由f产生的概率的乘积

函数F(x)=P{X<=x}称为X的概率分布函数,连续的概率分布函数是概率密度的积分,概率密度是概率分布的导数

打个比方用最常用的高斯分布(当然,这个分布显然不是)
高斯函数参数的计算
选择合适的lambda
另外一种思路,利用autoencoder,test的时候如果还原出的图像与原图像差距很大,可以认为是异常值

Attack and Defense

  • 机器训练出来的模型不光性能要强,还要能够对抗人类的恶意、攻击

Attack

加入噪声,注意这里是特殊处理过的噪声,普通的噪声对NN影响很小
image.png
  • 没有目标的攻击:找一个输入经过NN后,输出与正确答案越远越好
  • 有目标的攻击:输出与正确答案越远越好的同时,与指定的输出越接近越好(也可以理解成很接近的输入,输出却很不同)
  • d就是输入的限制(简单理解成,人眼看不出差别,但机器给出完全不同的答案)
d的两种简单形式
  • L-infinity: 所有delta的最大值
梯度下降求解x'
每次更新x的时候注意限制d
攻击实例:经过训练,添加噪声,右边的猫被识别成了star fish

两张图是有微小差别的
背后的原因:高维空间中,某些特征的狭小空间内是与其他区域完全不相干的类,比如下图的红色

FGSM

Attack的方式有很多
主要的区别在于不同的优化算法和不同的限制条件。 FGSM是一个非常简单的方法,x的每个维度对损失函数求导,为正则-e,为负则+e,也就是只关心导数的方向,而不关心大小

黑盒攻击

  • 以上说的都是白盒攻击(知道NN的所有参数),如何做黑盒攻击呢?


    拿同样的训练数据训练自己的proxy NN,然后训练一个可以攻击的图像,再去攻击黑盒,通常是有效果的!
  • 那么问题来了,没有训练数据怎么办?拿不同的图片去测试,生成训练集即可
有人尝试出了很神奇的噪声,加到所有图像上,都会形成攻击

生活中的攻击

人脸识别攻击

Defense

1. 加防护罩 (添加filter,如smoothing、scaling)2.把攻击图像加入训练集
image.png
反复找漏洞,但是漏洞是无限的

Explainable ML

概念
场景
目的

Local Explanation (WHY)

输入的哪些部分决定了输出?修改输入的不同部分,观察输出的变化
用一个mask去遮盖图像,看输出的变化
类似的想法,逐像素修改,查看输出的变化
局限性

Global Explanation

机器要告诉我们它为什么知道,不仅有答案,还要提供解释。
找一个输入使得yi最大,得到的结果如左图所示,机器觉得最像每个数字的图像在人看来都是噪声
设计一个R(x),使得x*中白点尽量少,也就是告诉机器什么样的输出更有可能看起来像数字,获得右图的效果
以上是人想的正则项R,现在有更好的方式,下方高能
用GD找到使得yi最大的z,然后通过z得到x,那么我们就说x是机器觉得最像yi的东西

Using a Model to explain Another

image.png
LIME
局限性:到底什么叫附近nearby
LIME在图像中的应用
extract:转换成特征向量xM,M是图像被切成的片数
image.png
DT也可以模拟黑盒
对DT做限制,以免太深,https://arxiv.org/pdf/1711.06178.pdf

Life Long Learning

难点
  • 记住以前学过的东西


    学完任务2后任务1的正确率下降了

    如果一起学,可以学的很好,为什么分开学,就乱了,Catastrophic Forgetting

    原因
EWC 核心思想:在二次训练的时候,之前比较重要的参数尽量不要去改
theta1 在平原上,所以变化对任务1的影响不大,所以对应的b1也比较小
其他变形
其他思路
GEM 核心思想:学习新任务的时候,考虑以前任务的梯度方向
学习的顺序也很重要

Meta-Learning (Learn to learn)

思想:找一个F,输入是训练数据,输出是可以学习这些训练数据的f

网络压缩

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,再重复做几遍
  • 为什么不直接训练小模型:小模型难训练,大模型比较容易找到全局最优
    (一家之言)小模型:直接初始化很容易坏掉,train不起来,如果拿大模型初始化的数据,却能train起来

    why pruning:https://arxiv.org/abs/1810.05270

压缩后的小模型,layer都是不规则的

实战中,好的情况可以压缩掉90%的参数

Knowledge Distillation

https://arxiv.org/pdf/1503.02531.pdf

先训练一个大模型,然后训练小模型,使得小模型的输出模仿大模型的输出


Teacher比labeled的data提供了更多的信息,(1和7很像)

trick:teacher的输出除一个T,使得softmax的输出没有那么极端,可以让student多学一点
  • 李老师说实战中knowledge distillation没啥用...

Parameter Quantization

  • 对所有的权重进行聚类

  • 记录权重的时候,只记录每个权重对应的cluster


  • 极端情况:能不能训练一个只有1和-1的网络,可以看做是一种正则化
    https://arxiv.org/abs/1602.02830

    灰色的点代表模型的一组权重,里面的每个权重只能是1或者-1,蓝色是没±1限制的权重的变化趋势,每次都找离蓝色最近的一个灰色(即有限制的一组权重)

Architecture Design

大概就是bottleneck的思想
  • Depthwise Conv 每个filter负责一个channel
  • Pixelwise Conv 就是1x1 filter
Depthwise Conv + Pixelwise Conv vs General Conv

SqueezeNet
MobileNet
ShuffleNet
Xception

GAN

Typical GAN

Conditional GAN

Paired Data
把G的输入和输出都放入D,看输出好坏的同时,也看输入和输出有多match

Unsupervised Conditional GAN

  • Unpaired Data
  • 图像风格迁移
  • Cycle GAN


  • 语音风格迁移
  • 语义迁移(褒贬转换)

GAN用到文字中是有困难的,主要是离散的数据无法求微分


三种解决方案

Flow-based Generative Model

已有的生成模型

  • Component-by-component (Autoregressive model)
    像素是一个一个生成的,那么生成的顺序怎么定?生成速度慢
  • Autoencoder
    优化的是最大似然的lower bound
  • GAN
    很难训练

p_data是真实数据的分布,训练的目标是最大化p_G和p_data的相似度,等同于最小化两者的KL散度

那如何优化这个G^*

数学基础
  • Jacobian


    J_f就是雅各比矩阵,f想象成上面的Generator
  • Determinant 行列式 (含义是高维中的体积)


  • Change of Variable Theorem


    如何知道z和x分布的关系?
一个简单的例子
一维的情况

二维的情况

整理式子,输出的分布等于输入的分布乘上f逆的雅各比行列式
代入G*s,只有保证input和output的shape是一样的,才能保证J_G是可逆的
GLOW

https://arxiv.org/abs/1807.03039
https://openai.com/blog/glow/

语音生成用的很多
Parallel WaveNet
WaveGlow

Transformer

  • Transformer是一种使用self-attentionSeq2Seq模型,原来用seq2seq的地方,都可以用transformer代替
  • BERT是一种unsupervised transformer

Seq2Seq最常用的是RNN,但是RNN难以做到并行计算,怎么改进呢?
用CNN替代RNN,那如何让CNN看到所有输入呢?多叠几层!


有个叫Self-attention的东西出现了!作用和RNN一样!但是可以并行计算!


Self Attention Paper


并行计算部分

Attention的本质:输入两个向量,输出一个分数,告诉你这两个向量有多匹配

d是q和k的维度

并行计算部分


并行计算部分,A就是Attention


并行计算部分

计算加速总结
Multi Head Self-Attention
不同的head有不同的关注点
e_i保留位置信息

http://jalammar.github.io/illustrated-transformer/
https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html

Transformer
Transformer!! positional encoding 就是上面提到的e
attention visualization
Universal Transformer

https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html

Transformer在图像中的应用

self-attention GAN

ELMO、BERT、GPT

WordEmbedding的局限:一词多义,ELMO可以解决这个问题。比如bank可以有多个解释,我们叫做不同的token,不同的token相同的type(bank),不同的embedding(向量)。
BERT是transformer的encoder
GPT是transformer的decoder

ELMO

Embeddings from Language Model

  • 基于RNN的语言模型,只需要大量的文本信息,不需要标注


    hidden layer 就是输入(基于上文)的embedding
双向RNN,合并双向hidden layer的输出作为embedding
那么问题来了,当RNN有很多层的时候,要选取哪一层hidden layer作为Embedding呢?
ELMO会加权平均所有hidden layer的输出,如下图中,假设有两个隐藏层,权重系数作为学习参数,和后续任务一同训练

BERT

Bidirectional Encoder Representations from Transformers

  • 训练的时候也不需要标注
  • transformer的encoder


    BERT的输入是句子,输出是一串Embedding,每个Embedding对应一个输入的word vector
两种训练方法
  • Masked LM


    每次马赛克掉15%的输入,训练BERT去猜测马赛克掉的词
  • Next Sentence Prediction

特殊的token代表不同的任务,[CLS]表示这个token对应的Embedding是分类结果,[SEP]表示断句

当两种方法一起训练的时候,训练效果最好

怎么用BERT?
  • 把BERT当做抽取feature的工具,输出一组新的Embedding,然后做后面的任务
  • 论文中,BERT会和后面的任务结合在一起
句子分类
slot filling
NL推断
基于文本提取的问答,输入文章D,问题Q,输出答案在文章中的起止位置(s,e)
橙色和蓝色两个向量是需要训练的,与BERT的每个输出做內积,类似于attention的作用,后面接一个software来预测s和e的位置,如果s和e有矛盾,那么就是没有答案
ERNIE

专门为中文设计的BERT

BERT每一层做了什么事呢?

BERT Rediscovers the Classical NLP Pipeline

WHAT DO YOU LEARN FROM CONTEXT? PROBING FOR SENTENCE STRUCTURE IN CONTEXTUALIZED WORD REPRESENTATIONS

GPT

  • transformer的decoder
  • GPT-2没有开源,传说很牛逼
  • 在阅读理解领域比较突出
GPT
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容