深度学习理论方法:相似度计算

       深度学习理论中的相似度计算,是衡量两个输入之间相似性或关联性的重要方法。它常用于比较输入是否相似或相关,广泛应用于推荐系统、图像识别、自然语言处理等领域。

       通过相似度计算,我们能更好地了解数据的内在结构和关系,从而进行更高效的数据分析和处理。例如,在自然语言处理中,利用相似度计算可以比较两个文本的语义相似度,进而实现文本分类、聚类、情感分析等任务。而在图像识别领域,借助相似度计算可以比较两个图像的相似程度,从而实现图像检索、人脸识别等任务。相似度的是计算方法很多,选用常用的两种进行学习,即欧几里得相似度和余弦相似度计算。

 

基于欧几里得距离的相似度计算

欧几里得距离是常用计算距离的公式,它用来表示三维空间中两个点的真实距离。在相似度计算中,不同的物品或者用户可以将其定义为不同的坐标点,而特定目标定位坐标原点,使用欧几里得距离计算两个点之间的绝对距离。公式如下:

 

d = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

 

由于在欧几里得相似度计算中,最终数值的大小与相似度成反比,因此在实际中常常使用欧几里得距离的倒数作为相似度值,即 \frac{1}{d}+1 作为近似值

示例
表1  用户对物品评分表
物品1物品2物品3物品4
用户11131
用户21232
用户32211

如上图所示,如果需要计算用户1和其他用户之间的相似度,通过欧几里得距离公式可以得出:

用户1、用户2: 

d_{12} = \sqrt{(1-1)^2+(1-2)^2+(3-3)^2+(1-3)^2}\approx 1.414

 

 近似值 \frac{1}{d_{12}}+1\approx 1.7

 

 用户1、用户3:

d_{13} = \sqrt{(1-2)^2+(1-2)^2+(3-1)^2+(1-1)^2}\approx 2.287

 

 近似值 \frac{1}{d_{13}}+1\approx 1.43 

 

从以上结果可以看出,d12分值大于d13的分值,因此可以得出用户2与用户1更加相似。 

 

基于余弦角度的相似度计算

       

余弦相似度

       与欧几里得距离相类似,余弦相似度也将特定目标作为坐标上的点(不是原点),与特定的被计算目标进行夹角计算。从上图可以明显看出,两条直线分别从坐标原点出发,引出一定的角度,如果两个目标较为相似,其形成夹角较小,反之夹角较大。因此在使用余弦度量的相似度计算中可以用夹角的大小反映目标之间的相似性。公式如下:

  

cos@=\frac{\sum x_i\times y_i}{\sqrt{\sum x^2_i\times \sqrt{\sum y^2_i}}} 

从公式可以看出,余弦值一般在[-1,1]之间,这个值的大小同时与余弦夹角的大小成正比。

如果用余弦相似度计算表1中用户1与用户2之间相似性:

 

d_{12} = \frac{1\times 1+1\times 2+3\times3+1\times2}{\sqrt{1^2+1^2+3^2+1^2}\times\sqrt{1^2+2^2+3^2+2^2}}=\frac{14}{\sqrt{12}\times \sqrt{18}}\approx 0.789

 

用户1与用户3之间的相似性:

 d_{13} = \frac{1\times 2+1\times 2+3\times1+1\times1}{\sqrt{1^2+1^2+3^2+1^2}\times\sqrt{2^2+2^2+1^2+1^2}}=\frac{8}{\sqrt{12}\times \sqrt{10}}\approx 0.344 

 

从以上计算可得,用户2相对于用户3,与用户1更为相似。 

 

总结 

欧几里得相似度与余弦相似度


       欧几里得相似度和余弦相似度是两种常用的衡量目标之间相似性的方法。欧几里得相似度以目标之间的绝对距离作为衡量标准,注重目标之间的差异,与目标在空间中的位置直接相关。而余弦相似度则以目标之间的夹角大小作为衡量标准,更加表现在前进趋势的差异。

       欧几里得相似度可以用来分析不同目标的绝对差异,从而判断它们之间的相似度和差异情况。它适用于需要关注目标之间的具体差异的情况。

      余弦相似度则更注重目标从方向趋势上的区分,对特定坐标不敏感。它适用于需要关注目标的整体趋势和方向的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/319057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 第1章 HTML5+CSS3初体验 项目1-1 三栏布局页面

项目展示 三栏布局是一种常用的网页布局结构。 除了头部区域、底部区域外,中间的区域(主体区域)划分成了三个栏目,分别是左侧边栏、内容区域和右侧边栏,这三个栏目就构成了三栏布局。当浏览器的宽度发声变化时&#x…

计算机网络——第三层:网络层

1. IP数据报 1.1 IPV4数据报 1.1.1 IPv4数据报的结构 如图按照RFC 791规范显示了一个IPv4数据包头部的不同字段 IPv4头部通常包括以下部分: 1.1.1.1 版本(Version) 指明了IP协议的版本,IPv4表示为4。 1.1.1.2 头部长度&#x…

MySQL基础应用之DDL、DCL、DML、DQL

文章目录 前言一、sql基础应用二、列、表属性1、列属性2、表属性 三、sql学习记录---DDL应用之数据库定义语言1、建库规范2、创建库并设置字符集、校验规则3、查看数据库4、删除数据库5、修改数据库字符集 四、sql学习记录---DDL应用之表定义语言1、建表规范2、建表3、查询建表…

远程开发之端口转发

远程开发之端口转发 涉及的软件forwarded port 通过端口转发,实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段,填需要转发的IP:PORT,即可转发远程服务器中的内网端口到本…

电脑误清空回收站重要文件不见了?请尝试这12个最好回收站恢复工具。

作为计算机用户,我们都知道回收站的重要性。它是帮助我们临时存储已删除文件的重要工具。但是,如果您不小心清空了回收站或从中删除了一些重要文件怎么办?不用担心,市场上有许多回收站恢复工具可以帮助您找回已删除的数据。在本文…

KEI5许可证没到期,编译却出现Error: C9555E: Failed to check out a license.问题解决

一、编译出现如下报错 二、检查一下许可证 三、许可证在许可日期内,故应该不是许可证的问题 四、检查一下编译器,我用的是这个,这几个编译器的区别其实我不太明白,但我把问题解决是选的这个 五、找到编译器的路径,去复…

【k8s】Kubernetes 声明式 API、命令式

1. 资源管理方式: 1>. 命令式对象管理∶直接使用命令去操作kubernetes资源 kubectl run nginx-pod --imagenginx:1.17.1 --port802>. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源 kubectl create/patch -f nginx-pod.yaml3>. 声明式对…

即将推出的 OpenWrt One/AP-24.XY:OpenWrt 和 Banana Pi 合作路由器板

OpenWrt开发人员正在与Banana Pi合作开发OpenWrt One/AP-24.XY路由器板。OpenWrt 是一个轻量级嵌入式 Linux 操作系统,支持近 1,800 个路由器和其他设备。然而,这将是第一块由 OpenWrt 直接开发的路由器板。 该主板将基于 MediaTek MT7981B (Filogic 82…

详解HTTPS加密工作过程

🚗🚗🚗今天给大家分享的是HTTPS加密的工作过程。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈…

【CAN】Mailbox/Hardware Object/HRH/HTH概念介绍

文章目录 1. 前言2. MCMCAN硬件RAM缓存区2.1 RAM缓存区分配2.2 发送缓存区2.3 接收缓存区 3. MailBox&#xff0c;HWObject&#xff0c;HRH&#xff0c;HTH概念1. MailBox2. HWObject3. HRH4. HTH5. 对应关系 >>返回总目录<< 1. 前言 Aurix TC3xx系列MCU中的MCMC…

Gitlab中的CICD的使用方法

一、CI/CD执行机制 二、离线安装gitlab-runner 下载相应版本的gitlab-runner &#xff08;下载地址&#xff1a;https://packages.gitlab.com/runner/gitlab-runner&#xff09; dpkg -i gitlab-runner_12.8.0_amd64.debgitlab-runner register第3步中需要的信息可从下图所示…

网页设计与网站建设作业html+css+js,一个简易的游戏官网网页

一个简易的游戏网页 浏览器查看 目录结构 部分代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&…

隧道应用1-netsh端口映射内网

测试环境信息 物理机内网 IP &#xff1a;192.168.249.1 win7 虚拟机 IP &#xff1a; 192.168.249.131 win10 虚拟机 IP &#xff1a;192.168.249.129 我们在 win7 上配置 netsh 端口映射&#xff0c;将 win7 作为跳板机&#xff0c;进而访问到 win10 的服务。 端口映射与…

算法每日一题: 删除排序列表中的重复元素 | 链表的删除

大家好&#xff0c;我是星恒 今天给大家带来的是一道简单的链表删除题&#xff0c;题目很简单&#xff0c;不过可以帮助我们很好的复习链表的删除&#xff0c;尤其适合基础薄弱的友友们学习 ~ 题目&#xff1a;leetcode 83 给定一个已排序的链表的头 head &#xff0c; 删除所有…

【每日一题】删除排序链表中的重复元素

文章目录 Tag题目来源解题思路方法一&#xff1a;比较相邻两节点 写在最后 Tag 【遍历】【链表】【2024-01-14】 题目来源 83. 删除排序链表中的重复元素 解题思路 方法一&#xff1a;比较相邻两节点 思路 比较两个相邻的节点&#xff0c;如果下一个节点值和当前节点值一样…

数据库练习题

素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

Dockerfile的ADD和COPY

文章目录 环境ADD规则校验远程文件checksum添加Git仓库添加私有Git仓库ADD --link COPYCOPY --parent 使用ADD还是COPY&#xff1f;参考 环境 RHEL 9.3Docker Community 24.0.7 ADD ADD 指令把 <src> 的文件、目录、或URL链接的文件复制到 <dest> 。 ADD 有两种…

Makefile编译原理 make和makefile

一.什么是makefile 如图所示&#xff0c;一个工程中的源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c; Makefile 文件定义了一系列的规则来指定哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff…

Python中如何简化if...else...语句

一、引言 我们通常在Python中采用if...else..语句对结果进行判断&#xff0c;根据条件来返回不同的结果&#xff0c;如下面的例子。这段代码是一个简单的Python代码片段&#xff0c;让用户输入姓名并将其赋值给变量user_input。我们能不能把这几行代码进行简化&#xff0c;优化…

JS数组函数 reduce() 的用法—包含基础、进阶、高阶用法

目录 一、语法剖析 二、实例讲解 1. 求数组项之和 2. 求数组项最大值 3. 数组去重 三、其他相关方法 1. reduceRight() 2. forEach()、map()、every()、some()和filter() 四、重点总结 先看w3c语法 ✔ 常见用法 数组求和 数组最大值 ✔ 进阶用法 数组对象中的用…