| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Bert预训练 -> 正文阅读 |
|
[人工智能]Bert预训练 |
Bert模型的目的: 预训练Transformer的encoder网络,从而大幅提高准确率 主要有两个任务: 1、预测被遮挡单词: 随机遮挡一个词或多个词,让encoder根据上下文来预测被遮挡的单词 2、预测下一个句子: 把两个句子放在一起,让encoder判断是否是原文中相邻的两个句子 预测被遮挡单词: 首先输入一句话,然后这句话被分词成了一个个的单词,通过embedding层把每一个单词映射成一个个的词向量x1x2...xt ,最后也输出u1u2....ut这么多向量 具体过程: 假如现在我们遮挡住了cat这个单词 那么我们会用mask标记这个被遮挡的单词,紧接着它就会被embedding层标记为Xm向量,输出记为Um向量,我们知道,Transformer的映射是多对一,所以Um向量会依赖所有的X向量,也就是说它会知道整句话的内容,那么就可以用它来预测被遮挡的单词是什么,将这个Um作为特征向量送入softmax分类器输出一个概率分布p,根据这个p值来判断被遮挡的词是什么 ?这里,我们的希望的p值是越接近mask的one-hot编码越好 我们将被遮挡单词的ont-hot向量记为e,将CrossEntropy(e,p)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数,bert预训练不需要人工标注数据,它用被遮挡的单词作为标签,可以自动生成标签,这样训练数据就可以想要多少就有多少,从而训练出一个很大的模型 预测下一个句子 输入数据:
这两句话是真实的原文我们把它标签为true??
这两句话是随机匹配的我们把它标记为false 向量C虽然在CLS的位置上,但它包含的是输入的两句话的全部信息,把C作为特征向量输入分类器Binary,得到一个介于0-1之间的值f,其中,1是代表两句话true,0代表两句话毫无关联,依旧用将CrossEntropy(e,f)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数 这样作预训练是因为: 相邻的两句话通常有关联,这样作二分类可以强化这种关联,让embedding层包含这种关联,而且encoder层中的self-attention层的作用恰好就是找相关性 bert将上述所讲的这两种任务结合起来训练Transformer,假如有两个单词被遮挡,就需要三个任务,也就是说三个损失函数,第一个损失函数是二分类(判断标签是true还是false),第二三个损失函数就是预测这两个单词,目标函数就是三个损失函数的加和,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数 总结: 预测遮挡单词是一个多分类问题 bert可以解决哪些nlp中的高级别下游任务? ●判断两句话意思是否相近 下图表示:Bert模型已经接近甚至超过人类语言理解水平 如何利用Bert: 1、情感分析 ?2、词性标注 3、文本蕴含任务 ? 4、抽取式问答系统: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 22:33:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |