自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图神经网络开发工具DGL源代码分析(1):update_all

目录背景函数API调用路径总结DGL官方网址:https://www.dgl.ai/背景DGL是目前非常流行的图神经网络开发工具,基于pytorch实现。虽然DGL也包含tensorflow的API,但是教程是基于pytorch的,所以想使用DGL的同学建议提前掌握pytorch,这样学习DGL会更加高效和容易。本篇是“图神经网络开发工具DGL源代码分析”的第一篇,这个系列主要是总结博主学习DGL过程中的心得体会,也可以看作是学习笔记吧。整理出来既是方便自己日后查阅,也是希望能和大家分享,帮助更多入

2021-05-04 20:34:23 1281 1

原创 Pandas使用技巧之groupby+apply/agg

目录背景数据groupby+applygroupby+agg总结背景分组计算指标是使用pandas进行数据分析的常用操作,今天分享一下groupby+apply/agg这套组合拳的用法。数据数据是学生id和周末参加的辅导班名称:df=pd.DataFrame({‘id’:[1,1,2,2,1,1,1],‘class’:[‘a’,‘a’,‘c’,‘c’,‘b’,‘b’,‘b’]})groupby+apply现在想统计每个id参加的class个数(剔除重复),那么我们就可以使用groupby+a

2021-04-11 11:24:29 3090

原创 Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)

转一篇介绍python的seaborn的文章,里面展现了很多的例子,总有一款适合你!https://www.cnblogs.com/caiyishuai/p/11184166.html

2021-03-22 14:51:48 509

原创 静态图谱

目录 计算图谱静态图与动态图tf.Session()tf.Session().run()静态图保存静态图重载计算图谱自动微分是深度学习建模工具必备的一个技能点。我们将损失函数看作是若干基本函数的 复合函数,这里基本函数包括加减乘除、sin、cos、指数函数、幂函数、对数函数等。我们使用链式法则进行复合函数的导数,比如df(g)=df|g * dg。如果将基本函数看作节点,我们可以将复合函数使用图进行表示,求导的链式法则可以方便的在这个图上进行。这就是计算图谱提出的背景。静态图与动态图tensorfl

2020-11-01 13:27:00 236

转载 pytorch的detach()、detach_()和.data的用法

转发一篇描述detach()、detach_()和.data在阻断反向传播中的不同,写得很好,通过实验对比得出清晰结论。原文链接这里只贴出得出的结论:detach()返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个Variable永远不需要计算其梯度,不具有grad。即使之后重新将它的requires_grad置为true,它也不会具有梯度grad这样我们就会继续使用这个新的Variable进行计算,后面

2020-10-17 10:48:49 1230

原创 集群环境下的机器学习建模pipeline

一般大公司的数据中心都是集群环境,数据放在hdfs上,通过数仓进行管理,访问数仓的工具一般是hive。所以在这种环境下搭建机器学习流水线,可以分为以下几步:1、从hive中获得模型输入2、模型预测3、将预测结果写入本地文件系统4、从本地文件系统将数据写入hive表供下游调用import osimport pandas as pdimport subprocessos.chdir('your_path')#read data from hivecmd=shell_commandds=o

2020-10-14 08:50:11 222

原创 谱图理论(spectrum theory)实操

本文以实际例子讨论了谱图理论的若干有趣的结论,包括图的Laplace矩阵对应的零特征值个数就是连通分支个数、特征向量的取值和图的分割对应关系、第二小特征值的分割效果等。给定一个图,计算连通分支的个数是一个很经典的问题,可以使用UnionFind求解,是一个纯计算机的解法。而计算Laplace矩阵的零特征值个数求解这个问题,就属于纯数学的方法了。同一个问题既可以使用计算机方法解决,也可以使用纯数学方法解决,真的是非常奇妙啊。

2020-10-08 12:29:40 2559 1

原创 生成对角矩阵 numpy.diag

给定对角线上元素,我想生成对角矩阵,在网上搜了一下,竟然都是numpy.diagonal。这个函数的作用是提取给定矩阵的对角元素,当然不是我想要的。后来发现numpy.diag才是生成对角矩阵的函数,所以写此文章记录之。import numpy as npa=[1,2,3]np.diag(a)Out[4]: array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])...

2020-10-08 08:31:38 34472 2

原创 营销场景下的ABtest与它的统计原理

ABtest大家都不陌生,test通常包含对照组和实验组,二者通常只有一个要素不同,通过实际效果对比判断这个要素对于提升效果是否有帮助。这里有个核心问题是假设检验的使用。为什么要用到假设检验,举个例子,营销场景,对照组和实验组各营销10000人,对照组的转化率为1%,实验组1.2%,那么我们能得到实验组好于对照组么?这个0.2%的提升可能是由于我们的改进带来的,也可能是随机产生的,即改进没有任何效果,对于这两种情况需要使用假设检验进行判断。假设检验通常包括零假设和对立假设,我们有个观测量,在零假设成立的情

2020-09-18 16:03:06 1670

原创 概率空间probability space 伯努利实验 n次伯努利实验

目录概率空间伯努利实验概率空间什么是概率空间?先贴一段wiki上的解释:In probability theory, a probability space or a probability triple {\displaystyle (\Omega ,{\mathcal {F}},P)} is a mathematical construct that provides a formal model of a random process or “experiment”. For example,

2020-09-17 12:10:15 2231

原创 LightGBM分箱算法

目录等距分箱与等频分箱LightGBM分箱算法等距分箱与等频分箱LightGBM分箱算法在深度学习中,通常需要对连续特征进行离散化处理,这样可以使用嵌入向量表示特征。离散化处理的方法,常见的有等距分箱和等频分箱。等距分箱的缺点是,数据容易集中在某个区间内,导致编号基本相同,丢失大量信息。并且等距分箱通常需要一定的专家知识。等频分箱的优点是,当数据集中在某个区间内时也不会编号完全相同,克服了等距分箱的这个缺点。而等频分箱的缺点是,当大量数据取值相同时,比如都为0,那么等频分箱就会将这些取值相同的数据

2020-09-08 13:50:43 2331 2

原创 目前见过的对transfer learning最好的解释

今天博主在查GLUE的资料时,发现一个对transfer learning非常好的阐述,所以在这里和大家分享,原文链接:https://mccormickml.com/2019/11/05/GLUE/Unlike single task models that are designed for and trained end-to-end on a specific task, transfer learning models extensively train their large network o

2020-09-04 15:40:34 381

原创 机器学习评估指标AUC与Precision、Recall、F1之间的关系

目录数学推导实验说明实验一实验二实验代码AUC、 Precision、Recall、F1等都是机器学习中常用的模型评估指标,本文通过数学推导和实验结果探讨AUC与Precision、Recall、F1等的关系。数学推导假设r为recall,p为precision,预测阈值为0.5,TP、TN、FP、FN如下图所示:假设一共有N个样本,正负样本各一半,当正负样本比例不是1:1时,下面的推导过程也适用。首先,使用r和p表示TP、TN、FP、FN,公式如下:TP=N2⋅rTP = \frac{N}{

2020-08-18 01:15:12 6907

原创 深度学习中序列模型(RNN、GRU、LSTM、Transformer)的本质理解

本文详细描述了RNN、GRU、LSTM模型架构的设计理念,希望能帮助大家更深入的理解这几大模型。模型的intuition搞清楚了,复杂的数学公式也就不再显得复杂了,更像是水到渠成的结果。

2020-07-31 12:50:22 5509

原创 L1与L2正则的联系与区别

目录前言L1正则和L2正则的区别L1正则为什么更容易得到稀疏解正则的作用前言本文主要梳理一下L1正则和L2正则的关系,主要包括回答以下几个问题:1、L1正则和L2正则的区别2、L1正则为什么更容易得到稀疏解3、正则的作用L1正则和L2正则的区别对于这个问题,可以看下知乎的这个解答https://zhuanlan.zhihu.com/p/35356992L1更容易得到稀疏解,就是参数会出现很多零;L2会使得参数取值更加平滑,即参数取值会比较小;从实际应用效果来看,L2效果比较好。L1正则为什

2020-07-26 22:34:23 804

原创 时间序列建模大杀器Transformer原理总结

目录前言模型结构前言博主最近拜读了Transformer的那篇paper,Pre-training of Deep Bidirectional Transformers for Language Understanding,将自己的学习体会在这里分享。模型结构这是transformer encoder-decoder结构图,适用于sequence2sequence模型,也就是语音识别、机器翻译等场景。如果是语言模型,我们需要的是transformer decoder,如下:Multi-head

2020-07-19 22:34:53 4967 3

原创 tensorflow小技巧--时间序列模型中的复杂损失函数计算方法

BERT的MLM是我见过的比较复杂的优化任务了,我以此为例分享一下对于这种比较复杂的损失函数如何计算。先说下这个MLM是什么,如下图所示(摘自BERT的原始论文):所以这个任务就是将sentence中一些token进行掩盖,模型会输出这些掩盖的token的隐藏状态,将这些隐藏状态输入softmax可以得到候选单词的概率分布,这样根据ground truth就可以计算cross entropy了。原理比较简单,要想使用tf高效实现,博主着实费了一些脑细胞。我的计算方法如下:import tensorfl

2020-07-19 22:31:10 1972

原创 WordPiece与BPE的区别

博主在网上搜BERT的wordPiece时,发现很多文章都说BERT的wordPiece就是BPE(Byte-Pair Encoding), 这个说法其实是不对的,wordPiece和BPE有相似性,但是并不是一回事。WordPiece是这个:WordPiece需要在训练集上训练一个语言模型,每次挑选能最大化减少logloss的word unit。BPE:BPE是统计词对的频数,每次挑选频数最大的那个作为word unit。所以,wordPiece和BPE可不是一回事儿哦。最后总结一下,BER

2020-07-18 22:29:44 2941 1

原创 神奇的柯西分布

今天来讲下柯西分布,它的概率密度函数如下(摘自百度百科):当x0x_0x0​=0,γ\gammaγ=1,就得到了标准柯西分布:柯西分布的均值、方差都不存在,真的是很神奇。我们使用numpy对它进行抽样,具体感受下。作为对比,我使用了标准正态分布。在这里插入代码片...

2020-07-14 12:21:02 17391 1

原创 数据预处理之标准化和归一化的区别

标准化是这个:

2020-07-13 09:24:21 509

原创 数据集之AmazonReviewDataset

介绍一下Amazon Review Dataset,这个数据集可以用来预测用户行为,即根据用户历史评论行为预测接下来的评论行为,很赞。

2020-07-11 22:52:50 5951 2

原创 深度学习之DeepFM实操演练

本文描述了deepFM的基本原理和实现方法,并使用titanic数据集做了实操演练,训练并评估模型。

2020-07-07 12:52:19 1417

原创 tensorflow小技巧--binary_crossentropy与BinaryCrossentropy的区别

tf.keras.losses下面有两个长得非常相似的损失函数,binary_crossentropy(官网传送门)与BinaryCrossentropy(官网传送门)。从官网介绍来看,博主也没看出这两个损失函数有什么区别,直到今天才明白过来,不多说,直接上代码:#set loss funcloss=tf.losses.BinaryCrossentropy()这样声明一个损失函数是没有问题的。loss=tf.losses.binary_crossentropy()TypeError: binar

2020-07-02 12:01:40 7747

原创 tensorflow常用模型开发小函数总结(持续补充中)

函数目录tf.gathertf.concattf.expand_dimstf.sequence_masktf.tile使用版本:tensorflow2.2tf.gathertf.gather(params, indices, validate_indices=None, axis=None, batch_dims=0, name=None)官方API用法:在查询高维稀疏特征的对应嵌入向量值时,非常好用。高维稀疏特征就是类似于商品id这种有非常多离散取值的特征字段,通常建模时会先对它进行编码,

2020-07-01 23:14:47 211

原创 tensorflow小技巧--tensor切片赋值

给tensor进行切片赋值是使用tensorflow开发模型的常用操作,具体方法如下:#定义一个5*2*3的变量a=tf.Variable(tf.zeros((5,2,3)),name='myTensor')#对中间维度为1的切片进行赋值a[:,1,:].assign(tf.constant([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]],dtype=tf.float32))#赋值后的a<tf.Variable 'myTensor:0' s

2020-07-01 21:42:57 4457 2

原创 tensorflow2建模--数据框dataframe转tensor进行建模

这里写自定义目录标题摘要实验说明方法介绍如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入摘要使用tensorflow2建立深度学习模型的第一步,往往是将我们加工处理好的pandas的dataframe转化为tensor。按照官方指南的介绍,最佳转化方法是将 pd.Dat

2020-06-30 12:04:45 3091

原创 Python3 重新加载自定义模块

我修改了自定义模块文件myModule,然后想在main中重新加载这个模块。参考了一下网上的方法1,主要就是:from importlib import reloadreload(myModule)运行报错:NameError: name ‘myModule’ is not defined正确写法是:import myModulefrom importlib import reloadreload(myModule)一定要先加载你的module再reload呀。 [1]: https:

2020-06-29 11:55:47 764

空空如也

空空如也

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

TA关注的人

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