回顾BERT优势与劣势:深入理解这些无监督怪兽,及其前景展望,GPT,BERT,VideoBERT

如果“你所能告诉我的,只是你想表达的十分之一”,那么“表达”和接受“表达”的效率,也许是智能重要组成之一  — David 9

我们知道目前的AI无法表达自己,甚至,连接受“表达”的能力也相当有限。在NLP(自然语言)领域比其他领域更滞后。从word2vec词向量到ELMo,再到2018年谷歌的BERT系列模型,深度神经网络在NLP领域中“半推半就”达到一个有共识的高度:

来自:https://www.analyticsvidhya.com/blog/2019/09/demystifying-bert-groundbreaking-nlp-framework/

即使经过这样一个漫长的过程,BERT系列模型还是需要在预定domain域上事先做大规模预训练,才能在下游任务上表现更好:

来自:https://towardsdatascience.com/a-review-of-bert-based-models-4ffdc0f15d58

大规模预训练”,“更宽深层双向encoding”,“带MASK的无监督训练”,“注意力机制”,“fine-tuned模型”,对BERT有一些深入了解的朋友一定对以上这些词不陌生。是的这些是BERT训练要素。

但是BERT有效,是因为在目前大数据算力的条件下,不得已只能使用这种方式超越前任算法。这种方式的好处很明显:

1. 多头的注意力机制和双向encoding让BERT的无监督训练更有效,并且使得BERT可以构造更宽的深度模型:

来自:https://towardsdatascience.com/deconstructing-bert-part-2-visualizing-the-inner-workings-of-attention-60a16d86b5c1

2. 把特定任务的模型fine-tune放到后面去做,增大整个模型的灵活性。如果你能拿到较好的预训练模型,甚至再用一个简单的logistic回归就能fine-tune出一个较好的任务模型。

3. BERT无监督(自监督)的预训练,给了其他连续型数据问题很多想象力。所谓连续型数据问题,指那些像语言,音频,视频等(如果任意删除其中一段,在语义上就显得不连贯)。这种数据结合BERT模型可以做一些有意思事情,如VideoBERT, 就是通过把字幕和视频拼接,作为一个新的连续型BERT模型(用来自动生成字幕): 继续阅读回顾BERT优势与劣势:深入理解这些无监督怪兽,及其前景展望,GPT,BERT,VideoBERT

端到端基于模型的GAIL对抗模仿学习,Model-based GAIL,David 9的填坑贴

嘿,你这个叫GAIL小家伙,跟着大人学的时候,自己也要看看下一步— David 9

接着上次的GAIL讨论(GAN+增强学习),我们还有一个坑未填。即,基于模型的GAIL对抗模仿学习。首先回顾一下强化学习的简单体系:

1. 如果RL(强化学习)训练中给出回报(reward),其算法有我们熟悉的价值迭代value iteration算法和策略policy iteration算法,以及DPL(Direct Policy Learning假设一个policy)。

2. 如果没有明确回报(reward)给出,就涉及到更有意思的模仿学习IRL(Inverse Reinforcement Learning)。 一个实际的例子就是上次聊到的GAIL算法,简单说是假设回报函数,用GAN去识别目前的策略是否符合假设的回报函数(应有的策略):

来自论文:http://proceedings.mlr.press/v70/baram17a/baram17a.pdf

此处GAIL就产生一个问题,如上图,GAN判别器D可以判别生成器的策略被模仿对象(专家策略)之间的区别,但是,当把行为错误δa反向传播时,只能估算一个大概的梯度δHV 给生成器(往往不稳定并且高方差的)。这就导致一个很明显的漏洞,这个判别器D只能根据当前的行为a被模仿者的状态x1模仿者的状态x2做判别,如果模仿者和被模仿者像下面这样:

继续阅读端到端基于模型的GAIL对抗模仿学习,Model-based GAIL,David 9的填坑贴

CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法

把基于概率的自动化叫做AI是否有些可笑? — David 9

原文:An Intuitive Explanation of Connectionist Temporal Classification

聊到CTC(Connectionist Temporal Classification),很多人的第一反应是ctc擅长单行验证码识别:

两组谷歌验证码示例

是的,ctc可以提高单行文本识别鲁棒性(不同长度不同位置 )。今天David 9分享的这篇文章用几个重点直观的见解把ctc讲的简洁易懂,所以在这里就和大家一起补一补ctc 。

首先ctc算不上一个框架,更像是连接在神经网络后的一个归纳字符连接性的操作

来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

cnn提取图像像素特征,rnn提取图像时序特征,而ctc归纳字符间的连接特性。

那么CTC有什么好处?

因手写字符的随机性,人工可以标注字符出现的像素范围,但是太过麻烦,ctc可以告诉我们哪些像素范围对应的字符

手写字符的单行像素标注, 来自:https://towardsdatascience.com/intuitively-understanding-connectionist-temporal-classification-3797e43a86c

如上图标注“t”的位置出现t字符,标注o的区域出现o字符。 继续阅读CTC的直观理解(Connectionist Temporal Classification连接时序分类),单行文本时序分类识别的端到端方法