
机器学习
文章平均质量分 88
蕉叉熵
熵叉蕉
展开
-
套娃的艺术:Meta Learning
套娃的艺术:Meta Learning写在前面早在读研期间就对Meta Learning有所耳闻,听说有个学习框架可以“学习如何调参”,当时还戏言,以后是不是还会有“学习如何学习如何调参”的框架,并可以继续无穷套娃下去。最近因为一些原因,或多或少接触到了Meta Learning,我并不想深入研究其数学原理,只觉它思路清奇,所以去学习了李宏毅老师的《Meta Learning》课程,并阅读了Meta Learning的代表方法之一MAML的paper,觉得挺有趣的。本文仅为笔者入门Meta Learni原创 2021-05-16 18:34:57 · 1068 阅读 · 1 评论 -
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∣1i=1∑∣Q∣ranki1RRRRRR是衡量单次Query的指标,正确结果越靠前,RRRRRR越大。MRRMRRMRR是衡量多次Query的指标。Query返原创 2020-09-20 19:08:22 · 646 阅读 · 0 评论 -
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 · 987 阅读 · 0 评论 -
Tensorflow不定长卷积与解卷积
Tensorflow不定长卷积与解卷积 在用CNN处理某些图像或时序输入时,需要考虑输入长度不固定的情况。例如在做场景文字识别时,输入的图像是已经被检测出来的长方形的包含文字的图像,这些 “检测框” 的长度不一。一般有两种做法,第一种从数据下手,将输入 padding 或 resize,所谓 padding 即给定一个固定长度,将短于该长度的样本补零,将长于该长度的样本截断或丢弃,所谓 res...原创 2018-12-13 20:43:24 · 2178 阅读 · 0 评论 -
特征值分解与奇异值分解及其应用
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 · 3111 阅读 · 0 评论 -
谱聚类(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 · 48667 阅读 · 37 评论 -
瑞利熵与拉普拉斯矩阵
瑞利熵瑞利熵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 · 4742 阅读 · 1 评论 -
深度学习中的注意力机制
深度学习中的注意力机制深度学习中的注意力机制前言Sequence to SequenceSequence to Sequence 的各种形式Attention MechanismAttention 于机器翻译Self-Attention文字识别中的 Attention推荐系统中的 AttentionAttention is all you needAttenti...原创 2018-06-21 17:07:17 · 35458 阅读 · 15 评论 -
海量数据相似性度量与聚类: LHS-MinHash
海量数据相似性度量与聚类: LHS-MinHash 写本文的原因是近期在涉猎用户画像相关的无监督学习理论,刚好看到一篇运用LHS-MinHash做用户聚类的文章,却讲得过于笼统,对我这样的萌新(菜鸡)不太友好。于是我去搜索了关于LHS-MinHash和simhash的相关博客,有的写得非常不负责,甚至误导了我,有的写的比较详细,但部分细节总感觉有点断片,好像漏掉了什么。同时,这些博客的内容比...原创 2018-07-02 01:40:00 · 7621 阅读 · 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 · 4093 阅读 · 0 评论 -
利用sklearn划分训练集和测试集
利用sklearn划分训练集和测试集 交叉验证(Cross Validation)是常用的机器学习训练手段,可以有效检验一个模型的泛化能力。交叉验证需要将原始数据集平等地划分为若干份,例如 5-folds CV 指的是将数据集分为5份,然后进行5次训练,每次取出一份数据作为测试集,剩下的作为训练集,得到5个模型,最终将5个模型的预测值做一个平均。 CV的第一步就是划分数据集,sklea...原创 2018-06-06 15:03:39 · 6948 阅读 · 0 评论 -
FP-growth 算法与Python实现
FP-growth 算法介绍 打开你的搜索引擎,输入一个单词或一部分,例如“我”,搜索引擎可能会去统计和“我”一块出现得多的词,然后返回给你。其实就是去找频繁项集,而且需要相当地高效,像Apriori那样的速度肯定是不行的了。 本文要介绍的是FP-growth算法,它被用于挖掘频繁项集,它把数据集存储为一个叫FP树的数据结构里,这样可以更高效地发现频繁项集或频繁项对。相比于...原创 2018-05-23 11:21:13 · 57752 阅读 · 6 评论 -
《Attention Is All You Need 》阅读笔记
Attention Is All You Need 阅读笔记Introduction 这是谷歌发表的文章,针对nlp里的机器翻译问题,提出了一种被称为”Transformer”的网络结构,基于注意力机制。文章提出,以往nlp里大量使用RNN结构和encoder-decoder结构,RNN及其衍生网络的缺点就是慢,问题在于前后隐藏状态的依赖性,无法实现并行,而文章提出的”Transfo...原创 2018-05-16 17:40:44 · 32904 阅读 · 5 评论 -
Apriori算法与python实现
Apriori算法 Apriori算法用于关联分析,其目标包括两个:发现频繁项集,发现关联规则。首先需要发现频繁项集,然后才能发现关联规则。发现频繁项集 频繁项集指那些经常出现在一起的集合。若某个项集是频繁项集,则它的所有子集也是频繁的。反之,若一个项集是非频繁项集,则它的所有超集也是非频繁的。Apriori利用这个原理,避免计算非频繁项集及其所有超集的支持度。 给定数据集,...原创 2018-05-22 08:57:22 · 10398 阅读 · 2 评论 -
利用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 · 2265 阅读 · 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 · 824 阅读 · 1 评论 -
基于DTW相似度的Affinity Propagation(AP)聚类
基于DTW相似度的Affinity Propagation(AP)聚类数据时序序列数据集 CharacterTrajectories,包含20种小写英文字母手写体的坐标序列。训练集测试集类别数序列长度维度数据类型14221436201823Motion GestureDTW距离 设有两个长度不相同的序列x=[x1,x2,⋯&ThinSp...原创 2019-01-26 19:47:11 · 8670 阅读 · 6 评论 -
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 · 2165 阅读 · 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 · 903 阅读 · 2 评论 -
InfoGAN 生成时序序列
InfoGAN 生成时序序列简介完整代码:https://github.com/SongDark/timeseries_infogan 本文介绍用InfoGAN生成多维时序序列。数据数据集下载地址NameClassDimensionTrain SizeTest SizeTruncatedCharacterTrajectories203142214...原创 2019-01-14 10:29:08 · 8828 阅读 · 10 评论 -
用Tensorflow计算距离矩阵
用Tensorflow计算距离矩阵 一般计算距离矩阵,都是用两层循环来做,这样效率太低。在样本维度上,距离矩阵的运算相互没有依赖关系,是可以做并行的。除了开多线程用CPU并行计算以外,还可以用GPU加速,比如拿tensorflow实现。数据结构 现在有 NNN(可以理解为 batch_sizebatch\_sizebatch_size)个时序序列样本,每个样本的大小为 (T,C)(T,C...原创 2019-01-23 19:05:39 · 4365 阅读 · 1 评论 -
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 · 6713 阅读 · 0 评论 -
用各种GAN生成MNIST数字
用各种GAN生成MNIST数字数据获取MNIST数据集的获取可以参考这篇博客:https://blog.youkuaiyun.com/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 · 6369 阅读 · 0 评论 -
用各种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 · 3427 阅读 · 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 · 9558 阅读 · 5 评论 -
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 · 9307 阅读 · 8 评论 -
用Sklearn实现Affinity Propagation Clustering (AP聚类)
用Sklearn实现Affinity Propagation Clustering (AP聚类) 调用sklearn.cluster.AffinityPropagation即可实现AP聚类,不仅能接受原始数据作为输入,也可以预先计算好相似度矩阵,然后再送入。原始数据输入from sklearn.cluster import AffinityPropagationfrom skl...原创 2018-05-15 12:12:54 · 9598 阅读 · 12 评论 -
Keras中Embedding层masking与Concatenate层不可调和的矛盾
Keras中Embedding层masking与Concatenate层不可调和的矛盾a = Input(shape=[15]) # None*15b = Input(shape=[30]) # None*30emb_a = Embedding(10, 5, mask_zero=True)(a) # None*15*5emb_b = Embedding(20, 5, mask_zero=...原创 2018-05-08 17:03:30 · 4866 阅读 · 3 评论 -
模型性能评价指标之AUC
模型性能评价指标之AUC一、准确率和召回率1.1 定义在讨论ROC之前,先介绍准确率(Precision)和召回率(Recall)的概念。 - 预测+ 预测- 真实+ TP(真正例) FN(假反例) 真实- FP(假正例) TN(真反例)准确率P的意义是,预测为+的样本里,真实label为+的样本比例 P=T...原创 2018-04-11 20:40:41 · 14969 阅读 · 1 评论 -
离散傅里叶变换DFT
离散傅里叶变换DFTDFT和IDFT时域中长度为NNN的序列x[n]x[n]x[n]的离散傅里叶变换(DFT)和逆变换(IDFT) X[k]=∑n=0N−1x[n]⋅exp(−j2πknN)X[k]=∑n=0N−1x[n]⋅exp(−j2πknN)X[k] = \sum_{n=0}^{N-1}x[n]\cdot \exp \left ( -j\frac{2\pi kn}{N} \r...原创 2018-04-11 16:18:31 · 1750 阅读 · 0 评论 -
机器学习方向,找实习阶段遇到的面试问题
机器学习面试,找实习阶段遇到的面试问题 本文列举的所有问题,包括了我在面试过程中真实遇到过的关于机器学习理论方面的问题,也增加了一些我思考过、觉得可能会问到的问题。在我面试结束以前,我会继续更新下去。有时候光看书效果是不好的,多问自己一些问题,或者给自己来一场面试,往往就能加深理解和记忆。很多时候我们觉得懂了,那都是以为自己懂了,其实什么都不懂。概述篇 你是怎么学习机器学习的?...原创 2018-04-15 15:46:28 · 1651 阅读 · 3 评论 -
第一届腾讯社交广告高校算法大赛经验分享
第一届腾讯社交广告高校算法大赛经验分享一、简介 去年的5月,我和两个队友参加了《第一届腾讯社交广告高校算法大赛》,在那之前我们实际上完全没有相关的竞赛经验,三个毫无经验的菜鸟暴力提取特征,凭借训练神经网络的经验玄学调参,竟然也获得了还不错的成绩,最终初赛 10/1000,决赛 39/1000,第一次比赛分工比较混乱,每个人都参与了特征工程和模型调参。初赛和决赛都是线下赛,即用自己的机...原创 2018-03-21 15:00:15 · 10713 阅读 · 2 评论 -
Logistic Regression (LR) 详解
Logistic Regression (LR) 详解最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结果Q君扔出几个问题给我,一时竟回答不出,殊不知LR也有那么深的学问,本不想深究,直到我看到了这个:LR跟最大熵模型还有关系的吗?LR比线性回归好不是理所当然吗?LR还能并行?看完这些问题,一...原创 2018-03-21 12:58:18 · 9469 阅读 · 2 评论 -
拟牛顿法(DFP、BFGS、L-BFGS)
拟牛顿法一、牛顿法1.1 基本介绍牛顿法属于利用一阶和二阶导数的无约束目标最优化方法。基本思想是,在每一次迭代中,以牛顿方向为搜索方向进行更新。牛顿法对目标的可导性更严格,要求二阶可导,有Hesse矩阵求逆的计算复杂的缺点。XGBoost本质上就是利用牛顿法进行优化的。1.2 基本原理现在推导牛顿法。 假设无约束最优化问题是 minxf(x)minxf(x)\m...原创 2018-03-24 23:53:43 · 72205 阅读 · 19 评论 -
各类优化方法总结(从SGD到FTRL)
目录目录各类优化方法总结1. SGD2. Momentum3. Nesterov4. Adagrad5. Adadelta6. Adam7. FTRL参考资料各类优化方法总结为了方便描述,假设第ttt轮要更新的某参数是wtwtw_t,losslossloss函数关于wtwtw_t的偏导数表示为gtgtg_t,即: gt=∂L∂wtgt=∂L∂wtg...原创 2018-03-20 22:30:36 · 7297 阅读 · 0 评论 -
第二届阿里云安全算法挑战赛经验分享
第二届阿里云安全算法挑战赛经验分享一、简介我在2017年8月参加了这个比赛,比赛分两道子赛题,我和队友分别负责其中一道,我负责的是《扫描爆破拦截》,单题排名5/959,两题综合12/959。原本应该在比赛完就写博客记录的,但事情太多以至于拖延到了现在,找实习的时候翻回从前比赛时期零碎的笔记,才想起来自己原来做过这么些事情,经历过这样的一些思考,还发现了一些纰漏和可以改进的地方。现在重写...原创 2018-03-20 16:19:30 · 3297 阅读 · 0 评论 -
数理统计之卡方检验
数理统计之卡方检验简介卡方分布是与正态分布紧密联系的分布,它能做的事情很多,本文介绍了以下三方面:单个正态总体的方差检验样本总体的分布拟合检验两个总体之间的相关性(独立性)检验一、卡方分布【定义】 设随机变量 ξ1,ξ2,⋯,ξnξ1,ξ2,⋯,ξn\xi_1,\xi_2,\cdots,\xi_n 独立同分布,且 ξi∼N(0,1)ξi∼N(0,1)\xi_...原创 2018-03-24 14:20:53 · 11177 阅读 · 1 评论 -
因子分解机(libffm+xlearn)
因子分解机一、简介 在CTR和CVR预估任务中,可能有大量的ID类特征(Categorical Feature),一般来说并不适合直接送入树模型(xgboost完全不支持,lightgbm只根据取值不同),一种常用的做法是通过Label Encoding变成离散的稀疏的高维向量(最具代表的是Onehot独热编码),然后送入LR训练。在独热编码的作用下,产生了多项式模型参数学习困难的问...原创 2018-03-23 12:04:44 · 13149 阅读 · 8 评论 -
GBDT原理及实现(XGBoost+LightGBM)
GBDT原理及实现(XGBoost+LightGBM)GBDT原理及实现(XGBoost+LightGBM)一、准备知识1.1 泰勒展开1.2 梯度下降法1.3 牛顿法1.4 CART树1.4.1 CART回归树A. 单元最优输出B. 分裂策略C. CART回归树生成步骤1.4.2 CART分类树A. 基尼指数B. CART分类树生成步骤1.5 Boo...原创 2018-03-05 23:27:11 · 4848 阅读 · 3 评论 -
推荐系统之协同过滤
协同过滤简介 协同过滤(Collaborative Filtering)是推荐系统知识体系里基础中的基础,虽然现在看来简单的协同过滤已经很古老和过时了,尤其UserCF,但它们仍然是学习推荐系统的必经之路。我主要参考了《推荐系统实践》和《Recommender Systems-An Introduction》两本书(书上部分公式和代码是有问题的),部分摘录,部分自己的想法,代码都自己...原创 2018-04-12 23:09:21 · 2204 阅读 · 0 评论