深度学习DAY3:FFNNLM前馈神经网络语言模型

news2024/11/15 9:44:45

1 神经网络语言模型NNLM的提出

文章:自然语言处理中的语言模型预训练方法(ELMo、GPT和BERT)
https://www.cnblogs.com/robert-dlut/p/9824346.html

语言模型不需要人工标注语料(属于自监督模型),所以语言模型能够从无限制的大规模语料中,学习到丰富的语义知识。
在这里插入图片描述

1.1 n-gram模型问题:

①模型高度依赖训练语料,泛化能力差,也就是不同文本之间的n-gram差异很大

②模型估算概率时遇到的数据稀疏,平滑后效果也不好

在这里插入图片描述

  • 点—— 用n-gram语料库训练出来的每个词序列的出现的概率
  • 平滑曲线——所有词序列概率相乘所得的P(S),也就是有这些词序列所组成的句子的出现概率

在这里插入图片描述

  • 离散点与曲线的距离——点1是词序列1的概率,但是离散词序列点1没在平滑曲线L上面,也就是n-gram模型会将该离散词序列1附近的另一个词序列2(在平滑曲线上)的概率作为离散词序列点1的概率去建立模型。而词序列2不一定在语料库中有出现
    因此,n-gram所建立的模型对某个句子进行预测时,会有较大的概率损失。
    这是无论怎么平滑都无法避免的,因为建立模型的概率点是离散的。
    特别是差异很大的异常点,会对模型的结果造成比较大的影响

③n元模型无法建立长期联系

④n-gram以离散符号为统计单元,无法体现语义相似性

在这里插入图片描述
由于数据是离散的,如果特别能没有在语料库出现过,而在语料库中的出现概率很大但是特别能和能意思相近,那么根据n-gram的计算原理,两个已经意思相近的句子的出现概率可能一个为0,一个很大,而实际上两个句子的出现概率差不多,因此会有很大的概率损失误差。

1.2 NNLM 的提出

神经网络NN

为了解决这个问题,我们在将神经网络(NN)引入到了连续空间的语言建模中。NN 包括前馈神经网络(FFNN)、循环神经网络(RNN)、卷积神经网络(CNN)可以自动学习特征和连续的表征。因此,人们希望将 NN 应用于 LM,甚至其他的 NLP 任务,从而考虑自然语言的离散性、组合性和稀疏性。

n-gram学出了离散词序列出现频率点,而深度学习的神经网络语言模型直接学习出了平滑曲线

也就是不同于n-gram里面的平滑曲线是“模糊的拟合”,深度学习的平滑曲线是“更细粒度的拟合”。

NNLM可以联系长期上下文
在这里插入图片描述

2 前馈神经网络FFNN

别称多层感知器(multilayer perceptrons)

2.1 包含两层隐藏层的前馈神经网络

  • 每一个箭头都带着权重,表示其输入变量的重要程度
  • 隐藏层中每个圆圈代表一个神经元,神经元对应着某个函数,通常都是一个非线性函数σ(sigmoid最常用,也有换成ReUL、tanh的),该类非线性函数在NN中被称为激活函数。

激活函数之sigmoid“S型函数”

激活函数之tanhh“双曲正切”函数

激活函数之ReLU“线性整流函数”

  • 隐藏层的结果会通过线性加权组合变成下一个层的输入
  • 输出层神经元的个数取决的任务的分类类别个数
  • 一些层是没有线性激活函数的,比如sigmoid函数

2.2 神经元

每个神经元都是一个函数。
在这里插入图片描述

2.2.1 公式:

y = σ( Σ(Wi * Xi) + b)

输入:x
输出:y
权重:Xi对应权重Wi
激活函数σ:sigmoid、tanh、ReLU

参数b:表示偏置/阈值,b是一个常数。b与加权求和值相加,然后再经过激活函数。这有助于调整神经元的灵敏度和响应特定类型的输入。

在神经元网络中,偏置是一种可学习的参数,用于调整神经元的激活值。

意义:
调整神经元的激活函数在输入为零时的截距位置。

2.2.2 神经元处理步骤:

1 对输入加权求和,加上偏置b

得到初步的点估计值

h =(Σ(W * X)+b)

意义:

  • 特征加权重要性:权重(weights)表示了每个输入特征的重要性,它们决定了每个特征在神经元的决策中所占的比重。通过适当调整权重,神经元可以学习到哪些特征对于问题的解决更为关键,从而提高网络的性能。

  • 偏置项引入平移:偏置项(bias)是一个常数,它的作用是引入一个平移,允许神经元在没有任何输入信号时也能发出非零的响应。这对于模型的表达能力很重要,因为它允许神经元不仅仅依赖于输入的线性组合,还能引入非线性决策。

实例:

房价预测

假设我们正在构建一个神经网络来预测房价。我们有三个 输入特征:房屋面积(Area)、卧室数量(Bedrooms)、和附近学校的评分(School_Rating)。每个特征都有对应的权重,用来衡量它们在预测房价中的重要性。

  • 权重1(w1)对应房屋面积,表示房屋面积对房价的影响程度。
  • 权重2(w2)对应卧室数量,表示卧室数量对房价的影响程度。
  • 权重3(w3)对应附近学校的评分,表示学校评分对房价的影响程度。

假设偏置项(b)为-10000,这意味着即使所有输入特征都为零,房价预测也不会降到零,因为偏置项引入了一个平移。这是因为即使房屋没有面积、没有卧室、学校评分为零,房价仍然有一个基本价值。

通过对这些输入进行加权求和,加上偏置项,神经元可以计算一个房价的初始估计值。然后,这个初始估计值将被送入激活函数,例如线性激活函数、Sigmoid函数或ReLU函数,以引入非线性性质并产生最终的房价预测。

2 激活函数映射——引入非线性性质

将h的值通过激活函数σ映射到一个特定的输出范围内的一个值,通常是[0, 1]或[-1, 1]

σ(h)

在这里插入图片描述
意义:引入非线性性质,使神经网络能够适应更加复杂的数据模式和问题。

例子

二元分类

假设我们有一个二元分类问题,要根据一些特征来预测一封电子邮件是垃圾邮件(标记为1)还是非垃圾邮件(标记为0)。神经网络的最后一层输出单元通常需要产生一个在[0, 1]范围内的值,表示某封邮件属于垃圾邮件的概率。这时,Sigmoid激活函数非常适合用于最后一层,因为它可以将加权求和值映射到[0, 1]之间的范围。

例如,如果某封邮件的加权求和值为0,经过Sigmoid激活后,输出为0.5,表示该邮件属于垃圾邮件和非垃圾邮件的概率相等。如果加权求和值远远大于0,例如10,经过Sigmoid激活后,输出接近于1,表示邮件极有可能是垃圾邮件。反之,如果加权求和值远远小于0,例如-10,经过Sigmoid激活后,输出接近于0,表示邮件很可能是非垃圾邮件。

这样,我们可以利用Sigmoid函数将连续的加权求和值映射到概率值,方便进行分类决策。

3 前馈神经网络语言模型FFNNLM

(Feed Forward Neural Language Model )

前馈神经网络语言模型(FFNNLM)由 Bengio 等人于 2003 年提出,它通过学习一个单词的分布式表征将单词表征为一个被称为「嵌入」的低维向量)来克服维数诅咒。FFNNLM 的性能要优于 N 元语言模型。

该语言模型使用了一个三层前馈神经网络来进行建模。其中有趣的发现了第一层参数,用做词表示不仅低维紧密,而且能够蕴涵语义,也就为现在大家都用的词向量(例如word2vec)打下了基础

Word2Vec是Google公司于2013年发布的一个开源词向量工具包。该项目的算法理论参考了Bengio 在2003年设计的神经网络语言模型。由于此神经网络模型使用了两次非线性变换(tanh、softmax),网络参数很多,训练缓慢,因此不适合大语料。Mikolov团队对其做了简化,实现了Word2Vec词向量模型。 ——《NLP汉语自然语言处理原理与实践》

在这里插入图片描述
在这里插入图片描述
右上方橙色表格为词向量矩阵,对应下面的"V"
NNLM北语讲解

3.2 LSTM-RNNLM长短期记忆循环神经网络模型

Mikolov 等人于 2010 年提出了 RNN 语言模型(RNNLM),理论上可以记忆无限个单词,可以看作"无穷元语法" (∞-gram)。
RNN解决了学习长期依赖问题,能够联系上下文
在这里插入图片描述

是否三元或者四元甚至更高阶的模型就能覆盖所有的语言现象呢?答案显然是否定的。因为自然语言中,上下文之间的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落。因此,即使模型的阶数再提高,对这种情况也无可奈何,这就是马尔可夫假设的局限性,这时就要采用其他一些长程的依赖性(Long DistanceDependency)来解决这个问题了。——《数学之美》

参考

自然语言处理NLP中的N-gram模型

简单理解 n-gram

语言模型(N-Gram
N-gram的简单的介绍
N-Gram语言模型
语言模型(LM)和循环神经网络(RNNs
自然语言处理中的语言模型预训练方法(ELMo、GPT和BERT
【研究前沿】神经网络语言模型综述_单词
NLP:n-gram模型
前馈网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1078958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VRRP 虚拟路由器冗余协议的解析和配置

VRRP的解析 个人简介 原理和HSRP的差不多,少了一些状态就只有了三种状态 还有不同的就是VRRP严格按照抢占要求 一个VRRP组中具有最高优先级的设备成为Master路由器缺省优先级为100若优先级相同,具有最高接口IP地址最大的路由器成为Master路由器抢占(Pr…

uniapp 首页制作

uniapp拨打固定的电话 function Hotline() {// 拨打电话uni.makePhoneCall({phoneNumber: 19969547693})}页面跳转 //普通跳转function homepage() {uni.navigateTo({url: /pages/homepage/homepage});}//二、uni.redirectTo关闭当前页面,跳转到应用内的某个页面。…

Qt源码调试

在实际Qt开发中如果遇到Qt内部的问题,往往只能通过调试源代码解决。可是从Qt5.9.9版本开始安装包中就不提供pdb文件。我安装的Qt5.12.12版本目录路径D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\bin下面并没有dll配套的pdb文件。但是如果自己编译源码又太费时间。 今天在观…

踩雷react-useRef钩子函数

今天测试提了一个bug,之前做的有个需求,在触发事件发起请求后,成功响应返回的新的数据没有第一时间渲染到网页上。 方法也都成功更新了数据,就是渲染会慢1-2分钟,排错排了老半天,最后找到了原因。 一般情…

CentOS 安装MySQL 详细教程

参考:https://www.cnblogs.com/dotnetcrazy/p/10871352.html 参考:https://www.cnblogs.com/qiujz/p/13390811.html 参考:https://blog.csdn.net/darry1990/article/details/130419433 一、安装 一、进入安装目录 将账户切换到root账户下,进入local目录下 cd /usr…

mysql面试题42:主键使用自增ID还是UUID,并且说下原因

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 其他的分布式主键使用方案,可以看下这篇文章:《有哪些合适的分布式主键方案》 面试官:主键使用自增ID还是UUID,并且说下原因 自增ID 自增ID(Auto I…

免费主机|永久免费空间|php虚拟主机|博客主机|论坛主机|免费域名|云主机

免费主机|永久免费空间|php虚拟主机|博客主机|论坛主机|免费域名|云主机 在出教程之前准备好久,测试搭建轻量论坛无压力 选用稳定免费域名➕免费主机分销给,可以套CDN使用 坚持免费时间是大厂不能媲美,刚开始做网站时用的是这个分销&#…

分类预测 | MATLAB实现KOA-CNN-GRU开普勒算法优化卷积门控循环单元数据分类预测

分类预测 | MATLAB实现KOA-CNN-GRU开普勒算法优化卷积门控循环单元数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-GRU开普勒算法优化卷积门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-GRU开普勒算法优化卷积门控循环单…

华为OD机考算法题:找终点

目录 题目部分 解读与分析 代码实现 题目部分 题目找终点难度易题目说明给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。 要求: 1.第…

系统架构师备考倒计时26天(每日知识点)

详细的项目范围说明书,是项目成功的关键。 范围定义的输入包括以下内容: ① 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。 ② 项目范围管理计划。 ③ 组…

性能优化-中间件tomcat调优

Tomcat作用 主要有三个: 管理Servlet应用的生命周期。Tomcat可以管理和控制Servlet应用程序的启动、停止、暂停和恢复等生命周期过程,确保Servlet应用的稳定运行和有序管理。把客户端请求的url映射到对应的servlet。Tomcat作为一个Web服务器,可以将客户端发送的HTTP请求URL…

【算法-贪心】无重叠区间-力扣 435 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

c++视觉处理----固定阈值操作:Threshold()函数,实时处理:二值化,反二值化,截断,设为零,反向设为零

固定阈值操作: Threshold()函数 cv::threshold() 函数是OpenCV中用于执行固定阈值二值化操作的函数。它可以用来将图像中的像素值根据用户定义的阈值转换为二进制值(0或255),以便进行图像分割、物体检测和特征提取等任务。 cv::…

迁移Linux服务器用户数据(将一个服务器的Linux用户数据迁移到另一个Linux服务器用户的流程)

文章目录 1、打包源Linux服务器用户的数据2、发送源Linux服务器用户的数据3、查看目的服务器用户接受到的数据 1、打包源Linux服务器用户的数据 先来到根目录,再使用tar命令打包数据:tar czvf root.zip.gz ./* 2、发送源Linux服务器用户的数据 在根目…

【深度学习】深度学习实验二——前馈神经网络解决上述回归、二分类、多分类、激活函数、优化器、正则化、dropout、早停机制

一、实验内容 实验内容包含要进行什么实验,实验的目的是什么,实验用到的算法及其原理的简单介绍。 1.1 手动实现前馈神经网络解决上述回归、二分类、多分类问题 分析实验结果并绘制训练集和测试集的loss曲线。 原理介绍:回归问题使用的损失函…

【手写数字识别】GPU训练版本

SVM Adaboost Bagging 完整代码 I import torch import torch.nn.functional as F from torch.utils.data import DataLoader, TensorDataset from torchvision import transforms, datasets import matplotlib.pyplot as plt# 超参数 batch_size 64 num_epochs 10# 数据…

计算机网络第三章——数据链路层(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 3.4.2 停止等待协议为什么要有停止等待协议无差错情况有差错的情况 停等协议性能分析脑图时刻 3.4.3 后退n帧协议后退n帧协议中的滑动窗口GBN发送方必须响应的三件事…

智能晾衣架丨以科技解放双手

以往的晾衣架大多是平放式、手摇式居多,为衣物的晾晒提供了一个“栖身之所。”随着科技的日新月异,智能家居的产品越来越多。晾衣架也不例外,一款带有语音控制升降、同时具备照明和消毒的多功能衣架也已深入生活,正被人们所接受。…

算法题系列12·字符串判断子序列

目录 题目描述 实现 题目描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"…

RabbitMQ与springboot整合

1、基本概念 Server:接收客户端的连接,实现AMQP实体服务;Connection:连接,应用程序与Server的网络连接,TCP连接;Channel:信道,消息读写等操作在信道中进行。客户端可以建…