基础NLP知识了解
基础NLP知识…
线性变换
通过一个线性变换将隐藏状态映射到另一个维度空间,以获得预期维度的向量
$ outputs = hidden_layer * W + b$
这里的W是权重矩阵,b是偏置项,它们是线性变换的参数,通过训练数据学习得到。输出向量的维度由W的形状决定,如果我们想要得到一个维度为dim的多分类向量,那么W的形状应该是(hidden_state_size, dim)。
为了引入非线性,可能会在线性变换后应用一个激活函数,如Softmax。对于多分类问题,Softmax激活函数特别有用,因为它可以将输出向量转换为概率分布
$ probabilities = F.softmax(output, dim=-1)$
标准化和归一化(都是为了数据缩放):
标准化:标准化缩放数据集为均值为0,标准化差为1,$x_{new} = \frac{(x_i-\mu)}{\sigma} $, μ \mu μ是均值, σ \sigma σ是标准差
归一化:让每个元素落在0~1之间, x n e w = ( x i − x m i n ) ( x m a x − x m i n ) x_{new}=\frac{(x_i-x_{min})}{(x_{max}-x_{min})} xnew=(xmax−xmin)(xi−xmin)
BERT
在BERT(Bidirectional Encoder Representations from Transformers)模型中,[CLS]是一个特殊的标记(token),其全称为“classification token”。它主要用于分类任务中,作为整个输入序列的表示。[CLS]标记对应的最终隐藏状态被用作整个输入序列的聚合表示。在进行分类任务时,[CLS]所在位置的输出会被用来做最终的分类决策。
[SEP]用于分割句子
交叉熵(两个概率分布之间的相似性)
公式: H ( P , Q ) = − ∑ x P ( x ) l o g Q ( x ) H(P,Q)=-\sum_x P(x)logQ(x) H(P,Q)=−∑xP(x)logQ(x), P ( x ) P(x) P(x)是真实的概率分布, Q ( x ) Q(x) Q(x)是预测的概率分分布
用途:计算loss,用于表示真实分布和预测分布之间的差异
性质:非负;对称
KL散度(相对熵,用来衡量两个分布之间的差异,当用一个分布Q来拟合真实分布P时所需要的额外信息的平均量。)
公式: D K L ( P , Q ) = ∑ x P ( x ) l o g P ( x ) Q ( x ) D_{KL}(P,Q)=\sum_x P(x)log\frac{P(x)}{Q(x)} DKL(P,Q)=∑xP(x)logQ(x)P(x) P ( x ) P(x) P(x)是真实的概率分布, Q ( x ) Q(x) Q(x)是预测的概率分分布
性质:非负;不对称;不满足交换律
用途:一般用于无监督学习
对比学习(需要继续补充)
是一种机器学习技术,用于区分相似和不相似的数据点。训练最大化相似数据点之间的相似度。
batch_size和桶之间的关系:
batch_size指的是每次训练过程中,模型同时处理的数据样本的数量。较小的batch_size可以减少内存消耗并可能提高模型训练的泛化能力,而较大的batch_size可以提高数据处理效率和模型训练速度;桶是按照句子的特征进行分类,例如我们常用的是句子的长度,将句子长度相似的分配到一个桶里,这样可以在填充操作的时候少填充一些,提高计算的效率;在没有桶的时候,batch_size决定每个批次中的样本数,引入了桶之后,将样本分配到桶里,然后再在每个桶里面根据batch_size进行划分。
权重衰减:
在loss里面添加一个惩罚项来限制模型的复杂度,常被称为L2正则化。他本质上就是缩小了参数的取值范围
loss的可视化工具:animator
网络.weight.norm().item()用于计算权重的正则化
GloVe:生成的词向量是静态的,训练基于无监督学习,通过全局共现统计信息来优化词向量。它的模型结构相对简单,主要侧重于词与词之间的共现关系
ELMo:生成的词向量是动态的,根据词出现的具体上下文而变化。这使得ELMo能够更准确地表示语言,尤其是对于多义词和语境依赖的表达。使用深度学习方法,具体是通过双向LSTM来预训练一个语言模型。ELMo的训练复杂度较高,但能够捕捉到更丰富的语言特征。
Highway connection(高速连接)是一种神经网络架构,特别是在深度学习中使用的技术,旨在解决更深网络的训练难题。它由Srivastava等人在2015年提出,其核心思想是允许训练信号不经过整个网络的每一层直接传递,类似于残差网络(ResNet)中的跳跃连接(skip connection),但是在传递方式上有所不同。
Highway网络的主要特点是它引入了门控机制(gating mechanism),这些门控制了信息是直接传递还是经过非线性变换。具体来说,每一层的输出不仅取决于当前层的处理结果,还取决于前一层的输入,这种依赖关系由两个门(transform gate和carry gate)来调控。这使得网络能够自适应地决定在每一层保留多少之前层的信息,以及通过非线性变换传递多少新的信息。
相关文章:
基础NLP知识了解
基础NLP知识… 线性变换 通过一个线性变换将隐藏状态映射到另一个维度空间,以获得预期维度的向量 $ outputs hidden_layer * W b$ 这里的W是权重矩阵,b是偏置项,它们是线性变换的参数,通过训练数据学习得到。输出向量的维度…...
Android 性能优化(六):启动优化的详细流程
书接上文,Android 性能优化(一):闪退、卡顿、耗电、APK 从用户体验角度有四个性能优化方向: 追求稳定,防止崩溃追求流畅,防止卡顿追求续航,防止耗损追求精简,防止臃肿 …...
QT程序打包
将exe文件单独拿出来放入一个单独的文件夹 保存qt安装路径下有如下这个文件 windeployqt.exe 在TCPFile.exe文件夹中使用以下cmd命令运行 即可打包 windeployqt 文件名.exe 成功打包!...
ARMday7作业
实现三个按键的中断,现象和代码 do_ipr.c #include "stm32mp1xx_gic.h" #include "stm32mp1xx_exti.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//获取要处理的中断的中断号unsigned int irqnoGI…...
Unity构建详解(4)——SBP的依赖后处理
【AddHashToBundleNameTask】 这个Task的作用很明确,给Bundle的名字附加一个Hash值: 根据bundle所包含的asset计算出来一个hash值添加在原来Bundle的末尾替换了BundleBuildContent.BundleLayout和aa.bundleToAssetGroup中的key 有两个问题,…...
使用GO对PostgreSQL进行有意思的多线程压测
前言 针对PostgreSQL进行压缩,有很多相关的工具。有同学又要问了,为何还要再搞一个?比如,pgbench, sysbench之类的,已经很强大了。是的,它们都很强大。但有时候,在一些特殊的场景,可…...
CI/CI实战-jenkis结合gitlab 4
实时触发 安装gitlab插件 配置项目触发器 生成令牌并保存 配置gitlab 测试推送 gitlab的实时触发 添加jenkins节点 在jenkins节点上安装docker-ce 新建节点server3 安装git和jdx 在jenkins配置管理中添加节点并配置从节点 关闭master节点的构建任务数...
修复ubuntu引导
一、制作ubuntu启动U盘 进入启动盘后,点击Try ubuntu,进入U盘的ubuntu系统。 二、配置和添加源 sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update三、运行 Boot Repair重新制作引导 sudo boot-repair注意&#x…...
11.Notepad++
文章目录 一、下载和安装设置练习 以前在记事本上写的代码看上去有点累,因为所有的单词看上去都是黑色的,并且当代码出现问题后,它提示第三行,我们还需要一行一行去数。这些问题都可以由一个高级记事本: Notepad 来解…...
实现阻塞队列
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; public class Main { public static void main(String[] args) throws InterruptedException { BlockingQue…...
MySQL8.X驱动datetime映射问题
MySQL8.X驱动datetime映射问题 背景:项目由SSM项目迁移至SpringBoot,对mysql数据库驱动进行了升级导致出现问题。 原因:mysql驱动的8.X版本对数据库类型datetime映射为LocalDateTime。 解决:暂时不升级mysql驱动,mys…...
【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法
一、selenium 中隐藏元素如何定位? 如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素(如click,clear,send_keys) 二、隐藏元素 如下图有个输入框…...
视图的作用
目录 视图的作用 创建视图 为 scott 分配创建视图的权限 查询视图 复杂视图的创建 视图更新的限制问题 更新视图中数据的部门编号(视图的存在条件) 限制通过视图修改数据表内容 创建只读的视图 复杂视图创建 oracle从入门到总裁:h…...
动态ip白名单频繁更改问题解决方案
1. 使用静态IP地址:可以通过向ISP申请静态IP地址来解决动态IP地址的变化问题,但是这种方法会比较贵。 2. 使用动态DNS:可以使用动态DNS服务,它可以将动态IP地址映射到一个固定的域名,从而使得动态IP地址处理为域名一直…...
什么是物联网监控平台?部署物联网平台有什么作用?
随着物联网技术的飞速发展,越来越多的企业开始关注并投入到这一领域。物联网监控平台作为连接物理世界与数字世界的桥梁,正逐渐成为企业数字化转型的关键组件。今天,我们将深入探讨物联网监控平台的定义、部署物联网平台的作用,以…...
netty构建udp服务器以及发送报文到客户端客户端详细案例
目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、Ch…...
Selenium 学习(0.22)——软件测试之小结
Junit 等一系列自动化工具不用啰嗦了,自己就是小白再搞科普就装了。 把后面相关内容看了一下,使用这些测试工具一样编写代码(驱动模块【调用接口的代码片段】,桩模块【响应输出结果的代码片段,也就是被测模块调用的模块…...
贪心算法问题
分发饼干-455 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有…...
深入理解 @Transactional 注解在 Spring 中的应用
前言:在 Java 开发中,事务管理是非常重要的一环。Spring 框架提供了Transactional注解来简化事务管理的操作,本文将深入介绍Transactional注解的用法,并结合代码示例进行详细讨论。 1.Transactional 注解简介 Transactional注解是…...
Python爬虫之爬取网页图片
当我们想要下载网页的图片时,发现网页的图片太多了,无从下手,那我们写一个脚本来爬取呗。 这次的脚本是专门针对某个外国网站使用的,因此仅供参考思路。 在测试的过程中,我发现网站使用了发爬虫机制,具体就…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...
安宝特案例丨寻医不再长途跋涉?Vuzix再次以AR技术智能驱动远程医疗
加拿大领先科技公司TeleVU基于Vuzix智能眼镜打造远程医疗生态系统,彻底革新患者护理模式。 安宝特合作伙伴TeleVU成立30余年,沉淀医疗技术、计算机科学与人工智能经验,聚焦医疗保健领域,提供AR、AI、IoT解决方案。 该方案使医疗…...
