本文简单了描述机器学习中的蒸馏(distillation)技术的原理,distillation 可简单分为 model distillation 和 feature distillation。顾名思义,蒸馏是对原来的模型 / 特征进行了压缩,其原因可能是为了减少模型的大小(model distillation)、或者某些特征只能在 training 时获取,serving 无法获取 (feature distillation);在实际业务中可根据具体场景灵活地应用这两类技术。

阅读全文 »

Smart Pacing for Effective Online Ad Campaign Optimization》是 Yahoo 在 2015 发表的一篇关于 budget pacing 的论文,与之前写过的 Budget Pacing for Targeted Online Advertisements at LinkedIn 相似,目标也是把预算均匀花完,但是除了这个目标,这篇论文还提出了在预算均匀花完的基础上如何保成本的方法,算是一个多目标优化了。在离线环境和真实环境验证了方法的有效性,是实践性较强的一篇文章,值得一看。

阅读全文 »

机器学习中存在着众多的超参数,如 model 中的超参,optimizer 中的超参,loss function 中的各种超参等,这些超参需要使用者根据经验设定,并根据训练结果进行调整,因为这些超参的最优值跟不同任务、不同数据集相关, 没有一个非常通用的经验值。

这一步骤往往繁琐耗时,为了简化这一过程,有了 Hyperparameter optimization 的研究,其目的是自动搜索最优的超参。超参搜索最常见的方法是 grid search,random search,当然也有更高级的方法如基于启发式方法的 heuristic search、基于统计学的 bayesian optimization 等,本文主要介绍超参搜索中的 Bayesian Optimization 方法,这是超参搜索比较常见的做法,Google 也将这部分作为一个 service 提供在 Google Cloud 上。本文主要介绍 Bayesian Optimization 中的 GPR (Gaussian Process Regression) + GP-BUCB (Gaussian Process Regression-Batch Upper Confidence Bound) 方法。

阅读全文 »

对于习惯用 markdown 写作的人,日常最烦恼的问题之一应该是如何显示自己的图片,markdown 文本存储的是图片的地址(本地路径或 url),而最为常用的是 url,至少我写文章是这样的。某些 markdown 编辑器也提供了 markdown 图床服务,如有道云笔记,cmd_markdown 等, 但是这些编辑器要么太丑(有道云笔记,说的就是你),要么就是比较小众(cmd markdown),生怕哪天停止运营了文章里的图片就没了,而且这些服务一般是要收费的。

那么有没有一种方法能够为本地图片生成 public url,同时保证数据有较高的可用性,而且最好是免费的。Github 其实已经间接为我们提供了这样的服务,只是这个步骤较为繁琐,本文就是针对这一点开发了一个小工具来简化这个过程,代码已开源,见 MarkdownImageUploader,本文主要介绍其基本原理和使用方法。

阅读全文 »

本文主要介绍部署机器学习模型的一种自动化方式,如题所示,通过 FlaskDocker, JenkinsKubernets 实现。基本原理就是通过 Flask 提供 RESTful API 接收客户端的 predict 请求,然后将这个服务打包成一个 docker image 便于部署和迁移,当代码或模型更新时通过 Jenkins 触发自动构建新的 docker image,而通过 kubernets 管理容器则让整个服务具备伸缩性和可靠性。本文主要参考了 Deploy a machine learning model in 10 minutes with Flask, Docker, and Jenkins,并在其基础上进行了完善和拓展,如通过一个简单的 shell script 实现 jenkins 的触发功能,并添加了 kubernets 部分的介绍等。本文的对应的所有代码可从 DeployMachineLearningModel 获取。

阅读全文 »

本文主要介绍在 LeetCode 题目 496. Next Greater Element I975. Odd Even Jump503. Next Greater Element II 中需要解决的共同问题:next greater element,就是对于一个数组中的每个 element,求出下标和值都比其大的一个 element,根据要求不同,这个问题又可分为 nearest of next greater elements 和 smallest of next greater elements,前者指的是 next greater elements 中离当前 element 最近的那个,后者指的是 next greater elements 中值最小的那个。两个问题都可通过 stack 解决,后者也可通过 treemap 解决。最后会将原来的问题进行的拓展,将原来的数据改成头尾相接的,其解决方法是将来的数组进行 duplicate, 然后把环解开,详细请看后文。

阅读全文 »

本文是 Effective Go 中的一些摘记,主要涉及 golang 中的语法、技巧、风格等。为了尽可能保持原文意思,会通过英文记录相关的知识点。

阅读全文 »

最近看到一篇关于 MLE (Maximum Likelihood Estimation) 和 MAP(Maximum A Posteriori) 的文章,写的很好,非常值得一看,文章链接为 聊一聊机器学习的 MLE 和 MAP:最大似然估计和最大后验估计,本文几乎不加修改地转载了文章,侵删。

阅读全文 »
0%