美文网首页人工智能
2018 一些有趣的东西和人

2018 一些有趣的东西和人

作者: theoqian | 来源:发表于2018-12-31 21:37 被阅读251次

CTC loss

  • 主要用在例如语音识别这样,输入与输出结果不一一对齐的序列预测场景,如图所示 语音识别.png
  • 在不使用 CTC loss 的情况下需要对每一帧语音信号进行标记,对一些实际上没有任何音的帧需要标记为“空”
  • 利用 CTC loss 时只需要按顺序标记有意义的输出类别无需对齐。例如图中输入 11 帧语音信号,但输出标记只有 6 个。CTC loss 会对所有能够得到这样 6 个标记序列的路径概率求和
  • 详细介绍查看论文:《Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks》
  • 非常生动的博客介绍:https://distill.pub/2017/ctc/
  • 实现代码:https://github.com/baidu-research/warp-ctc 百度的 c++ 实现,非常棒的代码,里面对数值溢出等工程问题的处理值得学习

LDA 主题分布

  • 用于计算文章的潜在主题分布,并且能得到每个主题下的词分布(Blei和吴恩达的杰作) 主题分布.png
  • 概率图模型的一个实际应用,pLSA 主题模型的加强版,原论文《Latent Dirichlet Allocation》中比较了pLSA与LDA的区别
  • 模型的求解可以用吉布斯采样或者变分推断,《LDA漫游指南》有详细的推导过程和代码实现
  • 谷歌的开源 c++ 分布式实现:https://github.com/openbigdatagroup/plda
  • 2019 Todo:学习《Stochastic Variational Inference》和 《Hierarchical Dirichlet processes》。在利用变分推断求解时,每一轮参数更新都要遍历整个数据集,这在百万千万文章数据量时收敛速度很慢,甚至数据无法全部加载到内存。Blei 在《Stochastic Variational Inference》提出了类似随机梯度下降一样的批处理变分推断方法。

word2vec -> ELMo -> BERT

  • word2vec: 由于自然语言处理中单词都是离散的,无法直接输入到处理连续数据的神经网络,所以大部分基于神经网络的自然语言处理任务都会使用词向量作为某个词的表示(每个词对应一个固定的n维向量);NIPS2018一篇论文《FRAGE: Frequency-Agnostic Word Representation》发现word2vec训练后不相关的低频词在向量空间中会离得比较近,如图红色部分为低频词。于是论文提出用对抗训练使得低频词分散到整个词向量空间,提高词向量的效果。 词向量二维可视化.png
  • ELMo:由于词向量中每个词对应一个固定向量,无法解决相同词在不同语境中代表不同含义的问题。论文《Deep contextualized word representations》提出蕴含上下文语境的词向量表示。模型利用一个双层双向LSTM训练语言模型,最终的输出向量是 输入的固定词向量+两层LSTM的输出向量 这三者的线性叠加,三个向量的线性叠加权重是根据不同的任务可训练的。例如一些词性标注等偏语法的任务中较底层的LSTM向量更有效;而一些文本分类等偏语义的任务中较上层的LSTM向量更有效。ELMo向量可以很好地用于样本量较少的迁移学习,迁移任务的模型以ELMo向量作为输入并配合一些轻量级参数较少的模型结构就能得到很好的效果,并且能有效防止过拟合。在迁移学习任务中ELMo的语言模型参数是不需要训练的。我个人对ELMo的一个疑惑是三种向量的对应维度(如第0维)分别代表了完全不同的含义,这种线性叠加的方式是否合适?这里https://www.zhihu.com/question/294111938/answer/492004917是我在知乎上的一个提问,目前还有没由很好的解释 三种向量在不同任务中的重要程度.png
  • BERT:论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》给人的第一印象是谷歌这帮学者做学术太严谨全面了,一个模型几乎可以应用于目前大部分的自然语言处理任务中,模型考虑到了nlp的方方面面。BERT虽然和ELMo一样,也为nlp提供了一种迁移学习的方式,但这两者是两种完全不同的模式。ELMo为不同的nlp任务模型提供最底层的输入向量作为特征,可以看做一种基于特征的迁移学习。而BERT的思想是所有nlp任务使用相同的模型结构,可以看做基于模型的迁移学习。首先,BERT模型利用文本语料做无监督的预训练,训练目标包括:1、预测一句句子中被随机挖空的一个词; 2、预测输入的两个句子是否是语料中的前后句。完成预训练后,利用特定nlp任务的标签数据对模型进行 fine-tuning,BERT可以灵活地应用于如图4中模式的任务: BERT适用的任务模式.png
  • BERT 相比 ELMo 的提升:说谷歌的研究人员严谨全面并非瞎吹,而是有理论依据的。首先,ELMo 虽然利用的是双向LSTM,但是前向和后向的向量是完全独立的,前向用于预测前一个词,后向用于预测后一个词。而 BERT 预测的是句子中任何位置的某个词,这样可以利用 Attention 结构同时捕捉前文与后文信息。其次, BERT 也考虑了“句子”这个更上层信息的建模,在预训练是加入相邻句子预测任务,使得模型能捕捉更多的上层语义信息同时为问答句匹配、问题回答、阅读理解等句子级别的任务提供可用的框架。
  • 实践:ELMo tensorflow源码:https://github.com/allenai/bilm-tf;BERT tensorflow源码:https://github.com/google-research/bert。BERT是2018下半年发布的,还没有实际尝试。训练ELMo时得到了一些教训:1、一定要做梯度截断,否者如此巨大的LSTM必定发生梯度爆炸。并且一定要用clip_by_global_norm做梯度截断。2、一定要用 AdagradOptimizer。开始觉得 AdamOptimizer 这么牛逼为什么不用,于是果断换成了 Adam。结果 loss 下降过程变得非常曲折,loss减小到一定程度会突然变成很大然后重新减小。这个现象的原因个人分析是由于使用了LSTM,目标函数在极值点附近非常陡峭,导致步长稍大就会到一个loss较大的位置。使用 AdagradOptimizer 之后就没有出现这样的现象,因为 AdagradOptimizer 的步长会随着迭代次数的增大变得越来越小,这样极小的步长可以保证即使在非常陡峭的区域,参数也不会跳离这个区域。如果非要用 AdamOptimizer 其实也是可以的,但必须把初始学习率设置得非常小,大概0.00001。

基于对抗样本的半监督学习

  • 论文《Intriguing properties of neural networks》首先提出了对抗样本的概念。作者发现对神经网络的输入(例如图像)做特定方向非常微小的扰动,很有可能导致神经网络做出完全错误且确信度很高的预测,经过特定扰动的输入样本被称为对抗样本,如图所示。并且对抗样本有一个特性是,利用某个模型生成的对抗样本通常也能让其它模型(甚至用不同的训练样本训练的模型)做出错误预测,并且预测的错误类别多数情况下是一样的。 对抗样本.png
  • Goodfellow在《Explaining and Harnessing Adversarial Examples》中提出了基于输入的梯度快速生成对抗样本的方式,并提出将对抗样本加入到训练集中训练模型,这样能提高模型的鲁棒性,但不能完全解决对抗样本的问题。
  • 受 Goodfellow 的启发,《Distributional Smoothing with Virtual Adversarial Training》和《Virtual Adversarial Training A Regularization Method for Supervised and Semi-Supervised Learning》提出了利用类似对抗样本的方式使模型对输入特征更平滑并且成功应用到标记样本量较少的半监督学习。首先,对于没有标签的样本,模型会预测出各个类别上的概率分布;接着,借鉴 Goodfellow 的方式在某个微小的向量模范围内做微小扰动,找到使得预测的概率分布于第一步预测的概率分布的KL散度最大的对抗样本;最后,将上一步的对抗样本与第一步的实际样本对应的分类预测分布的KL散度加入到 loss 中,使得两者的KL散度尽可能小(这样就能使得输入样本空间附近的样本被模型预测的分布尽可能平滑,如图所示)。 对抗训练使模型对对输入的预测在输入空间中越来越平滑.png
  • Virtual Adversarial Training 和 Adversarial Examples 的区别在于,Adversarial Examples 的所有输入样本都是有标签的,对抗样本是使模型对标签的预测概率最小化得到的。而 Virtual Adversarial Training 不需要类别标签,而是用模型对输入样本的预测分布作为 Virtual 标签(这就是标题中 Virtual 的含义),Virtual 对抗样本是使模型的预测与Virtual 标签之间的KL散度最大化得到的。

基于对抗学习的域适应与多任务学习

  • 在图像识别任务中,遇到训练样本与实际预测的图像在分布上有较大差异时,需要进行域适应训练。这时,我们的训练域(源域)有大量的标记图像,而实际预测域(目标域)是大量的未标记图像。域适应的基本想法是通过对抗学习使得神经网络提取的特征可以有效用于源域的分类,并且提取的特征在源域和目标域不可分。
  • 《Simultaneous Deep Transfer Across Domains and Tasks》中提出将源域的分类 loss 加上 “domain confusion” loss 作为总的损失函数。如图所示 θD 是域对抗训练的域分类参数,用于判别 θrepr 特征提取器提取的特征是属于源域还是目标域。在固定θrepr不变,训练θD时的目标是能够判别输入图像属于哪个域。在固定θD不变,训练θrepr时的目标是使得提取的特征能够迷惑刚才训练出色的域分类器。 域分类器.png “domain confusion” loss.png
  • 《Domain-Adversarial Training of Neural Networks》和《Unsupervised Domain Adaptation by Backpropagation》提出在网络中引入 gradient reversal 层,方便地在每次反向传播的迭代过程中进行对抗训练。如图所示,绿色部分是特征提取器,蓝色部分是源域上的图像分类任务,红色部分是域分类器,即用于预测输入图像属于源域还是目标域。图像分类任务的损失Ly正常利用反向传播更新蓝色与绿色部分参数即可。对于域分类任务的损失Ld,红色部分正常地采用反向传播,但是在绿色部分和红色部分之间加入了gradient reversal 层,这一层会将红色部分传播过来的梯度取反,并且梯度乘以一个系数λ,用于平衡分类任务和域适应之间的重要度。可以很直观地理解到梯度取反的目的是希望特征提取器参数更新的方向应该尽量使域分类器无法正确判别。 Domain-Adversarial Training.png
  • 前面的域适应模型都是在源域和目标域共享特征提取器参数,《Adversarial Discriminative Domain Adaptation》提出源域和目标域采用两套独立的特征提取参数,如图。首先,在源域上训练特征提取器和分类器。然后,利用源域和目标域的图像进行对抗训练,这里固定源域特征提取参数不变,反向优化目标域的特征提取器,使得域分类器无法判别输入图像属于哪个域。最后,利用第二步训练的目标域特征提取器和第一步训练的分类器对目标域图像进行分类。 图片.png
  • 借鉴这样的想法,我们可以在一些多任务迁移学习中分别提取不同任务的共有特征与特殊特征,例如自然语言处理中的词性标注与命名实体识别任务在需要提取的特征上具有一定的共性。《Adversarial Multi-task Learning for Text Classification》中利用 gradient reversal 提取多任务的共享特征,改进了普通的多任务迁移学习。如图所示,简单地在不同任务之间完全共享特征是不太合理的,因为即使非常相似的任务也会有比较强的特殊特征。在 Shared-Private Model 中在黄色部分引入 gradient reversal 对抗训练确保这部分模型是多任务共享特征的,而灰色部分的模型在不同任务间独立,可以用于提取任务特殊的特征。 多任务迁移学习.png

强化学习

变分推断与贝叶斯神经网络

  • 据说是深度学习未来的希望。LDA 的一作 Blei 发表的《Variational Inference: A Review for Statisticians》比较详细的介绍了变分推断的原理以及目前几个主要的研究方向。
  • 《Auto-Encoding Variational Bayes》是比较著名的结合神经网络与变分推断的作品。文中对手写数字图像引入隐变量 z(多维向量,但每一维相互独立),我们认为相同的数字的隐变量 z 比较相似。作者利用神经网络拟合q(z|x),输入一幅图像,神经网络预测 z 各个维度的高斯分布的均值和方差(作者假设z的各维服从高斯分布)。另一个神经网络拟合 P(x|z),即给定隐变量之后尽可能的还原数据。在比较常见的变分推断中通常直接用变分参数来刻画隐变量的概率分布例如 q(z|φ),然后通过优化参数 φ 来使 q(z|a) 逼近 p(z|x)。如果在这里的手写数字例子中不使用神经网络拟合q(z|x),即不考虑 x 而是直接用参数刻画 q,那么就会有 2 * n * m 个参数(n幅图片,每幅图m维的隐变量,每个隐变量的高斯分布均值和方差)。用神经网络拟合q(z|x)可以看做是利用模型减少了变分参数,另一个好处是一幅新的图像可以直接通过神经网络得到隐变量的分布,而不需要再进行复杂的变分迭代过程。那么 VAE 的训练是否可以换一种模式,先通过变分迭代求出最优变分参数,得到所有图像的变分参数之后统一地把他们作为 z 的 label 训练 q(z|x) 的神经网络?感觉理论上可以,有空尝试一下。LDA 中是直接用变分参数表示每篇文章主题的 q(z) 的,我们是否也可以将文章的内容考虑为 q 的输入,也同样地用神经网络拟合 q(z|x)?
  • 贝叶斯神经网络与普通神经网络的区别在于,贝叶斯神经网络中的模型参数被看成服从某个分布变量,如图所示《Weight Uncertainty in Neural Networks》。这样的好处是模型可以表达预测的不确定性,如果输入值与训练样本空间很接近,那么预测的确定性会比较高。反之确定性会很低,即多次采样模型参数预测的值方差会比较大。如图所示,黑色点表示训练样本,在靠近黑色部分预测的方差很小,而越离开黑色部分预测方差越大。《Practical Variational Inference for Neural Networks》中对一些分布集中在0的参数进行了剪枝,并且说明在神经网络中使用 L1 和 L2 正则可以看成贝叶斯神经网络在参数服从某些分布时的特例。 普通神经网络与贝叶斯神经网络.png 贝叶斯网络的预测.png
  • 2019 ToDo:变分贝叶斯这方面确实博大精深,Yarin Gal 好像在这方面有比较多的成果,好好看一下他的博士论文《Uncertainty in Deep Learning》

王朔

  • 王朔的《看上去很美》挺有意思,在语言风格上有点像王小波,方枪枪也可以用特立独行来形容,但是在深度上还差了远。王朔也确实主动认怂了。有记者问:“在你不写的那段时间,出来一个王小波,有人说把王朔盖了。”王朔答:“王小波是好样的,我也是好样的。我们不存在谁盖了谁的问题。王小波要是活着,我觉得他会更牛。他好并不意味着我不好,我们交相辉映可以吧。”
  • 利导说他以前的名字是王晓波,我不信,有机会让他证明一下。

埃梅里

  • 在12 月之前我认为埃梅里是个有趣的人。接手阿森纳这个“烂摊”几个月,阿森纳表现不俗,一度超越热翔夺回联赛第四,并且取得连续22场不败。球队的踢法也可以说十分美丽,可以媲美温格二代。
  • 无奈时间来到了12月份,崩盘。。。。。。
  • 昨天被利物浦踢了 5:1,实在是无法接受。

2019 打算做的有趣的事情

  • 用 Julia 语言实现 CTC 的 cpu 和 gpu 版本。
  • 看完王朔的主流作品,亲自证明王朔挺有趣的但是不如王小波。
  • 阿森纳进前四。这很困难,并且不是我打算就有用的。埃梅里究竟是不是一个有趣的人得看他能不能带阿森纳进前四。
  • emmmmmm,这件事还是比较重要的(麟哥都叮嘱了哈哈哈),不说了挺尴尬的,这也不是我打算就能做的。

相关文章

  • 2018 一些有趣的东西和人

    CTC loss 主要用在例如语音识别这样,输入与输出结果不一一对齐的序列预测场景,如图所示语音识别.png 在不...

  • 坡西和坡东

    微山县两城镇的一溜大山都是南北走向的。顺山而下,是漫长的坡地,一直延伸到微山湖边。微山湖的那边也住着人,习惯上被称...

  • 抖音(2018年6月8日)

    抖音(2018年6月8日) 最近学了一些和抖音运营有关的一些小知识,觉得还蛮有趣的,一边刷完上厕所的时候,学一些东...

  • 仪仗

    主要作为就是从城南走到东又从东走到南 这个小城有一些历史悠久的铁器文物 最初 它因为没有西和北两个方向而久负盛名...

  • 西和

    只不过我现在住的地方叫“西和公寓”,至于为什么叫西和,可能处在小和山的西边,可能不是。至于为什么这篇文章叫西和,东...

  • 西和县党政代表团赴市北区开展东西部扶贫协作考察学习活动

    8月20日,西和县县委副书记、政府县长杨永贵带队,西和县党政代表团到市北区进行考察学习。市北区召开市北区—西和县东...

  • 那些枯燥的东西和有趣的东西

    距离上次写东西刚好一个月,除去真的很忙的情况,也是可以腾出来一点时间用来写文的。可是,动画太好看、游戏太好玩、小说...

  • 每周阅读(1/1/2018)

    2018年第一周,简单罗列以下希望能完成的一些事: make something new 希望能做出一些新东西和尝...

  • 好好告别

    好好告别 一些东西和一些人不动声响地从你的世界离开,然后渐渐消失在你的记...

  • 什么样的女生给人的感觉是魅力十足

    1.有趣且性格好 这里说到有趣,大概就是大家口中所谓有趣的灵魂。主要还是说需要有自己热爱的东西和自己的长处,这是能...

网友评论

    本文标题:2018 一些有趣的东西和人

    本文链接:https://www.haomeiwen.com/subject/kswmkqtx.html