自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 数据库学习

MySQL是最流行的关系型数据库之一,由于其体积小、速度快、成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。MySQL数据库的逻辑结构可分为三层,分别是客户端,Server层,存储引擎。第一层为客户端,它主要负责连接处理,授权认证,安全保障;第二层是Server层,它涵盖了MySQL大多数核心服务功能,包括查询解析、分析、优化、缓存和所有内置函数(例如:日期、时间、数学和加密函数);server层的基本组件有连接器、查询缓存、分析器、优化器、执行器;

2022-12-01 15:03:48 468

原创 Git学习

Github作为最大的代码托管平台,是基于Git开发的Git是最优秀的版本控制工具iCode是基于Git的代码托管平台:是对软件开发过程中各种程序代码,配置文件,说明文档等。:集中式、分布式。

2022-12-01 12:07:34 521 1

原创 python脚本:文件操作&两个文件的字符串拼接

假如每个字符串是| 12345678abc |,因为每一行都有字符串,在读取时每个字符串的结尾都有换行符\n,我们要去掉首位的|的话,需要先去掉\n,然后去掉|,最后去掉空格。如果按行写入,在每次写入时都要加换行符。

2022-11-30 15:38:57 700

原创 Linux,shell学习

linux一切皆文件root:超级管理员。

2022-11-29 17:46:41 317

原创 postgre sql学习

数据库就是一个数据的大仓库,而里面创建了很多模式,分别放着不同的数据库对象(包括表),而不同的模式有不同的权限,不同的用户就有不同的访问权限来访问某个模式里的数据库对象。数据格式之间可相互转换1.文件型:shape文件(点,线,面):wkt数据格式,wkb数据格式wkt格式可读性强,包含实际的位置信息wkb格式用于实际的数据传输(二进制)2.wkb格式转换成geometry格式存储在数据库中。

2022-11-24 19:10:09 725

原创 机器学习原理汇总

基于欧式距离的算法,认为两个目标距离越近,相似度越大。步骤:选择k个样本作为初始聚类中心对于每一个样本点,计算到每个聚类中心的距离,并将其分配到距离最小的类别中针对每个类别重新计算它的聚类中心重复上述两个步骤,直到达到终止条件。

2022-11-10 22:03:25 246

原创 11.3面试相关

贝叶斯优化算法和网格搜索不同的是:网格搜索在测试一个新点的时候会忽略前一个点的信息,而贝叶斯优化会充分利用之前的信息,贝叶斯优化是通过对进行学习,来找到使目标函数达到全局最优的,他学习目标函数的形状的方法是:首先根据先验信息假设一个目标函数,然后采样一个新点去测试目标函数,再利用得到的信息去更新这个先验分布,最后算法测试是通过后验分布给出全局最值最有可能出现的点。

2022-11-03 22:21:44 316

原创 11.1面试相关

指针网络就是生成一个指向输入中单词的概率分布,decoder端每个时刻的输入作为query,encoder端提供key,value,然后计算关于输入中每个单词的注意力权重,并将这个注意力权重作为概率分布;然后学习一个0-1之间的权重,将这个概率分布和指向词表的概率分布进行相加这使得模型更加倾向于选择输入中的词。

2022-11-02 16:56:25 386

原创 文本生成中的采样策略

如果attention学习的不好,就会让模型只过多的关注某些词,然后导致重复翻译的现象,通过Coverage惩罚可以让decoder均匀的关注x中的词,防止一些token获得过多的注意力。在测试解码的时候,不需要限定解码的长度,等模型预测出EOS这个token,解码就停止了。每个时间步都选择分布中概率最大的作为当前解码的单词,问题在于,容易生成很多重复的句子。:在语言模型中,随着句子的越来越长,极大似然的累乘会变得越来越小。在每个时间步保留topK的结果,最后选择一个概率最大的结果。

2022-10-28 21:38:05 697

原创 Bert相关

Bert是文本编码器,它使用了Transformer的Encoder端,有两个预训练任务,分别是掩码语言模型和下一句子预测;掩码语言模型是随机选择15%的词,在这15%的词中,选择80%的词进行mask,选择10%的词随机替换成别的词,剩下10%的词什么也不做,然后根据上下文来预测这些词。下一句子预测是判断前后两个句子是否互为上下句;然后它使用了大规模的预料进行预训练。:① 在后续finetune任务中语句中并不会出现 [MASK] 标记;

2022-10-27 22:53:31 783

原创 决策树总结

决策树的学习包括三个步骤:特征选择,决策树的生成,决策树的剪枝。

2022-10-25 22:05:17 655

原创 Transformer相关

Transformer是由encoder模块各decoder模块构成的,这两个模块都是由6各相同的子模块组成。1.它的encoder模块首先是embedding层,然后是基于三角函数的绝对位置编码。

2022-10-24 18:44:11 658

原创 【无标题】

和上面两种方式类似,文本方面用Bert进行编码,音频方面用BiGRU进行编码,设计新的注意力机制来融合两种模态,并且通过该注意力机制动态选择出对分类最有用的局部信息,解决信息冗余问题或其他问题。以语音+文本(双模态)为例,语音模态可以提供音色特征来辅助情感分析任务,接下来就是将语音特征和文本特征融合,来生成更好的句子表示,更好的句子表示可以提高分类精确度。设计一种新的注意力机制,可以参考机器翻译领域对注意力改进的一些技术,新的注意力机制可以融合两种模态,还能解决信息冗余问题或者其他的问题。

2022-10-21 19:29:12 248

原创 LSTM/梯度消失/激活函数

通过引入遗忘门,输入门,输出门,缓解了RNN的梯度消失现象三个门控制对前一段信息、输入信息以及输出信息的记忆状态,进而保证网络可以更好地学习到长距离依赖关系。遗忘门:通过判断当前输入的重要程度来决定对之前信息cell的保留度Ft​=sigmoid(Wxf​X+Whf​Ht−1​)输入门:通过判断当前输入的重要程度来决定对It​=sigmoid(Wxi​X+Whi​Ht−1​)

2022-10-20 21:50:01 865

原创 生成模型的评价指标

比较候选译文和参考译文的n-gram的重合程度,unigram用于衡量单词翻译的准确度,高阶n-gram用于衡量句子翻译的流畅度。BLEU需要计算1-gram,2-gram的惩罚因子:不希望模型生成短句。对重复和短句有不好的表现。

2022-10-08 11:10:14 736

原创 文本生成中的PGN网络

encoder通过self-attention机制计算出各输入向量的隐表示来作为K,V,decoder中每个时间步的输入隐状态作为Q,然后Q和K做点乘经softmax操作得到各输入向量的权重,然后再和V做点乘得到上下文表示,将上下文表示和该时间步的输出隐表示拼接后作为该时间步的解码输出。

2022-10-07 20:24:32 434

原创 数据不平衡

随机删除一些类别多的数据,但是会改变数据分布,减少信息。目前比较好的方法是将欠采样应用到集成学习中,即对正例进行多次欠采样,将其分成n份,之后配以反例,从而形成多组正例/反例数据集,供多个学习器使用。这样看来,每个学习器都采用了欠采样,但是在全局看来不会丢失重要信息。:把类别少的数据通过复制或生成SMOTH的方法变多,也可用数据增强的方法去做。:数据分布不会发生变化,但是仍然有数据不平衡的问题。

2022-10-05 17:07:07 215

原创 word2vec&fastText

word2vec分别有输入层,隐藏层,输出层;输入的是单词的one-hot表示,,输出的是词表中每个单词的预测概率;word2vec有skip-gram,CBOW两种网络模型,skip-gram的思想是通过中心词来预测上下文,CBOW的思想是通过上下文来预测中心词;word2vec的目标函数是将条件概率最大化:(和语言模型很像)P(上下文∣中心词),P(中心词∣上下文)word2vec有两种优化方法:分层softmax和负采样。

2022-09-30 22:46:17 438

原创 GBDT/xgboost总结

bagging和boosting是模型集成的两种方式,可以将很多弱分类器融合成一个强分类器bagging:每棵树之间不存在依赖关系,可以并行处理,通过投票表决的方式来确定结果boosting:每棵树之间存在依赖关系,各棵树之间是串行的,通过将每棵树的结果累加来决定最终的结果,后面的树在拟合前面结果的残差。如何衡量一颗树很好?以xgboost为例,在构造每棵树的过程中,我们可以计算出目标函数的最小值,然后以这个最小值为准则来递归构建树的每一层节点。

2022-09-28 22:30:01 579

原创 day/代码随想录/力扣/

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。‘hello world’->‘dlrow olleh’->‘world hello’s 中使用至少一个空格将字符串中的 单词 分隔开。定义一个将字符串逆序的函数,传入整个字符串使其逆序,然年再分别传入每个单词使其逆序。2.首先去除字符串首尾多余的空格,然后去除字符串内部多余的空格。给你一个字符串 s ,请你反转字符串中 单词 的顺序。

2022-09-24 15:27:06 79

原创 机器学习基础梳理/模型评估指标

精确率和召回率是此消彼长的,无法做到双高;如果同时考虑两者,只能找到一个平衡点来兼顾精确率和召回率。当样本不平衡时,用准确率评估会失效。例如正负样本为9:1,模型全都预测成正样本,准确率为90%P-R曲线的纵轴是精确率,横轴是召回率;P-R曲线上的每一个点都代表着在不同的阈值。精确率/查准率:在被预测为正的样本中,预测对的样本的占比。召回率/查全率:在真正为正的样本中,预测对的样本的占比。准确率:在所有样本中,被预测对的样本的占比。可以无视样本不平衡的问题。下的精确率和召回率。

2022-09-21 21:37:12 430

原创 day4/代码随想录/力扣/数组

可以发现:最大的元素位于两边,所以在两边设置两个指针来比较大小,逐个将大的元素添加到新数组。【-2,-1,1,2,3】平方后:【4,1,1,4,9】先将每个元素平方,然后对其快速排序。

2022-09-12 13:44:48 90

原创 day3/力扣/代码随想录

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

2022-09-10 17:19:50 87

原创 day2/力扣/代码随想录/链表

创建结点类,链表类,判断index的合法性。

2022-09-07 16:24:55 115

原创 day1/力扣/代码随想录/链表

还需要temp指针用于保存cur指针的下一结点,否则当结点反转时,cur指针无法后移到下一结点。下一步应该退出循环,不满足循环条件:pre = 5,cur = null。最后一步应该是:pre = 4,cur = 5。所以循环条件可以是:cur!

2022-09-05 20:02:33 90

原创 NLP面试知识点汇总

sigmoid激活函数在输入值很大或很小时的导数为0,而且导数最大为0.25,所以sigmoid导数连乘很容易为0,从而出现梯度消失现象,tanh激活函数同理。梯度爆炸会导致学习过程很不稳定,最坏的结果导致权重更新导数为NaN,无法更新参数。2)随着网络层数的增加,rnn在处理长序数据时容易出现梯度爆炸和梯度消失现象。>1时,连乘操作会使梯度变得越来越大,导致梯度爆炸;反之,梯度会变得很小,导致梯度消失。优点:relu计算简单,不涉及指数运算,有效解决了梯度消失现象。随着层数的增加,最终的值和。......

2022-08-05 19:29:54 646

原创 绝对位置编码,相对位置编码

不同于CNN,RNN,对于Transformer模型,Attention模块是无法捕捉输入顺序的,即无法区分不同位置的Token1.想办法将位置信息融入到输入中,这构成了绝对位置信息的一般做法2.微调Attention结构,使它有能力分辨不同位置的token。...

2022-07-25 16:21:26 1114

原创 工程代码书写规范

数据的处理,包括DataLoader的创建,训练时对输入序列做随机Mask的逻辑。优化器的实现,修正L2的weight_decay方法。定义模型,forward的逻辑,得到训练loss。模型训练任务的组织。

2022-07-22 15:38:38 563

原创 标准化与归一化,batch normlization与layer normlization

在机器学习领域,不同特征之间的量纲一般是不同的,为了消除不同量纲之间的影响,一般需要归一化或标准化。

2022-07-21 00:27:36 208

原创 readlines,lambda,map,json

readline和readlines在读取文件中的文本时经常用到,readlines返回的是包含每行文本的一个列表,其中每个文本的结尾是\n。json的定义json是指javascript对象表示法,独立于语言,是轻量级的文本数据交换格式。json.loads()将str类型的数据转换成dict类型。json.dumps()将dict类型的数据转换成str。json.dump()将数据以json的类型写入文件。json.load()从json文件中读取数据。根据提供的函数来做指定的映射。......

2022-07-19 22:46:30 204

原创 文本生成中的OOV问题

oov问题是文本生成任务中很常见的现象,oov问题是怎么产生的呢?

2022-07-18 22:43:19 2356

原创 高斯分布/概率分布总结

模型的EM训练过程,直观的来讲是这样我们通过观察采样的概率值和模型概率值的接近程度,来判断一个模型是否拟合良好。我们可以通过算法(EM,感知机)来用模型去拟合数据,随着模型的训练,模型参数在不断更新,在这个过程中就是在最大化每个样本的极大似然函数,本质上是在更新新的高斯分布的均值和方差,直到最后收敛,我们可以找到最合适的均值和方差了。如果有两个类别的数据,那么这两个类别的数据分布是不一样的,我们最终要求的是两个高斯分布分别的μ和o。取不同值的概率大小,u表示高斯分布的均值,o代表分布的标准差。...

2022-07-14 22:51:05 2237

原创 【无标题】

节省一半的参数量,词向量矩阵非常耗内存,只需维护一个即可。auto-regressive:seq2seqCRF:建模隐状态之间的线性依赖关系好处:加快模型训练速度,噪声少,收敛快坏处:没有自我纠错的能力解码过程预测错误的现象:exposure bias 解决方案:teacher forcing与non-teacher forcing结合先用teacher forcing训练前几个epoch(或几个batch),然后non-teacher forcing训练后几个epoch,模型会具备一定的纠错能力

2022-07-12 22:42:23 48

原创 标签平滑 label smoothing

深度学习中最常见的问题就是模型的过拟合,我们通过正则化的技术来减少模型过拟合的情况;常用的正则化技术有:dropout,权重衰减,早停机制;除此之外,标签平滑也是一种正则化技术,因为它限制了softmax的最大概率,使得最大概率和其他概率相差不会特别大。举个栗子:标签进入模型中一般都会转化为one-hot编码,假设有个五分类的任务,某个标签会变成[0,0,0,1,0][0,0,0,1,0][0,0,0,1,0],前向传播经过softmax时,五个类别的概率是[0.05,0.15,0.1,0.65,0.0

2022-07-05 15:29:08 479

原创 Dataset和DataLoader

我们一般使用for循环来训练神经网络,在每次的迭代过程,从DataLoader中取出batchsize的数据,然后前向传播反向传播一次,更新参数一次在加载batch数据的时候,torch创建一个可迭代的Dataset对象(需要重写__getitem__()和__len__()两个方法),然后与DataLoader一起使用;DataLoader: 构造一个整数索引的采样器来获取Dataset的数据创建Dataset对象:需要重写 getitem 方法和 len 方法。前者通过提供索引返回数据,也就是提供

2022-06-28 17:09:07 629

原创 python的迭代

列表,字符串,元组,字典,集合,range遍历迭代的本质就是先获取可迭代对象的迭代器,然后取出相应的数据迭代器list、tuple等都是可迭代对象,我们可以通过iter() 函数获取这些可迭代对象的迭代器。然后,我们可以对获取到的迭代器不断使⽤next()函数来获取下⼀条数据。next()返回迭代器的下一个元素,一般与iter()一起使用自定义可迭代对象自定义可迭代对象: 在类里面定义__iter__ 方法创建的对象就是可迭代对象......

2022-06-27 22:13:52 365

原创 Counter()函数,items()

Counter()用来统计列表,元组,字符串等可迭代数组的出现次数,并返回key为迭代元素,value为出现次数的字典;在nlp领域可以用来统计词频。除此之外,Counter()的most_common()方法返回频率最高的k个元素。字典的方法 items()items()以列表返回可遍历的元组。.........

2022-06-27 21:23:23 973

原创 pack_padded_sequence和pad_packed_sequence&&rnn的输出

在使用rnn训练数据时,常会面临数据长度不一致的情况,这时我们需要将各个序列pad到固定长度,方便batch并行训练;但是填充后虽然长度相同,但是会有很多无效的填充值,会浪费计算资源为了使 RNN 可以高效的读取数据进行训练,就需要在 pad 之后再使用 pack_padded_sequence 对数据进行处理;input:pad后的序列(由大到小排好序)需要注意的是,默认条件下,我们必须把输入数据按照序列长度从大到小排列后才能送入 pack_padded_sequence ,否则会报错。这个函数实际上是

2022-06-22 09:41:01 322

原创 学习率预热warmup

学习率:权重更新的控制因子训练神经网络的常规策略是初始时使用较大的学习率(好处是能使网络收敛迅速),随着训练的进行,学习率衰减;在训练初期,loss很大,因此计算的梯度也很大,如果设置较大的学习率,模型很容易跳过最优点,后期很难再拉回来;阶段一: 而warmup是在初始时(前几个epoch)使用较小的学习率,然后随着训练的进行,学习率慢慢增加到设定的学习率(linear线性增加,constant方式等);阶段二: 最后学习率从设定数值再衰减;warmup_factor:warmup期间,学习率初始化为

2022-06-21 11:51:08 871

原创 训练集,验证集,测试集,泛化误差总结

模型参数包含两类:训练集参数,超参数;我们的工作是让这两类参数都达到最优如果不需要调整模型的超参数,那可以不用验证集;验证集的作用是模拟测试集,我们是在验证集上调参的,如果超参适合验证集,那大概率也适合测试集;如果在训练集上调参,调出的参数是适合训练集的,训练集上的好性能泛化不到测试集(overfitting);验证集和测试集对于模型来说都是未知的;任何来自测试集的反馈都属于作弊;举个形象的例子:训练集可以比作例题,测试集可以比作模拟题,可以刷很多遍,测试集可以比作期末考试,只能做一遍;训练集:参与

2022-06-19 18:15:07 1536

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除