哈希学习简介

2023-11-04

一、背景介绍

1、首先介绍一下最近邻搜索:最近邻搜索问题,也叫相似性搜索,近似搜索,是从给定数据库中找到里查询点最近的点集的问题。
这里写图片描述

给定一个点集,以及一个查询点q,需要找到离q最近的点的集合;在大规模高维度空间的情况下,这个问题就变得非常难,而且大多数算法计算量极大,复杂度很高; 而且一般用近似的最邻近搜索代替;哈希就是解决上述这类问题的主要方法;

二、哈希学习的目的及分类

哈希学习的目的:通过机器学习机制将数据映射成简洁的二进制串的形式, 同时使得哈希码尽可能地保持原空间中的近邻关系, 即保相似性.(这一点很重要,如果失去了原来的相似性,那么哈希学习也就变得没有意义了)
以下面这幅图为例,原始数据是三幅图像,其中后面这两幅相似度比较高,也就是说在原始空间中从语义层次的距离或者欧氏距离都比较近,映射为哈希码之后,距离也应该更近。
这里写图片描述
分类:关于哈希的方法主要分为两大类:1、第一种的代表是局部敏感哈希,这种方法主要是人工设计或者随机生成哈希函数,是一种数据独立的方法;
2、第二种是哈希学习的方法,希望从数据中自动学习出哈希函数,是一种数据依赖的方法;也是现在主流的方法;
显然第二种具有数据依赖性,是一种更有适应性的方法。

三、哈希学习的一般步骤

第一步,:先对原空间的样本进行降维, 得到1个低维空间的实数向量表示;
第二步:对得到的实数向量进行量化(即离散化)得到二进制哈希码;

对于第一步如何降维,我们这里不再做介绍,下面主要介绍一下量化的方法。

四、量化方法

目的:对于一个低维向量把它映射为一个二进制哈希码,并且尽可能的保持原来的相似性。
1、SBQ
介绍:对于给出向量的每一个维度的数值,我们设定一个阈值。然后根据这个维度数值的情况与阈值作比较,确定其映射的二进制数是2还是1。之后我们把每个维度映射出的二进制数串起来组成哈希码。
这里写图片描述
举例:
比如某一向量为[4,3,7,8],我们设定阈值为5,并且>=5为1,反之为0.
那么该向量对应的二进制哈希码为0011.

相似性的衡量方法:对于映射好的哈希码如何衡量他们之间的相似度呢?我们采用汉明距离来衡量(二进制对应位不同的个数,比如0011与0000的汉明距离是2)

2、HQ
跟SBQ比较类似,是将每一个维度划分为四个区域,使用三个阈值和两位二进制码来编码;
这里写图片描述

相似性的衡量方法:也是采用汉明距离来衡量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哈希学习简介 的相关文章

  • 分布式数据库资料

    Hadoop是很多组件的集合 主要包括但不限于MapReduce HDFS HBase ZooKeeper MapReduce模仿了Google MapReduce HDFS模仿了Google File System HBase模仿了Goo

随机推荐

  • python项目2to3方案预研

    目录 官方工具2to3 工具安装 参数解释 基本使用 工具缺陷 future 工具安装 参数解释 基本使用 工具缺陷 python modernize 工具安装 参数解释 基本使用 工具缺陷 pyupgrade 工具安装 参数解释 基本使用
  • Unity 3D期末大作业--背包系统

    Unity游戏背包系统的实现 一 项目概述 1 功能描述 该部分主要实现了游戏中玩家在个人背包和游戏角色之间切换装备 能够从背包中将装备装到游戏角色上也能够将游戏角色的装备卸下放入背包 卸下装备放入背包 将背包中装备赋给游戏角色 2 实现思
  • 图像阈值分割方法论文与代码【matlab】

    一 算法流程 图像是事物的视觉表现 也是人类接收信息 传递信息的一种重要途径 是人类生活与生产过程中最高效的信息获取与交流的方式之一 图像分割是一种帮助人类获取有效知识的重要方法 其主要是将目标图像处理成多个具有不同性质的区域并提取出对用户
  • base64编码相关-btoa和atob及中文乱码报错问题

    base64编码相关 btoa和atob及中文乱码报错问题 最近在做二进制编码相关的东西 关于Base64的编码解码问题 遇到了一些问题 btoa btoa函数全称就是Binary to ASCII 在js中用于Base64编码 let e
  • 图片处理二--使用OpenCV库实现图片膨胀腐蚀

    1 什么是形态学操作 形态学操作就是基于形状的一系列图像处理操作 通过将结构元素作用于输入图像来产生输出图像 最基本的形态学操作有二 腐蚀与膨胀 Erosion 与 Dilation 他们的运用广泛 消除噪声 分割独立的图像元素 以及连接
  • Maven的介绍及安装

    Maven 什么是Maven 在美国是一个口语化的词 代表专家 内行的意思 一个对Maven比较正式的定义是这么说的 Maven是一个项目管理工具 它包含了一个项目对象模型 POM Project Object Model 一组标准集合 一
  • 基于 Vue 和 SpringBoot 的医院门诊预约挂号系统源代码+数据库

    基于 Vue 和 SpringBoot 的医院门诊预约挂号系统 完整代码下载地址 基于 Vue 和 SpringBoot 的医院门诊预约挂号系统源代码 数据库 软件简介 本软件是 基于 Vue 的医院门诊预约挂号管理系统 主要包含数据中心
  • 故障注入测试(Fault Injection Test)方法

    这周新一篇技术文章来袭 今天要分享的技术文章是 故障注入测试 Fault Injection Test 方法 过去只被归类为机械装置的汽车 现在变成了包括许多电子控制装置在内的尖端产品 最近上市的汽车上基本上都搭载了100个以上的控制器 由
  • 【pycharm】Cannot find reference ‘XXX‘ in ‘__init__.py‘ 解决办法

    Cannot find reference XXX in init py 解决办法 File gt Editor gt Inspections 把Unresolved references的 取消掉
  • C#中实现简单文件读写(附源代码)

    主要代码 using System IO Read File private void button1 Click object sender System EventArgs e try openFileDialog1 Filter tx
  • 从一个类中访问另一个类中的私有方法

    一般情况下我们无法在一个类中去访问另外一个类中非公有的方法 但有时候我们确实需要调用另外一个类中的私有方法 该怎么办呢 有两种方法可以解决 一个是利用反射 另一个就是用委托 我们可以看个Demo 1 namespace ReflectTes
  • Lua快速入门(1)

    Lua快速入门 LuatOS 在线模拟 lua在线测试 1 输出函数 print Hello World 2 变量 2 1 全局变量 局部变量和nil 通常定义的变量都为全局变量 加上local仅能在当前作用域下生效 没被赋值的变量都为ni
  • CSS——层次选择器

    文章目录 1 后代选择器 2 子选择器 3 向下选择器 4 通用选择器 1 后代选择器 在某个标签后面的所有子标签 后代选择器 body p background 03f39f 2 子选择器 后面一个 body gt p backgroun
  • QListWidget和QListWidgetItem的简单使用

    QListWidget可以显示一个清单 清单中的每个项目是QListWidgetItem的一个实例 每个项目可以通过QListWidgetItem来操作 可以通过QListWidgetItem来设置每个项目的图像与文字 下面说明3个例子 一
  • 美国数学家维纳智力早熟,11岁就上了大学,他曾在1935-1936年 应邀参加中国清华大学讲学,一次他参加某个重要会议,年轻的脸孔 引人注意,于是有人询问他的年龄,他回答说“我年龄的立方是个4位数

    package day01 import java util HashSet import java util Set 标题 猜年龄 美国数学家维纳智力早熟 11岁就上了大学 他曾在1935 1936年 应邀参加中国清华大学讲学 一次他参加
  • python __file__ 内置属性

    file 内置属性可以获取当前方法所在文件的路径 import random print random file usr lib python3 8 random py 由于import导入的时候是先判断当前路径下有没有import的文件
  • 计算方法-数值积分与微分

    文章目录 一 数值积分的基本思想 代数精度 二 插值型求积公式 插值型求积公式的基本思想 求积公式 插值型求积公式的代数精度 问题 三 牛顿 柯特斯求积公式 牛顿 柯特斯求积公式的引出 已知条件 公式 为什么提出公式中的 b a 柯特斯系数
  • Python——tensorflow2.8猫狗识别

    很早就想做这个猫狗识别的程序 所以跟着唐宇迪教程做了一遍 中间部分参数做了修改 后面预测部分用自己的猫猫图片做了预测 虽然有点问题 但最后还是可以识别出来 问题不大 下面对程序几个部分进行讲解 最后会附上整个程序的附件 一 数据处理 整个训
  • 三步使用bert搭建文本分类器

    不说废话 直接三步搭建最简单的bert文本多标签分类器 1 去官网https github com google research bert 下载一个bert模型 2 搭建bert service https github com hanx
  • 哈希学习简介

    一 背景介绍 1 首先介绍一下最近邻搜索 最近邻搜索问题 也叫相似性搜索 近似搜索 是从给定数据库中找到里查询点最近的点集的问题 给定一个点集 以及一个查询点q 需要找到离q最近的点的集合 在大规模高维度空间的情况下 这个问题就变得非常难