机器学习算法 - 博客收藏
前言
如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。
—— “Everything should be made as simple as possible but no simpler”, Albert Einstein
谱聚类
对比传统聚类算法 K-Means,谱聚类对数据分布的适应性更强,聚类效果也更好,且计算量较小,实现也不复杂,是广泛使用的聚类算法。
参考资料:
- 谱聚类(spectral clustering)原理总结
EM 算法
EM 算法理解的九层境界:
- EM 就是 E + M
- EM 是一种局部下限构造
- K-Means 是一种 Hard EM 算法
- 从 EM 到广义 EM
- 广义 EM 的一个特例是 VBEM
- 广义 EM 的另一个特例是 WS 算法
- 广义 EM 的再一个特例是 Gibbs 抽样算法
- WS 算法是 VAE 和 GAN 组合的简化版
- 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)=2h1N#xi∈[x−h,x+h]=2Nh1i=1∑N1(x−h≤xi≤x+h)=Nh1i=1∑N21⋅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)=nh1i=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)minij∑PijMij
易知,上述优化问题为线性规划问题,其中最优解 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)minij∑PijMij−λ1h(P),λ>0=−ij∑PijlogPij
其中 ∑ i j ( P λ ∗ ) i j M i j \sum_{i j}\left(\mathbf{P}_\lambda^*\right)_{i j} \mathbf{M}_{i j} ∑ij(Pλ∗)ijMij 为 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∈Qmink=1∑KλkW(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 树,对平面进行划分,由此高效地定位预测点在平面中的位置,实现高效查询。
- 通过平面划分的方式构建一棵树
- 对于任意一个待预测点 X X X,先遍历树从上至下找到底部(例如上图 A A A),记此时距离为最近距离 r r r
- 随后往上回溯(例如从 A A A 回溯至 B B B),若距离更近则更新 r r r,更新完后判断以 X X X 为中心, r r r 为半径的球是否与 B B B 的超平面相交
- 如果不相交,则继续向上回溯,直至树根停止;
- 如果相交,则进入 B 的另一部分子树,重新执行 2、3 步骤。
参考资料:
- 一文搞懂k近邻(k-NN)算法(二)
机器学习算法 - 博客收藏相关推荐
- java ltp4j_博客 | 收藏 | 100多个DL框架、AI库、ML库、NLP库、CV库汇总,建议收藏!...
原标题:博客 | 收藏 | 100多个DL框架.AI库.ML库.NLP库.CV库汇总,建议收藏! 本文原载于微信公众号:AI部落联盟(AI_Tribe),AI研习社经授权转载.欢迎关注 AI部落联盟 ...
- 分享丨国外20个机器学习相关博客推荐
概述 最近一直在学习机器学习相关的知识,今天我就把我平时看到的一些国外的关于机器学习的博客和新闻站,分享给大家. Machine Learning - Reddit 网址:点击前往 介绍:关于大名 ...
- 自然语言处理与机器学习技术博客、学习资料精选[附网盘地址]
自然语言处理与机器学习技术博客.学习资料精选! 首先,恭喜点开了这篇文章的读者,本文所提供的资料是免费的,小编不卖资料,是赠送资料! 今天咱们的学习社区里有学员提出要推荐一些NLP方面的博客.站点,因 ...
- 优秀有价值的博客收藏列表
本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...
- 优秀有价值的博客收藏列表(转)
本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...
- 优秀有价值的程序员需要博客收藏列表(持续更新)
本文属于本人资源整理,大多数的资源来自于: 我的Google Reader订阅:http://blog.csdn.net/chenyusiyuan/article/details/5945540 [大 ...
- 有价值的博客收藏(转载)
感觉听不错的,所以就转载了,在这感谢博主了 转载自 http://blog.csdn.net/csh624366188/article/details/8036565 [大学生活]优秀的有趣的博客 ...
- 优秀有价值的博客收藏列表(持续更新)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文属于 ...
- 大佬们的精品博客[收藏+1]
好博客总结 技术参考总结 云中王的博客: Centos7中文乱码 MariaDB安装与启动过程记录 logging模块 re模块 xml模块 shelve模块 json模块&pickle模块 ...
最新文章
- 读书笔记-《增长黑客》-低成本、高效率的精准营销
- 渗透知识-Struts2漏洞
- 数据结构——二叉树的遍历
- 后端 消息 转发_【后端开发】Servlet怎么转发
- http通信协议的基本原理
- 计算机机房电力切换演练方案,机房停电应急演练实施具体技术方案.doc
- Mybatis select元素返回List
- 关于silverlight打印功能
- python怎么根据度分布生成网络_python度分布图
- 层次分析法和bp神经网络,基于bp的神经网络算法
- html如何创建二级标题,这样二级标题就产生了; 步骤四:同理三级标题就在二级标题下创建...
- 一文了解知识图谱能做什么、本文含Jiagu自然语言处理工具试用、知识图谱实战。
- 暴力破解Windows密码(二、三):使用getpass内存提取windows用户密码、使用quarkpwdump导出windows用户密码hash值
- Java:Stream三部曲(三):Stream流处理器
- 【Java编程系列】java用POI、Itext生成并下载PPT、PDF文件
- Html与css步入新手村
- html查看器停止运行器,IE浏览器提示是否停止运行此脚本的解决方法小结
- numpy数组和矢量运算03
- electron@7.2.4实现打印功能
- php案例:创建日期时间目录
热门文章
- 《老漏洞复现与分析篇》 - 其一 - shift后门
- 焦作大学计算机应用技术代码,焦作大学专业代码
- 域名到期会怎样?域名不续费会被收回吗?
- Fading TextView
- c语言第二版吉顺如答案,C语言程序设计教程 第2版 教学 吉顺如 刘新铭 辜碧容 29315 C第2版实验与习题参考答案.pdf...
- 百度大脑黑白图像上色-老照片的春天
- SpringBoot使用H2内存数据库单元测试的代码示例
- 基于javaweb+mysql的兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
- hi mate, lets recall the bloody “JOIN“
- 制作大屏需要什么工具?