自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

songbinxu的博客

学无止境,跬步千里

  • 博客(84)
  • 收藏
  • 关注

原创 套娃的艺术:Meta Learning

套娃的艺术:Meta Learning写在前面早在读研期间就对Meta Learning有所耳闻,听说有个学习框架可以“学习如何调参”,当时还戏言,以后是不是还会有“学习如何学习如何调参”的框架,并可以继续无穷套娃下去。最近因为一些原因,或多或少接触到了Meta Learning,我并不想深入研究其数学原理,只觉它思路清奇,所以去学习了李宏毅老师的《Meta Learning》课程,并阅读了Meta Learning的代表方法之一MAML的paper,觉得挺有趣的。本文仅为笔者入门Meta Learni

2021-05-16 18:34:57 839 1

原创 Kaggle下载criteo数据集

Kaggle下载Criteo数据集1. 帐号准备登陆Kaggle并注册帐号。Account->API->Create New Token 生成配置文件 kaggle.json。2. Kaggle API安装https://github.com/Kaggle/kaggle-api$ pip install --upgrade kaggle把第一步的 kaggle.json放到/root/.kaggle/下。3. 下载数据https://www.kaggle.com/c/crit

2021-05-10 10:25:42 4134 4

原创 Learning To Rank 学习笔记

LossMean Reciprocal Rank (MRR)https://en.wikipedia.org/wiki/Mean_reciprocal_rankMRR=1∣Q∣∑i=1∣Q∣1rankiMRR = \frac{1}{|Q|}\sum_{i=1}^{|Q|}{\frac{1}{rank_i}}MRR=∣Q∣1​i=1∑∣Q∣​ranki​1​RRRRRR是衡量单次Query的指标,正确结果越靠前,RRRRRR越大。MRRMRRMRR是衡量多次Query的指标。Query返

2020-09-20 19:08:22 523

原创 Linux服务器code-server远程开发

Linux服务器code-server远程开发1. 安装https://github.com/cdr/code-server下载过程很慢,.如果报错503就多试几次。$ curl -fsSL https://code-server.dev/install.sh | sh2. 环境配置config.yaml一开始没有,可以先运行一次code-server自动生成,然后再修改。ip填远程机器的ip,port随意,8081或8080或80,不要跟其他服务冲突了。# 环境配置$ ex

2020-08-06 14:40:56 1879

原创 Conda配置Tensorflow运行环境

环境CentOS7安装CondaConda_Linux下载Anaconda3-xxx-Linux-x86_64.sh安装$ sudo bash Anaconda3-xxx-Linux-x86_64.sh使环境生效$ source ~/.bashrcConda创建独立环境创建新环境 conda create -n xxx python=3.7.6查看已有环境 conda info -e conda info --envs复制已有环境 conda create -n xxx

2020-07-14 10:21:04 909

原创 Linux安装Python3.8

Linux下安装Python3.8一、文件下载https://www.python.org/downloads/release/python-380/下载Python-3.8.0.tgz文件$ tar -zxvf Python-3.8.0.tgz 二、安装必要环境首先安装一些必要的库。$ yum install $ yum install libffi-devel -y如果服...

2019-10-22 15:14:52 11677 2

原创 Windows下运行gensim提示没有C编译器解决方案

Windows下安装gensim在windows下装gensim跑word2vec的时候遇到了一些坑。坑之一:没有C扩展最开始用pip安装gensim后,运行下面代码会报一个warning。from gensim.test.utils import common_textsfrom gensim.models import Word2Vecmodel = Word2Vec(common...

2019-07-30 15:18:26 1449

原创 Ubuntu解决matplotlib.pyplot的title和label中文乱码问题

Ubuntu解决matplotlib.pyplot的title和label中文乱码问题中文乱码问题示例使用matplotlib.pyplot画图时,需要在图标题、轴标题处使用中文,用以下代码画出来的图会出现乱码,如下图所示。t = np.linspace(0, 2*np.pi, 100)y = np.sin(t)plt.plot(t, y)plt.title(u"正弦信号")plt...

2019-04-18 10:50:28 3194

原创 基于DTW相似度的Affinity Propagation(AP)聚类

基于DTW相似度的Affinity Propagation(AP)聚类数据时序序列数据集 CharacterTrajectories,包含20种小写英文字母手写体的坐标序列。训练集测试集类别数序列长度维度数据类型14221436201823Motion GestureDTW距离  设有两个长度不相同的序列x=[x1,x2,⋯&ThinSp...

2019-01-26 19:47:11 8415 6

原创 用Tensorflow计算距离矩阵

用Tensorflow计算距离矩阵  一般计算距离矩阵,都是用两层循环来做,这样效率太低。在样本维度上,距离矩阵的运算相互没有依赖关系,是可以做并行的。除了开多线程用CPU并行计算以外,还可以用GPU加速,比如拿tensorflow实现。数据结构  现在有 NNN(可以理解为 batch_sizebatch\_sizebatch_size)个时序序列样本,每个样本的大小为 (T,C)(T,C...

2019-01-23 19:05:39 4228 1

原创 InfoGAN 生成时序序列

InfoGAN 生成时序序列简介完整代码:https://github.com/SongDark/timeseries_infogan  本文介绍用InfoGAN生成多维时序序列。数据数据集下载地址NameClassDimensionTrain SizeTest SizeTruncatedCharacterTrajectories203142214...

2019-01-14 10:29:08 8611 10

原创 CycleGAN更换MNIST底色

CycleGAN实现MNIST转换数据准备从 这里 下载 mnist.npz。将背景改成彩色,数字保持白色,背景rgb随机生成。# [28, 28] -> [28, 28, 3]def change_background(img): rgb = np.random.randint(low=0, high=255, size=(3,)) res = np.tile(...

2019-01-10 11:02:16 2003 1

原创 Tensorflow Pad

Tensorflow Pad函数定义tf.pad( tensor, paddings, mode='CONSTANT', name=None, constant_values=0)参数说明tensor :输入paddings :一个2*2的Tensor,分别是上、下、左、右的padding宽度mode :“CONSTANT”表示补常数(默认...

2019-01-09 14:19:00 836 2

原创 Tensorflow基于CNN的AutoEncoder

Tensorflow基于CNN的AutoEncoder完整代码:https://github.com/SongDark/cnn_autoencoder_mnist一、概述AutoEncoder属于无监督学习,由一个编码器Encoder和一个解码器Decoder组成,是一个Encoder-Decoder结构,它学习的目标是还原输入,不需要提供标签。二、数据源使用Mnist作为训练数据,M...

2019-01-07 16:39:04 6479

原创 用各种GAN生成MNIST数字

用各种GAN生成MNIST数字数据获取MNIST数据集的获取可以参考这篇博客:https://blog.csdn.net/songbinxu/article/details/82992264需要注意的是MNIST数据的值域范围,有的源是原本的[0,255][0,255][0,255],有的归一化到了[0,1][0,1][0,1]。生成器和判别器实现了CNN和MLP两种版本。CNN结构...

2019-01-06 15:27:21 6226

原创 用各种GAN生成正态分布

用GAN生成正态分布    毕设中有一部分与GAN(Generative Adversarial Networks)相关,但是一直不work,因此准备重新从最简单的GAN入手,实现一下试试看能不能发现什么问题。    本文会用GAN从标准正态噪声生成均值为3,标准差为0.5的正态分布 N(3,0.52)N(3, 0.5^2)N(3,0.52)。整体结构    一个GAN由生成器Gener...

2019-01-06 13:32:25 3257 1

原创 Tensorflow卷积中Padding的两种方式

Tensorflow卷积中Padding的两种方式两种PaddingVALID:若不够滑动,则将右下的剩余部分全部舍弃,从原矩阵左上角开始卷积。H′=⌈H−k+1d⌉H'=\left \lceil \frac{H-k+1}{d} \right \rceilH′=⌈dH−k+1​⌉SAME:如果H/dH/dH/d除不尽,会均匀地在左上、右下补0,令总长LLL满足L−...

2018-12-28 17:36:49 9415 5

原创 Tensorflow不定长卷积与解卷积

Tensorflow不定长卷积与解卷积  在用CNN处理某些图像或时序输入时,需要考虑输入长度不固定的情况。例如在做场景文字识别时,输入的图像是已经被检测出来的长方形的包含文字的图像,这些 “检测框” 的长度不一。一般有两种做法,第一种从数据下手,将输入 padding 或 resize,所谓 padding 即给定一个固定长度,将短于该长度的样本补零,将长于该长度的样本截断或丢弃,所谓 res...

2018-12-13 20:43:24 2057

原创 Python数据存储与压缩

Python数据存储与压缩  跑实验要用到数据集,对于一些不大的数据集,为了节省时间,有时候会先预处理,然后将各个文件存储成一个大文件,一次性读入内存,省去了每个迭代重新读入和重新预处理的时间。这里讨论一些数据存储与压缩方式,至于Tensorflow里用到的Dataset之类的数据存取不在本文范围内。  本文主要针对以下几点进行对比分析:多Tensor存储的支持性、占用空间大小、读取方便性。...

2018-12-10 16:33:14 8880

原创 Python参数列表

Python不定长参数列表用星号*实现不定长参数列表,单个*表示将参数以tuple的形式传入,两个*表示将参数以dict的形式传入,前者传参不能指定参数,后者传参必须指定参数,且参数会被处理成str类型。def f(*args, **kwargs): print "args:" for x in args: print x, type(x) print ...

2018-12-09 16:48:27 3257 1

原创 Tensorflow中的交叉熵(Cross Entropy)

Tensorflow中的交叉熵(Cross Entropy)Cross Entropy (Sigmoid)适用于二分类,输入函数的logits和labels应当是一维的。如果输入One-Hot过的logits,会被当做多个一维分别计算。注意不要将已经通过sigmoid计算得到的数值输入函数,那样会得到错误的结果。sigmoid(x)=x^=11+e−xsigmoid(x)=\hat x=\f...

2018-12-04 17:26:22 756 1

原创 GAN中的Spectral Normalization

GAN中的Spectral Normalization  Spectral Normalization 出自 《Spectral Norm Regularization for Improving the Generalizability of Deep Learning》和《Spectral Normalization for Generative Adversarial Networks》,...

2018-11-28 20:30:05 8858 8

原创 利用tf.nn.raw_rnn自定义RNN Decoder

利用tf.nn.raw_rnn自定义RNN Decoder在用 Tensorflow 实现 RNN AutoEncoder 时,要求 Decoder 部分每个 timestep 都使用它上一个 timestep 的输出 yt−1y_{t-1}yt−1​ 作为输入,而利用普通的 tf.nn.dynamic_rnn 无法做到这一点,因为它必须接收序列为输入,对于序列的每一个 timestep 都计算...

2018-11-16 15:14:13 2196 1

原创 获取MNIST数据的几种方法

获取MNIST数据的几种方法MNIST是一个非常常见的数据集,数据量小,方便读入内存,而且直观可见,在实现各种机器学习算法的时候,经常可以用来当小白鼠实验。这里介绍几种获取MNIST的方法,包括直接从某个链接下载数据集的方案,也有利用python库间接下载的方案。方法1. 官网下载MNIST数据集的版权在Yann LeCun教授手上,在他的主页下载即可。http://yann.lecun...

2018-10-10 10:06:49 9835 1

原创 交叉熵、KL散度、JS散度

信息量符号xxx的信息量定义为xxx出现概率的倒数,单位比特I(x)=log⁡1P(x)I(x)=\log \frac{1}{P(x)}I(x)=logP(x)1​熵平均信息量H(P)=∑P(x)log⁡1P(x)H(P)=\sum P(x)\log \frac{1}{P(x)}H(P)=∑P(x)logP(x)1​交叉熵H(P,Q)=∑P(x)log⁡1Q(x)H(P,Q)=\su...

2018-10-08 15:12:55 952

原创 简易Makefile编写笔记

简易Makefile编写笔记g++的基本使用   习惯IDE的一键编译运行有时候并不是一件好事,特别是对于我这种连编译、链接、构建、调试分别是什么都搞不清楚的人。查阅了一些资料后,我得知gcc/g++是一种常用的程序构建工具,它可以把源代码、头文件链接起来,构建出可执行的二进制文件。 root ├── bin ├── include │ └── add.h └── s...

2018-09-18 14:18:03 2085

原创 matplotlib报错no display name and no $DISPLAY environment variable解决方案

matplotlib报错no display name and no $DISPLAY environment variable解决方案# import this before everythingimport matplotlibmatplotlib.use('Agg')from matplotlib import pyplot as pltplt.figure() # no...

2018-09-13 15:47:43 3083

原创 海量数据相似性度量与聚类: LHS-MinHash

海量数据相似性度量与聚类: LHS-MinHash  写本文的原因是近期在涉猎用户画像相关的无监督学习理论,刚好看到一篇运用LHS-MinHash做用户聚类的文章,却讲得过于笼统,对我这样的萌新(菜鸡)不太友好。于是我去搜索了关于LHS-MinHash和simhash的相关博客,有的写得非常不负责,甚至误导了我,有的写的比较详细,但部分细节总感觉有点断片,好像漏掉了什么。同时,这些博客的内容比...

2018-07-02 01:40:00 7074 1

原创 PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系

PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系 最近在研究谱聚类时,迁移到主成分分析(PCA),发现两者有着惊人的相似之处,同时还牵扯到Kmeans、SVD,甚至LDA也有相通的地方(虽然LDA是有监督学习),因此在这里写一篇总结,描述一下以上各个模型之间的共通性,有助于加深对这一类无监督学习算法的理解。PCA与SVD/EVD的关系  首先,从SVD入手: X(d...

2018-06-30 20:50:06 3790

原创 特征值分解与奇异值分解及其应用

SVD奇异值分解正交矩阵正交矩阵  正交矩阵对应着正交变换,特点在于不改变向量的尺寸(模)和任意两个向量的夹角。在x-y坐标系中,通俗地讲,就是旋转两个坐标轴,得到新的互相垂直的坐标轴,求向量在新坐标系中的投影。正交变换举例   图片摘自此处。 例如向量OAOAOA,在原始e1−e2e1−e2e_1-e_2坐标系中表示为(a,b)T(a,b)T(a,b)^T,...

2018-06-28 12:51:50 2937

原创 谱聚类(Spectral Clustering)原理及Python实现

谱聚类图模型  无向带权图模型 G=<V,E>G=<V,E>G=,每一条边上的权重wijwijw_{ij}为两个顶点的相似度,从而可以定义相似度矩阵WWW,此外还可以定义度矩阵DDD和邻接矩阵AAA,从而有拉普拉斯矩阵 L=D−AL=D−AL=D-A。所以本文用到的矩阵总共两个:LLL和WWW。图的分割  一个

2018-06-28 10:44:56 47138 36

原创 瑞利熵与拉普拉斯矩阵

瑞利熵瑞利熵R(M,x)=x∗Mxx∗xR(M,x)=x∗Mxx∗xR(M,x)=\frac{x^*Mx}{x^*x}  此处的xxx是一个向量,矩阵MMM是一个Hermitian矩阵,即该矩阵共轭对称,Mij=M∗jiMij=Mji∗M_{ij}=M_{ji}^*,如果MMM是一个实矩阵,则有MT=MMT=MM^T=M。  瑞利熵的特点是:最大值和最小值分别等于矩阵MMM最大和最...

2018-06-27 23:26:24 4536 1

原创 深度学习中的注意力机制

深度学习中的注意力机制深度学习中的注意力机制前言Sequence to SequenceSequence to Sequence 的各种形式Attention MechanismAttention 于机器翻译Self-Attention文字识别中的 Attention推荐系统中的 AttentionAttention is all you needAttenti...

2018-06-21 17:07:17 35134 15

原创 计算广告中常用模型的相关资料整理

计算广告中的常用模型前言  我会在这里动态更新我近期学习和工作中阅读过的计算广告相关论文和代码,作为自己学习的整理和总结。由于目前有逐个实现的计划,所以在这里构建一个传送门,方便之后实现的时候进行查阅。本文所有资料和链接均来自于互联网,直接搜索都能找得到,如有侵权,还望指出。传送门MF(Matrix Factorization) 【github】nimfa, MF ...

2018-06-12 11:19:25 1932

原创 Python在循环中显示进度条

Python在循环中显示进度条  本文代码转自 https://blog.csdn.net/u013832707/article/details/73608504,稍微做了一点魔改。   在训练模型时,往往有若干个迭代,想要实时显示训练进度,又不想每个迭代都输出而导致被刷屏,一种方法是显示进度条。   实际上就是输出控制,输入是当前迭代与总迭代次数,输出是进度条。每次输出完之后将之前的输出...

2018-06-11 12:36:10 8397 1

原创 利用sklearn划分训练集和测试集

利用sklearn划分训练集和测试集  交叉验证(Cross Validation)是常用的机器学习训练手段,可以有效检验一个模型的泛化能力。交叉验证需要将原始数据集平等地划分为若干份,例如 5-folds CV 指的是将数据集分为5份,然后进行5次训练,每次取出一份数据作为测试集,剩下的作为训练集,得到5个模型,最终将5个模型的预测值做一个平均。   CV的第一步就是划分数据集,sklea...

2018-06-06 15:03:39 6783

原创 Ubuntu 常用解压与压缩命令

Ubuntu 常用解压与压缩命令.tar 文件# 仅打包,并非压缩tar -xvf FileName.tar # 解包tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包.gz文件# .gzgunzip FileName.gz # 解压1gzip -d FileName.gz # 解压2gzip Fil...

2018-05-24 15:51:57 342672 8

原创 Mac下Terminal指定用Sublime打开文件

Mac下Terminal指定用Sublime打开文件方法一:open -a$ open -a /Applications/Sublime\ Text.app test.txt缺点:麻烦方法二:软链接先建立软连接$ ln /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin...

2018-05-24 11:28:38 5896

原创 Python中字典根据多项规则排序

Python中字典根据多项规则排序  在SQL中或者用pandas可以轻松地对一列数据按照多个规则进行排序,那么有没有办法直接用python的sorted实现呢?答案是肯定的。 key value b 10 c 10 a 10 d 20>>> mydict = {'b':10, 'c':10, 'a'...

2018-05-23 11:44:49 7747 5

原创 FP-growth 算法与Python实现

FP-growth 算法介绍  打开你的搜索引擎,输入一个单词或一部分,例如“我”,搜索引擎可能会去统计和“我”一块出现得多的词,然后返回给你。其实就是去找频繁项集,而且需要相当地高效,像Apriori那样的速度肯定是不行的了。   本文要介绍的是FP-growth算法,它被用于挖掘频繁项集,它把数据集存储为一个叫FP树的数据结构里,这样可以更高效地发现频繁项集或频繁项对。相比于...

2018-05-23 11:21:13 56344 6

空空如也

空空如也

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

TA关注的人

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