近日,New Trends in Image Restoration and Enhancement (以下简称:NTIRE) 比赛结果揭晓,旷视研究院荣获双目图像超分辨率赛道的冠军。NTIRE 即“图像恢复与增强的新趋势”,是近年来计算机图像恢复领域最具影响力的一场全球性赛事,由苏黎世联邦理工学院计算机视觉实验室(Computer Vision Laboratory, ETH Zurich)主办,每年都会吸引大量的关注者和参赛者。
Transformer模型是目前机器翻译等NLP问题最好的解决办法,比RNN有大幅提高。Bidirectional Encoder Representations from Transformers (BERT) 是预训练Transformer最常用的方法,可以大幅提升Transformer的表现。
bert主要使用两个任务做训练:
1、预测被遮挡的单词
2、判断两句话是否相邻
任务一:
·𝐞: one-hot vector of the masked word “cat”. • 𝐩: output probability distribution at the masked position. • Loss = CrossEntropy(𝐞, 𝐩) . • Performing one gradient descent to update the model parameters.
Task 2: Predict the Next Sentence
Given the sentence: “calculus is a branch of math”. • Is this the next sentence? “it was developed by newton and leibniz”
Input:两句话之间有sep符号分开,cls表示分类任务 [CLS] “calculus is a branch of math” [SEP] “it was developed by newton and leibniz” • [CLS] is a token for classification. • [SEP] is for separating sentences.
Input: [CLS] “calculus is a branch of math” [SEP] “it was developed by newton and leibniz” • Target: true
Combining the two methods:
• Input: “[CLS] calculus is a [MASK] of math [SEP] it [MASK] developed by newton and leibniz”. • Targets: true, “branch”, “was”.
bert同时使用两种任务结合:
Loss 1 is for binary classification (i.e., predicting the next sentence.) • Loss 2 and Loss 3 are for multi-class classification (i.e., predicting the masked words.) • Objective function is the sum of the three loss functions. • Update model parameters by performing one gradient descent
数据集:
BERT的bidirectional如何体现的?
论文研究团队有理由相信,深度双向模型比left-to-right 模型或left-to-right and right-to-left模型的浅层连接更强大。从中可以看出BERT的双向叫深度双向,不同于以往的双向理解,以往的双向是从左到右和从右到左结合,这种虽然看着是双向的,但是两个方向的loss计算相互独立,所以其实还是单向的,只不过简单融合了一下,而bert的双向是要同时看上下文语境的,所有不同。
为了训练一个深度双向表示(deep bidirectional representation),研究团队采用了一种简单的方法,即随机屏蔽(masking)部分输入token,然后只预测那些被屏蔽的token,(我理解这种情况下,模型如果想预测出这个masked的词,就必须结合上下文来预测,所以就达到了双向目的,有点类似于我们小学时候做的完形填空题目,你要填写对这个词,就必须结合上下文,BERT就是这个思路训练机器的,看来利用小学生的教学方式,有助于训练机器)。论文将这个过程称为“Masked Language Model”(MLM)。
例如在这个句子“my dog is hairy”中,它选择的token是“hairy”。然后,执行以下过程:
数据生成器将执行以下操作,而不是始终用[MASK]替换所选单词:
80%的时间:用[MASK]标记替换单词,例如,my dog is hairy → my dog is [MASK] 10%的时间:用一个随机的单词替换该单词,例如,my dog is hairy → my dog is apple 10%的时间:保持单词不变,例如,my dog is hairy → my dog is hairy. 这样做的目的是将表示偏向于实际观察到的单词。