算法笔记 近似最近邻查找(Approximate Nearest Neighbor Search,ANN)

这篇具有很好参考价值的文章主要介绍了算法笔记 近似最近邻查找(Approximate Nearest Neighbor Search,ANN)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 介绍

  • 精准最近邻搜索中数据维度一般较低,所以会采用穷举搜索,即在数据库中依次计算其中样本与所查询数据之间的距离,抽取出所计算出来的距离最小的样本即为所要查找的最近邻。
    • 当数据量非常大的时候,搜索效率急剧下降。
    • ——>近似最近邻查找(Approximate Nearest Neighbor Search,简称 ANN)是一种在大规模数据集中查找与给定查询点最相似(或“最近”)的数据点的优化算法。
  • 与精确最近邻查找不同,近似最近邻查找不保证找到绝对最近的邻居,但它通常比精确方法更快,尤其是在高维数据空间中。
    • 在牺牲可接受范围内的精度的情况下提高检索效率
  • 近似最近邻检索利用数据量增大后数据之间会形成簇状聚集分布的特性,通过对数据分析聚类的方法对数据库中的数据进行分类或编码,对于目标数据根据其数据特征预测其所属的数据类别,返回类别中的部分或全部作为检索结果。

2 KD 树

算法笔记:KD树_UQI-LIUWJ的博客-CSDN博客

3 球树

算法笔记:球树_UQI-LIUWJ的博客-CSDN博客

  • KD树和球树通常用于精确最近邻查找,但也可以用于近似最近邻查找
    • 限制搜索深度

      • 在构建KD树/球树的过程中,每个节点都会分割其包含的数据点。在查找最近邻时,通常会遍历这些节点以找到最近的点
      • 通过限制搜索深度,可以减少搜索时间,但这可能会导致找到的点不是真正的最近邻
    • 早停准则

      • 在搜索过程中,一旦找到一个与查询点距离在某个阈值范围内的点,就停止搜索。

      • 这样可以加速查找过程,但可能会错过更近的点。

4 LSH 局部敏感哈希(locality-sensitive hashing)

  • LSH的基本思想是将相近的点映射到相同或相近的“桶”(bucket)中,以便能快速地检索这些点。

4.1 几个概念

  • 哈希函数族:

    • 选择一个局部敏感的哈希函数族,该函数族具有一个重要的性质:距离近的点被哈希到相同桶的概率高,而距离远的点被哈希到相同桶的概率低。
  • 局部敏感

    • 一个局部敏感的哈希函数族 H 对于任意两个点 p 和 q,以及任意两个距离阈值 R 和 r(R>r),具有以下性质
      • 正性质: 如果 distance(p,q)≤r,则 h(p)=h(q) 的概率较高。

        • 也就是说,如果两个点 p 和 q 距离很近,那么它们被哈希到同一个桶的概率应该很高。

      • 负性质: 如果distance(p,q)≥R,则 h(p)=h(q) 的概率较低。

        • 也就是说,如果两个点 p 和 q 距离很远,那么它们被哈希到同一个桶的概率应该很低。

算法笔记 近似最近邻查找(Approximate Nearest Neighbor Search,ANN),算法,算法,笔记文章来源地址https://www.toymoban.com/news/detail-705420.html

  • 多哈希表:

    • 通常使用多个这样的哈希表,以增加查找精度。
  • 候选集生成:

    • 对于一个查询点,首先计算其哈希值,并在相应的桶中查找候选点。
  • 后处理:

    • 在候选集中进行距离计算,以找到最近邻

到了这里,关于算法笔记 近似最近邻查找(Approximate Nearest Neighbor Search,ANN)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K近邻算法(K-Nearest Neighbors, KNN)原理详解与应用

    K近邻算法(K-Nearest Neighbors, KNN)是一种常用的非参数化的监督学习算法,用于分类和回归任务。本文将深入解析KNN的原理,从距离度量到K值选择,帮助读者全面理解KNN的工作原理和应用。 KNN算法基于一个简单的思想:相似的样本具有相似的类别。它通过计算新样本与训练集

    2024年02月10日
    浏览(27)
  • Elasticsearch:探索 k-nearest neighbor (kNN) 搜索

    由于新一代机器学习模型可以将各种内容表示为向量,包括文本、图像、事件等,人们对向量搜索的兴趣激增。 通常称为 “ 嵌入模型 (embedding models)”,这些强大的表示可以以超越其表面特征的方式捕获两段内容之间的相似性。 K 最近邻 (KNN) 搜索又名语义搜索是一种简单

    2024年02月08日
    浏览(31)
  • 李飞飞计算机视觉k-Nearest Neighbor

    给计算机很多数据,然后实现学习算法,让计算机学习到每个类的外形 输入:输入是包含N个图像的集合,每个图像的标签是K种分类标签中的一种。这个集合称为训练集。 学习:这一步的任务是使用训练集来学习每个类到底长什么样。一般该步骤叫做训练分类器或者学习一个

    2024年02月17日
    浏览(30)
  • 算法笔记:二分查找

    1.1 概念 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按有序排列。 二分查找维护查找空间的左、右和中间指示符,并比较查找目标或将查找条件应用于集合的中间值;如果条件

    2024年02月04日
    浏览(62)
  • 算法设计与分析学习笔记之二分查找算法

    二分查找只适用于有序的顺序表,非严格递增或是非严格递减都行。 二分查找运用到了分治的思想,将整体逐渐分为许多个小的部分,让整体的解变为诸多小部分解的合成,要求整体可以分解,小部分的解汇合之后可以得到整体部分的解。 至此,结束。 如果你觉得这篇文章

    2024年02月09日
    浏览(37)
  • 近似算法之——顶点覆盖的原始对偶算法

    许多具有实际意义的问题都是NP完全问题。我们不知道如何在多项式时间内求得最优解。但是,这些问题往往十分重要,我们不能因此而放弃对它们的求解,即使一个问题是NP完全的,也有它的求解方法。实际应用中,近似最优解一般都能满足要求。返回近似最优的方法称为近

    2024年02月03日
    浏览(30)
  • 四、分类算法 - KNN算法(K-近邻算法)

    目录 1、K-近邻算法 1.1 K-近邻算法原理 1.2 K - 近邻算法API 1.3 案例1:鸢尾花种类预测 1.3.1 数据集介绍 1.3.2 步骤 1.4 KNN 算法总结 sklearn转换器和估算器 KNN算法 模型选择和调优 朴素贝叶斯算法 决策树 随机森林 1.3.1 数据集介绍 1.3.2 步骤 获取数据 数据集划分 特征工程   - 标准

    2024年02月22日
    浏览(34)
  • 机器学习-k-近邻算法

    k-近邻算法是一种常用的监督学习算法,用于分类和回归任务。其思想为:如果一个样本在特征空间中的k个最近邻居中的大多数属于某个类别,那么该样本也属于这个类别(对于分类任务)或者可以通过这些最近邻居的标签来估计其目标值(对于回归任务)。 通过计算两点之

    2024年02月09日
    浏览(25)
  • k近邻算法原理

    k近邻算法是一种基本的分类与回归方法,其主要思想是基于样本之间的距离进行分类或回归预测。即对未标记样本的类别,由距离其最近的k个邻居投票来决定属于哪个类别。具体而言,k近邻算法将新的样本点与训练数据集中的样本进行距离度量,并选择与该样本距离最近的

    2024年02月03日
    浏览(22)
  • Robbins-Monro(RM)算法【随机近似】

    主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实践—GridWorld 第六章 蒙特卡洛方法 第七章 Ro

    2024年04月23日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包