前言

如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

—— “Everything should be made as simple as possible but no simpler”, Albert Einstein


谱聚类

对比传统聚类算法 K-Means,谱聚类对数据分布的适应性更强,聚类效果也更好,且计算量较小,实现也不复杂,是广泛使用的聚类算法。

参考资料:

  • 谱聚类(spectral clustering)原理总结

EM 算法

EM 算法理解的九层境界:

  1. EM 就是 E + M
  2. EM 是一种局部下限构造
  3. K-Means 是一种 Hard EM 算法
  4. 从 EM 到广义 EM
  5. 广义 EM 的一个特例是 VBEM
  6. 广义 EM 的另一个特例是 WS 算法
  7. 广义 EM 的再一个特例是 Gibbs 抽样算法
  8. WS 算法是 VAE 和 GAN 组合的简化版
  9. KL 距离的统一

参考资料:

  • EM 算法解析
  • EM 算法理解的九层境界

Isolation 系列

孤立核 (Isolation Kernel):

  • 基于数据分布特性的核函数,即增加低密度区域里物体的相似度,降低高密度区域里物体的相似度

孤立森林 (Isolation Forest):

  • 异常检测算法,寻找分布稀疏且离密度高的群体较远的点
  • 算法核心:随机划分多次,密度越疏的簇,即更有可能是异常值的点会被更快地划分出来

参考资料:

  • 孤立森林(iForest - Isolation Forest)
  • 孤立核函数( Isolation Kernel)的前世今生
  • iForest (Isolation Forest)孤立森林 异常检测 入门篇

核密度估计

核密度估计是对直方图的一个自然扩展:
f ^ h ( x ) = 1 2 h # x i ∈ [ x − h , x + h ] N = 1 2 N h ∑ i = 1 N 1 ( x − h ≤ x i ≤ x + h ) = 1 N h ∑ i = 1 N 1 2 ⋅ 1 ( ∣ x − x i ∣ h ≤ 1 ) \hat{f}_{h}(x)=\frac{1}{2 h} \frac{\# x_{i} \in[x-h, x+h]}{N}=\frac{1}{2 N h} \sum_{i=1}^{N} 1\left(x-h \leq x_{i} \leq x+h\right)=\frac{1}{N h} \sum_{i=1}^{N} \frac{1}{2} \cdot 1\left(\frac{\left|x-x_{i}\right|}{h} \leq 1\right) f^​h​(x)=2h1​N#xi​∈[x−h,x+h]​=2Nh1​i=1∑N​1(x−h≤xi​≤x+h)=Nh1​i=1∑N​21​⋅1(h∣x−xi​∣​≤1)
f ^ h ( x ) = 1 n h ∑ i = 1 N ϕ ( x − x i h ) \hat{f}_{h}(x)=\frac{1}{n h} \sum_{i=1}^{N} \phi\left(\frac{x-x_{i}}{h}\right) f^​h​(x)=nh1​i=1∑N​ϕ(hx−xi​​)

参考资料:

  • Introduction to Kernel Density Estimation
  • 什么是核密度估计?如何感性认识?

Optimal Transport

给定 r ∈ R n \mathbf{r}\in \mathbb{R}^n r∈Rn、 c ∈ R m \mathbf{c}\in \mathbb{R}^m c∈Rm、 M ∈ R n × m \mathbf{M}\in \mathbb{R}^{n\times m} M∈Rn×m,我们的目标是将 r \mathbf{r} r 变换至 c \mathbf{c} c,其中 M i j \mathbf{M}_{ij} Mij​ 表示 r i \mathbf{r}_i ri​ 运输到 c j \mathbf{c}_j cj​ 的代价,因此解空间为:
U ( r , c ) = { P ∈ R ≥ 0 n × m ∣ P 1 m = r , P ⊤ 1 n = c } \mathbf{U}(\bm{r},\bm{c})=\left\{\mathbf{P} \in \mathbb{R}_{\geq 0}^{n \times m} \mid \mathbf{P} \mathbf{1}_m=\mathbf{r}, \mathbf{P}^{\top} \mathbf{1}_n=\mathbf{c}\right\} U(r,c)={P∈R≥0n×m​∣P1m​=r,P⊤1n​=c}

此时,如果考虑 Wasserstein distance,则优化问题如下:
d M ( r , c ) = min ⁡ P ∈ U ( r , c ) ∑ i j P i j M i j d_{\mathbf{M}}(\mathbf{r}, \mathbf{c})=\min _{\mathbf{P} \in U(\mathbf{r}, \mathbf{c})} \sum_{i j} \mathbf{P}_{i j} \mathbf{M}_{i j} dM​(r,c)=P∈U(r,c)min​ij∑​Pij​Mij​

易知,上述优化问题为线性规划问题,其中最优解 d M ( r , c ) d_{\mathbf{M}}(\mathbf{r}, \mathbf{c}) dM​(r,c) 即为 Wasserstein distance。如果考虑 Sinkhorn distance,即希望分配矩阵 P \mathbf{P} P 更加均匀,则优化问题如下:
d M λ ( r , c ) = min ⁡ P ∈ U ( r , c ) ∑ i j P i j M i j − 1 λ h ( P ) , λ > 0 h ( P ) = − ∑ i j P i j log ⁡ P i j \begin{aligned} d_{\mathbf{M}}^\lambda(\mathbf{r}, \mathbf{c})&=\min _{\mathbf{P} \in U(\mathbf{r}, \mathbf{c})} \sum_{i j} \mathbf{P}_{i j} \mathbf{M}_{i j}-\frac{1}{\lambda} h(\mathbf{P}), \lambda>0 \\ h(\mathbf{P})&=-\sum_{i j} \mathbf{P}_{i j} \log \mathbf{P}_{i j} \end{aligned} dMλ​(r,c)h(P)​=P∈U(r,c)min​ij∑​Pij​Mij​−λ1​h(P),λ>0=−ij∑​Pij​logPij​​

其中 ∑ i j ( P λ ∗ ) i j M i j \sum_{i j}\left(\mathbf{P}_\lambda^*\right)_{i j} \mathbf{M}_{i j} ∑ij​(Pλ∗​)ij​Mij​ 为 Sinkhorn distance。另外,该形式下问题有更高效的求解方式,代码如下:

def compute_optimal_transport(M, r, c, lam, epsilon=1e-5):"""Computes the optimal transport matrix and Slinkhorn distance using theSinkhorn-Knopp algorithmInputs:- M : cost matrix (n x m)- r : vector of marginals (n, )- c : vector of marginals (m, )- lam : strength of the entropic regularization- epsilon : convergence parameterOutput:- P : optimal transport matrix (n x m)- dist : Sinkhorn distance"""n, m = M.shapeP = np.exp(- lam * M)# Avoiding poor math conditionP /= P.sum()u = np.zeros(n)# Normalize this matrix so that P.sum(1) == r, P.sum(0) == cwhile np.max(np.abs(u - P.sum(1))) > epsilon:# Shape (n, )u = P.sum(1)P *= (r / u).reshape((-1, 1))P *= (c / P.sum(0)).reshape((1, -1))return P, np.sum(P * M)

另外,根据 Wasserstein distance,还可以定义 Wasserstein Barycenter 的概念,可以理解为 Wasserstein 距离度量下的质心。具体来说,给定一组分布 P = { p 1 , p 2 , ⋯ , p K } \mathcal{P}=\left\{p_1, p_2, \cdots, p_K\right\} P={p1​,p2​,⋯,pK​},其 Wasserstein barycenter 定义为:
q ∗ ( P , λ ) = arg ⁡ min ⁡ q ∈ Q ∑ k = 1 K λ k W ( q , p k ) q^*(\mathcal{P}, \lambda)=\arg \min _{q \in \mathcal{Q}} \sum_{k=1}^K \lambda_k W\left(q, p_k\right) q∗(P,λ)=argq∈Qmin​k=1∑K​λk​W(q,pk​)

其中 W W W 表示 Wasserstein distance, Q \mathcal{Q} Q 表示概率分布空间, λ k \lambda_k λk​ 满足 ∑ k = 1 K λ k = 1 \sum_{k=1}^K \lambda_k=1 ∑k=1K​λk​=1。

相关资料:

  • Optimal Transport 入门简述 - 博客
  • Optimal Transport 入门简述 - 代码
  • 令人拍案叫绝的Wasserstein GAN
  • Wasserstein Distance - 数学
  • Learning with a Wasserstein Loss
  • A user’s guide to optimal transport
  • 王祥丰:计算最优传输及其应用浅谈
  • 计算最优传输系列文章

Diffusion Models - DDPM

Diffusion Models 功能:一个生成器,通过对一堆已有图片进行学习,使其可以源源不断生成大量的新图片,即通过 p data p_{\text{data}} pdata​ 学习 p θ p_\theta pθ​,再用 p θ p_\theta pθ​ 不断生成新图片。

具体原理:

  • 正向过程 x 0 \mathbf{x}_0 x0​ 到 x T \mathbf{x}_T xT​ 的转移分布为正态分布,其均值和方差固定,使原始图片 x 0 \mathbf{x}_0 x0​ 通过不断加噪声,最终变成一张被噪声充斥的图片;
  • 逆向过程,需要采用极大似然估计的方式,使用网络估计前向过程加随机噪声的方式,训练得到一个能估计每一步如何加噪声的网络,由此实现将 x T \mathbf{x}_T xT​ 逆向还原为 x 0 \mathbf{x}_0 x0​ 的过程。

相关资料:

  • 组会分享:生成扩散概率模型简介 Diffusion Models
  • Diffusion Models:生成扩散模型

kd 树

机器学习中常见算法 k-NN,其原理是将 d d d 维数据映射到 d d d 维空间中,并根据最近的 k k k 个点的 label 进行投票,得到预测数据的 label。

在上述过程中,「寻找最近的 k k k 个点」成为主要难点,最常用的方式是基于 kd 树,对平面进行划分,由此高效地定位预测点在平面中的位置,实现高效查询。


  1. 通过平面划分的方式构建一棵树
  2. 对于任意一个待预测点 X X X,先遍历树从上至下找到底部(例如上图 A A A),记此时距离为最近距离 r r r
  3. 随后往上回溯(例如从 A A A 回溯至 B B B),若距离更近则更新 r r r,更新完后判断以 X X X 为中心, r r r 为半径的球是否与 B B B 的超平面相交
    • 如果不相交,则继续向上回溯,直至树根停止;
    • 如果相交,则进入 B 的另一部分子树,重新执行 2、3 步骤。

参考资料:

  • 一文搞懂k近邻(k-NN)算法(二)

机器学习算法 - 博客收藏相关推荐

  1. java ltp4j_博客 | 收藏 | 100多个DL框架、AI库、ML库、NLP库、CV库汇总,建议收藏!...

    原标题:博客 | 收藏 | 100多个DL框架.AI库.ML库.NLP库.CV库汇总,建议收藏! 本文原载于微信公众号:AI部落联盟(AI_Tribe),AI研习社经授权转载.欢迎关注 AI部落联盟 ...

  2. 分享丨国外20个机器学习相关博客推荐

    概述   最近一直在学习机器学习相关的知识,今天我就把我平时看到的一些国外的关于机器学习的博客和新闻站,分享给大家. Machine Learning - Reddit 网址:点击前往 介绍:关于大名 ...

  3. 自然语言处理与机器学习技术博客、学习资料精选[附网盘地址]

    自然语言处理与机器学习技术博客.学习资料精选! 首先,恭喜点开了这篇文章的读者,本文所提供的资料是免费的,小编不卖资料,是赠送资料! 今天咱们的学习社区里有学员提出要推荐一些NLP方面的博客.站点,因 ...

  4. 优秀有价值的博客收藏列表

    本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...

  5. 优秀有价值的博客收藏列表(转)

    本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...

  6. 优秀有价值的程序员需要博客收藏列表(持续更新)

    本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...

  7. 有价值的博客收藏(转载)

    感觉听不错的,所以就转载了,在这感谢博主了 转载自 http://blog.csdn.net/csh624366188/article/details/8036565   [大学生活]优秀的有趣的博客 ...

  8. 优秀有价值的博客收藏列表(持续更新)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文属于 ...

  9. 大佬们的精品博客[收藏+1]

    好博客总结 技术参考总结 云中王的博客: Centos7中文乱码 MariaDB安装与启动过程记录 logging模块 re模块 xml模块 shelve模块 json模块&pickle模块  ...

最新文章

  1. 读书笔记-《增长黑客》-低成本、高效率的精准营销
  2. 渗透知识-Struts2漏洞
  3. 数据结构——二叉树的遍历
  4. 后端 消息 转发_【后端开发】Servlet怎么转发
  5. http通信协议的基本原理
  6. 计算机机房电力切换演练方案,机房停电应急演练实施具体技术方案.doc
  7. Mybatis select元素返回List
  8. 关于silverlight打印功能
  9. python怎么根据度分布生成网络_python度分布图
  10. 层次分析法和bp神经网络,基于bp的神经网络算法
  11. html如何创建二级标题,这样二级标题就产生了; 步骤四:同理三级标题就在二级标题下创建...
  12. 一文了解知识图谱能做什么、本文含Jiagu自然语言处理工具试用、知识图谱实战。
  13. 暴力破解Windows密码(二、三):使用getpass内存提取windows用户密码、使用quarkpwdump导出windows用户密码hash值
  14. Java:Stream三部曲(三):Stream流处理器
  15. 【Java编程系列】java用POI、Itext生成并下载PPT、PDF文件
  16. Html与css步入新手村
  17. html查看器停止运行器,IE浏览器提示是否停止运行此脚本的解决方法小结
  18. numpy数组和矢量运算03
  19. electron@7.2.4实现打印功能
  20. php案例:创建日期时间目录

热门文章

  1. 《老漏洞复现与分析篇》 - 其一 - shift后门
  2. 焦作大学计算机应用技术代码,焦作大学专业代码
  3. 域名到期会怎样?域名不续费会被收回吗?
  4. Fading TextView
  5. c语言第二版吉顺如答案,C语言程序设计教程 第2版 教学 吉顺如 刘新铭 辜碧容 29315 C第2版实验与习题参考答案.pdf...
  6. 百度大脑黑白图像上色-老照片的春天
  7. SpringBoot使用H2内存数据库单元测试的代码示例
  8. 基于javaweb+mysql的兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
  9. hi mate, lets recall the bloody “JOIN“
  10. 制作大屏需要什么工具?