人工智能
文章平均质量分 80
DonngZH
这个作者很懒,什么都没留下…
展开
-
【深度学习】Sentence Embedding-BERT-Flow
BERT等语言模型在多数NLP任务中取得优异的表现,但如果直接取BERT输出的句向量作表征,取得的效果甚至还不如Glove词向量。Bert-flow论文中指出,产生该现象的原因是BERT模型的各向异性过高,Transformer模型的输出中,高频词汇分布集中,低频词汇分布分散,整个向量空间类似于锥形结构。原创 2023-10-24 08:44:44 · 444 阅读 · 0 评论 -
【深度学习】对比学习
对比学习有的paper中称之为自监督学习[1],有的paper称之为无监督学习[2],自监督学习是无监督学习的一种形式,现有的文献中没有正式的对两者进行区分定义,这两种称呼都可以用。其常见的主要思想是模型能够更加重新的学习到编码器的特征:尽可能的缩小相似样本的距离,拉大正负样本的距离,这里可以理解为让聚类的界限更加明显。自监督学习(Self-supervised learning)可以避免对数据集进行大量的标签标注。原创 2023-09-13 15:55:33 · 1023 阅读 · 0 评论 -
【大模型】ChatGPT
本文主要介绍GPT模型的训练方法,包括预训练、监督微调、奖励建模和强化学习这四个阶段。不同微调模型具备不同特点,基础模型更富创造力,而强化学习微调后可获得最高质量的回复。在使用GPT的使用,可以利用提示工程技巧,比如提供充足上下文、引导模型步步思考等。当前模型依然存在各种局限,人类应谨慎而有效地将其应用于低风险的协作场景中,不能轻视其潜在风险。总体而言,本文系统地介绍了GPT训练的全流程和具体应用中的各种关键技巧。原创 2023-09-01 17:21:16 · 2790 阅读 · 3 评论 -
【工程实践】gradio调用模型与展示
模型在云端部署好之后,衍生出Flask、Fastapi的接口,可以借助gradio调用接口展示在前端。原创 2024-06-12 14:25:24 · 348 阅读 · 0 评论 -
【深度学习】NLP中的对抗训练
在NLP中,对抗训练往往都是针对嵌入层(包括词嵌入,位置嵌入,segment嵌入等等)开展的,思想很简单,即针对嵌入层添加干扰,从而提高模型的鲁棒性和泛化能力,下面结合具体代码讲解一些NLP中常见对抗训练算法。原创 2023-08-14 15:49:32 · 1626 阅读 · 0 评论 -
【深度学习】Sentence Embedding-BERT-Whitening
flow模型本身很弱,BERT-flow里边使用的flow模型更弱,所以flow模型不大可能在BERT-flow中发挥至关重要的作用。反过来想,那就是也许我们可以找到更简单直接的方法达到BERT-flow的效果。BERT-whitening则认为,flow模型中涉及到的逆变换和雅可比行列式计算实际需要满足变换简单、易计算的特点。因此每一层的非线性变换能力就“很弱”,为了保证充分的拟合能力,模型就必须堆得非常深。但实际上BERT-flow所使用的模型计算量并大。原创 2023-12-19 15:02:34 · 1265 阅读 · 0 评论 -
【工程实践】使用Roformer-sim(SimBERTv2 )做数据增强
Roformer-sim为基础模型做数据增强,用作数据增强与文本相似度计算。原创 2023-08-09 10:46:11 · 1218 阅读 · 3 评论 -
【深度学习】再谈向量化
向量化于人工智能时代而言,有着里程碑式的意义。人工智能与向量化,就如同西方与耶路撒冷。原创 2023-08-11 08:35:15 · 3067 阅读 · 0 评论 -
【工程实践】解决Synonyms无法下载词向量文件
使用EDA(Easy Data Augmentation)做数据增强时,需要借助Synonyms库,完成同义词的提取。Synonyms 是一个中文近义词工具包,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多自然语言理解 (NLP) 任务。该工具包目前能搜索近义词和比较语句相似度等任务,且词汇量达到了 125,792。该中文近义词工具包采用的基本技术是 Word2vec。原创 2023-08-07 15:52:57 · 472 阅读 · 0 评论 -
【大模型】GPT-3
GPT-3这是一个具有1750亿个参数的自回归语言模型,比之前的任何非稀疏语言模型大至少10倍,并在few-shot设置下测试其性能。对于所有任务,GPT-3都是在没有任何梯度更新或微调的情况下应用的,仅通过与模型的文本交互来指定任务。GPT-3的主要目标是用更少的领域数据、且不经过精调步骤去解决问题。主要贡献:证明了通过增大参数量就能让语言模型显著提高下游任务在Few-shot(仅给定任务说明和少量示例)设置下的性能。有时甚至达到了与现有最先进的微调方法相比的竞争力。原创 2023-07-26 08:50:28 · 2154 阅读 · 0 评论 -
【深度学习】BERT变体—BERT-wwm
BERT-WWM对Bert的改进主要体现在mask的方式上,使用全词mask。其改进点如下:BERT-WWM不仅仅是连续mask实体词和短语,而是连续mask所有能组成中文词语的字。具体做法是,针对中文,如果一个完整的词的部分字被mask,则同属该词的其他部分也会被mask,即对组成同一个词的汉字全部进行Mask,即为全词Mask。这样做的目的是:预训练过程中,模型能够学习到词的语义信息,训练完成后字的embedding就具有了词的语义信息了,这对各类中文NLP任务都是友好的。原创 2023-03-06 16:15:57 · 8379 阅读 · 0 评论 -
【深度学习】BERT变种—百度ERNIE 2.0
ERNIE 2.0 提出了一种持续学习的预训练框架:预训练使用了7种任务,而不是一两种简单的任务。不断引入新的预训练任务,让模型可以持续性地学习不同的预训练任务,并且不会遗忘先前学习的知识,以此让模型能够获得更为全面的表征能力。就像是我们学习一个新语言的时候,我们需要很多之前的知识,在这些知识的基础上,我们可以更快地学习新语言,如此就有了迁移学习的效果。我们的语言模型如果增加多个任务的话,是不是可以获得更好的效果?原创 2023-06-09 10:57:27 · 1560 阅读 · 0 评论 -
【深度学习】BERT变种—百度ERNIE 1.0
ERNIE: Enhanced Representation through Knowledge Integration是百度在2019年4月的时候,基于BERT模型,做的进一步优化,在中文的NLP任务上得到了state-of-the-art的结果。ERNIE 是百度开创性提出的基于知识增强的持续学习语义理解框架,该框架将大数据预训练与多源丰富知识相结合,通过持续学习技术,不断吸收海量文本数据中词汇、结构、语义等方面的知识,实现模型效果不断进化。原创 2023-06-07 09:24:47 · 908 阅读 · 0 评论 -
【深度学习】BERT变体—SpanBERT
SpanBERT出自Facebook,就是在BERT的基础上,针对预测spans of text的任务,在预训练阶段做了特定的优化,它可以用于span-based pretraining。这里的Span翻译为“片段”,表示一片连续的单词。SpanBERT最常用于需要预测文本片段的任务。SpanBERT所做的预训练调整主要是以下三点:1.使用一种span masking来代替BERT的mask;2.加入另外一个新的训练目标:Span Boundary Objective (SBO);原创 2023-03-06 16:17:06 · 9013 阅读 · 0 评论 -
【深度学习】BERT变体—ALBERT
相较于BERT,ALBERT模型减少BERT模型的参数量;预训练中的Next Sentence Prediction(NSP)任务使用了Sentence Order Prediction(SOP)进行代替;增加了n-gram mask,使用了LAMB优化器来代替AdamW,该优化器在batch size较大时效果更佳。原创 2023-03-06 16:16:32 · 6977 阅读 · 0 评论 -
【深度学习】BERT变体—RoBERTa
RoBERTa是的BERT的常用变体,出自Facebook的。来自Facebook的作者根据BERT训练不足的缺点提出了更有效的预训练方法,并发布了具有更强鲁棒性的BERT:RoBERTa。RoBERTa通过以下四个方面改变来改善BERT的预训练:在MLM任务中使用动态掩码而不是静态掩码;移除NSP任务,仅使用MLM任务;通过更大的批数据进行训练;使用BBPE作为分词器。原创 2023-03-06 16:15:23 · 10125 阅读 · 2 评论 -
【深度学习】softmax和交叉熵的配合求导
在分类问题中,尤其是在神经网络中,交叉熵函数非常常见。因为经常涉及到分类问题,需要计算各类别的概率,所以交叉熵损失函数又都是与sigmoid函数或者softmax函数成对出现。原创 2023-03-02 15:57:21 · 8497 阅读 · 4 评论 -
【神经网络】Transformer基础问答
transformer和LSTM最大的区别就是LSTM的训练是迭代的,无法并行训练,LSTM单元计算完T时刻信息后,才会处理T+1时刻的信息,T +1时刻的计算依赖 T-时刻的隐层计算结果。而transformer的训练是并行了,就是所有字是全部同时训练的,这样就大大加快了计算效率,transformer使用了位置嵌入(positional encoding)来理解语言的顺序,使用自注意力机制和全连接层进行计算。原创 2023-02-27 15:01:07 · 7765 阅读 · 0 评论 -
【神经网络】GRU
GRU(Gate Recurrent Unit)门控循环单元,是循环神经网络(RNN)的变种种,与LSTM类似通过门控单元解决RNN中不能长期记忆和反向传播中的梯度等问题。与LSTM相比,GRU内部的网络架构较为简单。原创 2023-02-27 14:39:54 · 25400 阅读 · 3 评论 -
【神经网络】LSTM
长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,相比普通的RNN,LSTM能够在更长的序列中有更好的表现。LSTM区别于RNN地方,主要就在于它在算法中加入了一个判断信息有用与否的"处理器",这个处理器作用的结构被称为cell。一个cell当中被放置了三扇门,分别叫做输入门、遗忘门和输出门。一个信息进入LSTM的网络当中,可以根据规则来判断是否有用。原创 2023-02-27 14:39:12 · 8123 阅读 · 0 评论 -
【深度学习】优化器
优化器是在深度学习的反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让目标函数不断逼近全局最小点。原创 2023-02-23 16:11:23 · 7002 阅读 · 0 评论 -
【深度学习】激活函数
激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图示,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算叠加了若干层之后,无非还是个矩阵相乘罢了。假若网络中全部是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。这样就做不到用非线性来逼近任意函数。原创 2023-02-23 15:36:57 · 5903 阅读 · 1 评论 -
【机器学习、深度学习】损失函数
损失函数(Loss Function)又叫做误差函数,用来衡量算法拟合数据的好坏程度,评价模型的预测值与真实值的不一致程度,是一个非负实值函数,通常使用来表示,Y表示真实值,f(x)表示模型的预测值。损失函数越小,说明模型拟合的越好,模型的性能也越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。原创 2023-02-23 15:33:58 · 5786 阅读 · 0 评论 -
【机器学习】生成式模型和判别式模型
在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型。判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模。原创 2023-02-23 16:13:46 · 6741 阅读 · 0 评论 -
【机器学习】朴素贝叶斯算法
朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型。经典应用案例包括:文本分类、垃圾邮件过滤等。原创 2023-02-23 16:13:51 · 17564 阅读 · 0 评论 -
【工程实践】Python 实现多进程加速程序
multiprocessing与 tqdm 实现多进程、pandarallel实现多进程原创 2021-12-22 16:25:03 · 1836 阅读 · 0 评论 -
【机器学习】马尔可夫链与隐马尔可夫模型(HMM)
马尔可夫链(Markov chain),又称离散时间马尔可夫链(discrete-time Markov chain),因俄国数学家安德烈·马尔可夫(A.A.Markov)得名。描述的是状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔可夫性质。马尔科夫链作为实际过程的统计模型具有许多应用。原创 2023-02-23 16:12:53 · 7353 阅读 · 1 评论 -
【深度学习、工程实践】深度学习进行情感分析(1)--数据预处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而原创 2022-01-11 14:22:37 · 4526 阅读 · 2 评论 -
【工程实践】python 去除\xa0、\u3000、\n、\u2800、\t等字符
空格可以分为两类,一类为普通文本空格,另一类为html实体空格。普通文本空格介绍普通半角空格和普通全角空格。html实体空格介绍三种,分别为html实体不间断空格( )、html实体半角空格( )和html实体全角空格( )。原创 2023-02-27 14:35:05 · 12137 阅读 · 0 评论 -
【机器学习】Adaboost
AdaBoost(adapt boost),自适应推进算法,属于Boosting方法的学习机制。是一种通过改变训练样本权重来学习多个弱分类器并进行线性结合的过程。它的自适应在于:被前一个基本分类器误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或预先指定的最大迭代次数再确定最后的强分类器。Adaboost主要解决的问题有: 两类问题、多类单标签问题、多类多标签问题、回归问题。原创 2023-02-20 15:25:12 · 7421 阅读 · 0 评论 -
【机器学习】推导逻辑回归反向传播
根据上图的正向传播流程,可以把前向传播的计算公式列出来,为了简便运算,公式中只涉及了w1、w2、b三个变量。其中y为已知的真实值,a为预测值,如果预测值越接近真实值,那么对应损失的函数将越接近 0。逻辑回归的过程就是不断学习、不断调整w1、w2、b三个变量,使得损失函数的值尽可能的接近0,使得预测值尽可能接近真实值。现在的计算目标已经变为:不断的调整w1、w2、b三个变量使得损失函数尽可能的小。将2)、3)4)中的计算结果带入到 1)中可以得到损失函数。求偏导计算结果,计算结果如下所示。原创 2023-02-20 14:28:42 · 5486 阅读 · 0 评论 -
【机器学习】逻辑回归
逻辑回归对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。回归模型中,y是一个定性变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率。原创 2023-02-20 14:24:45 · 5060 阅读 · 0 评论 -
【机器学习】线性回归
线性回归,是利用数理统计中回归分析,借助回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。适用于有监督学习的预测。原创 2023-02-20 14:23:06 · 5165 阅读 · 0 评论 -
【机器学习】决策树
不同于逻辑回归,决策树属于非线性模型,可以用于分类,也可用于回归。可以被认为是if-then规则的集合,以信息增益(信息增益比、基尼系数)为度量构建一个度量标准下降最快的树,每个节点都代表一个属性的测试,知道叶子节点处只剩下同一类别的样本。决策树的学习包括三个重要过程:(1)特征选择:常用的特征选择有信息增益、信息增益比、基尼系数等。(2)生成过程:通过计算信息增益或者是其他指标,选择最佳特征。从根节点开始,原创 2023-02-20 15:23:08 · 5097 阅读 · 0 评论 -
【机器学习】决策树-Gini指数
基尼系数也是一种衡量信息不确定性的方法,与信息熵计算出来的结果差距很小,基本可以忽略,但是基尼系数要计算快得多,因为没有对数。原创 2023-02-20 15:10:37 · 14893 阅读 · 1 评论 -
【机器学习】决策树-C4.5算法
C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化。C4.5算法对ID3算法主要做了一下几点改进:(1)通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;(2)能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;(3)构造决策树之后进行剪枝操作;(4)能够处理具有缺失属性值的训练数据。C4.5算法训练的结果是一个分类模型,这个分类模型可以理解为一个决策树,分裂属性就是一个树节点,分类结果是树的结点。原创 2023-02-20 15:09:34 · 16039 阅读 · 3 评论 -
【机器学习】决策树-ID3算法
信息增益可以很好的度量特征的信息量,但在某些情况下存在一些弊端。对可取值数目较多的属性有所偏好。因为信息增益反映的是给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大。信息增益偏向取值较多的特征。原创 2023-02-20 15:07:24 · 5976 阅读 · 0 评论 -
【机器学习】集成学习
集成学习的基本思想是结合多个学习器组合成一个性能更好的学习器。这类方法会训练多个弱学习器(基学习器)并将它们输出的结果以某种策略结合起来组成一个强学习器。原创 2023-02-21 13:50:06 · 5408 阅读 · 0 评论 -
【机器学习】XGBoost
XGBoost(eXtreme Gradient Boosting)极度梯度提升树,属于集成学习中的boosting框架算法。对于提升树,简单说就是一个模型表现不好,继续按照原来模型表现不好的那部分训练第二个模型,依次类推。本质思想与GBDT一致,构建多个基学习器使用加法模型,学习前面基学习器的结果与真实值的偏差,通过多个学习器的学习,不断降低模型值和实际值的差。最终模型的预测结果是由所有基学习器预测结果的加和。原创 2023-02-20 15:26:29 · 14430 阅读 · 2 评论 -
【机器学习】GBDT
GBDT(Gradient Boosting Decision Tree),梯度提升树。它是一种基于决策树的集成算法。其中Gradient Boosting 是集成方法boosting中的一种算法,通过梯度下降来对新的学习器进行迭代。它是利用损失函数的负梯度方向在当前模型的值作为残差的近似值,进而拟合一棵CART回归树。GBDT算法无论处理回归问题还是分类问题使用的决策树都是CART回归树,原因是GBDT每次迭代要拟合的是梯度值,是一个连续值,所以要用回归树。原创 2023-02-20 15:25:47 · 5915 阅读 · 0 评论