Python和C++行人轨迹预推算和空间机器人多传感融合双图算法模型

news2024/9/20 14:56:18

🎯要点

🎯双图神经网络模型:最大后验推理和线性纠错码解码器 | 🎯重复结构和过约束问题超图推理模型 | 🎯无向图模型变量概率计算、和积消息传播图结构计算、隐马尔可夫模型图结构计算、矩阵图结构计算、图结构学习 | 🎯里程计和全球导航卫星系统空间机器人周身感应三维姿态图算法模型 | 🎯共轭梯度算法手机端行人轨迹(航位)预先推算图模型

📜图模型用例

📜Python和C++全球导航卫星系统和机器人姿态触觉感知二分图算法

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python最大后验

在贝叶斯统计中,最大后验概率估计是未知量的估计,等于后验分布的众数。最大后验概率可用于根据经验数据获得未观测量的点估计。它与最大似然估计方法密切相关,但采用增强优化目标,该目标将先验分布(量化通过对相关事件的先验知识获得的额外信息)与想要估计的数量相结合。因此,最大后验概率估计可以看作是最大似然估计的正则化。

假设我们要根据观测值 x x x 来估计未观测到的总体参数 θ \theta θ。令 f f f x x x的抽样分布,因此 f ( x ∣ θ ) f(x \mid \theta) f(xθ)是当基础总体参数为 θ \theta θ x x x的概率。然后函数:
θ ↦ f ( x ∣ θ ) \theta \mapsto f(x \mid \theta) θf(xθ)
称为似然函数,估计为:
θ ^ M L E ( x ) = arg ⁡ max ⁡ f ( x ∣ θ ) \hat{\theta}_{ MLE }(x)=\arg \max f(x \mid \theta) θ^MLE(x)=argmaxf(xθ)
θ \theta θ 的最大似然估计。

现在假设存在 θ \theta θ 上的先验分布 g g g。这允许我们将 θ \theta θ 视为贝叶斯统计中的随机变量。我们可以使用贝叶斯定理计算 θ \theta θ 的后验分布:
θ ↦ f ( θ ∣ x ) = f ( x ∣ θ ) g ( θ ) ∫ Θ f ( x ∣ ϑ ) g ( ϑ ) d ϑ \theta \mapsto f(\theta \mid x)=\frac{f(x \mid \theta) g(\theta)}{\int_{\Theta} f(x \mid \vartheta) g(\vartheta) d \vartheta} θf(θx)=Θf(xϑ)g(ϑ)dϑf(xθ)g(θ)
其中 g g g θ \theta θ的密度函数, Θ \Theta Θ g g g​的定义域。

然后,最大后验估计方法将 θ \theta θ 估计为该随机变量的后验分布众数:
θ ^ MAP  ( x ) = arg ⁡ max ⁡ θ f ( θ ∣ x ) = arg ⁡ max ⁡ θ f ( x ∣ θ ) g ( θ ) ∫ Θ f ( x ∣ ϑ ) g ( ϑ ) d ϑ = arg ⁡ max ⁡ θ f ( x ∣ θ ) g ( θ ) . \begin{aligned} \hat{\theta}_{\text {MAP }}(x) & =\underset{\theta}{\arg \max } f(\theta \mid x) \\ & =\underset{\theta}{\arg \max } \frac{f(x \mid \theta) g(\theta)}{\int_{\Theta} f(x \mid \vartheta) g(\vartheta) d \vartheta} \\ & =\underset{\theta}{\arg \max } f(x \mid \theta) g(\theta) . \end{aligned} θ^MAP (x)=θargmaxf(θx)=θargmaxΘf(xϑ)g(ϑ)dϑf(xθ)g(θ)=θargmaxf(xθ)g(θ).

后验分布的分母(所谓的边际似然)始终为正,并且不依赖于 θ \theta θ,因此在优化中不起作用。观察到,当先验 g g g 均匀时(即 g g g 是常数函数), θ \theta θ 的最大后验概率估计与最大似然估计一致。

我们可以使用任何优化技术,可能是微积分,最好是梯度上升,以计算参数的最优值,该最优值将最大化后验,即 θ \theta θ​​参数现在也将伴随先验置信和似然性,并且会比 最大似然估计更好。

为了继续执行最大后验概率代码,我们将以给定相关数据点的帕累托分布为例,然后通过最大化后验概率来估计参数的最佳值,其中似然函数是帕累托,先验函数是正态分布,即 g ( α ) g(\alpha) g(α),因此解 α \alpha α 上的 argmax 可以最大化后验概率

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fmin
from scipy.stats import norm

data = np.array([
    1.677, 3.812, 1.463, 2.641, 1.256, 1.678, 1.157, 1.146, 1.323, 1.029,
    1.238, 1.018, 1.171, 1.123, 1.074, 1.652, 1.873, 1.314, 1.309, 3.325,
    1.045, 2.271, 1.305, 1.277, 1.114, 1.391, 3.728, 1.405, 1.054, 2.789,
    1.019, 1.218, 1.033, 1.362, 1.058, 2.037, 1.171, 1.457, 1.518, 1.117,
    1.153, 2.257, 1.022, 1.839, 1.706, 1.139, 1.501, 1.238, 2.53, 1.414,
    1.064, 1.097, 1.261, 1.784, 1.196, 1.169, 2.101, 1.132, 1.193, 1.239,
    1.514, 2.764, 1.853, 1.267, 1.015, 1.789, 1.099, 1.253, 1.418, 1.494,
    4.015, 1.459, 2.175, 2.044, 1.551, 4.095, 1.396, 1.262, 1.351, 1.121,
    1.196, 1.391, 1.305, 1.141, 1.157, 1.155, 1.261, 1.048, 1.918, 1.889,
    1.068, 1.811, 1.198, 1.361, 1.261, 4.093, 2.925, 1.133, 1.573
])

def pareto_log_likelihood(alpha, data):
    if alpha <= 0:
        return -np.inf
    n = len(data)
    log_likelihood = n * np.log(alpha) - (alpha + 1) * np.sum(np.log(data))
    return log_likelihood

def log_prior(alpha):
    mean = 2.5
    std = 3
    log_prior_prob = norm.logpdf(alpha, loc=mean, scale=std)
    return log_prior_prob



initial_guess = 2
alpha_map = fmin(lambda alpha: -log_posterior(alpha, data), x0=[initial_guess], disp=False)[0]

print("MAP estimate for alpha:", alpha_map)

alpha_values = np.linspace(0.1, 10, 100)
log_posterior_values = [log_posterior(alpha, data) for alpha in alpha_values]

plt.figure(figsize=(10, 6))
plt.plot(alpha_values, log_posterior_values, label='Log-Posterior (MAP) Function')
plt.axvline(alpha_map, color='r', linestyle='--', label=f'MAP estimate (α={alpha_map:.2f})')
plt.scatter([alpha_map], [log_posterior(alpha_map, data)], color='red')

plt.title('Log-Posterior (MAP) Function for Different α values')
plt.xlabel('α (Alpha)')
plt.ylabel('Log-Posterior')
plt.legend()
plt.grid(True)
plt.show()

point_right:参阅、更新:计算思维 | 亚图跨际

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库MySQL学习第一天|了解数据库、数据类型、存储引擎、sql语言

文章目录 了解数据库什么是数据库数据库分类MySQL概念 数据类型整数类型小数类型日期类型文本,二进制类型 存储引擎种类引擎选择 sql主键和外键主键设计原则选取策略 外键索引 表与表的关联在语法上关联关系sql约束sql注入聚合函数常见查询关键字 了解数据库 什么是数据库 概…

网络安全协议系列

目录 一、安全协议的引入 1.TCP/IP协议族中普通协议的安全缺陷 1.信息泄露 2.信息篡改 3.身份伪装 4.行为否认 2.网络安全需求 二、网络安全协议的定义 三、构建网络安全协议所需的组件 1.加密与解密 2.消息摘要 3.消息验证码 4.数字签名 5.密钥管理 1.建立共享…

关于C#多个文本框输入的问题

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

堆排序基本思想以及代码实现

1、基本思想 堆排序是利用堆这种数据结构而设计的一种排序算法&#xff0c;堆排序是一种选择排序&#xff0c;它的最坏&#xff0c;最好&#xff0c;平均时间复杂度均为O(n*logn)&#xff0c;它也是不稳定排序。 堆是具有以下性质的完全二叉树&#xff1a;每个结点的值都大于或…

Vue3路由如何携带 # 路由模式选择

vue3中创建路由的时候&#xff0c;有两种可选模型 hash模式、HTML5模式、服务端渲染模式 createWebHashHistory&#xff08;hash模式&#xff09; const router createRouter({// hash模式&#xff0c;带 # 号history: createWebHashHistory(), //函数可携带参数&#xff0c;…

C++11 容器emplace方法刨析

如果是直接插入对象 push_back()和emplace_back()没有区别但如果直接传入构造函数所需参数&#xff0c;emplace_back()会直接在容器底层构造对象&#xff0c;省去了调用拷贝构造或者移动构造的过程 class Test { public:Test(int a){cout<<"Test(int)"<<…

使用Web控制端和轻量级客户端构建的开放Web应用防火墙(OpenWAF)

目录 1. 简介2. 项目结构3. Web控制端3.1. 功能概述3.2. 审计&#xff08;攻击&#xff09;日志查看3.3. 多个WAF的集中监控和操作3.4. 使用socket进行封装3.5. 日志的高效存储和检索&#xff08;Redis&#xff09; 4. 轻量级客户端4.1. 功能概述4.2. 对Web程序的防护4.3. 网络…

36.UART(通用异步收发传输器)-RS232(3)

&#xff08;1&#xff09;串口发送模块visio视图&#xff1a; &#xff08;2&#xff09;串口发送模块Verilog代码: /* 常见波特率&#xff1a; 4800、9600、14400、115200 在系统时钟为50MHz时&#xff0c;对应计数为&#xff1a; (1/4800) * 10^9 /20 -1 10416 …

鸿蒙语言基础类库:【@system.vibrator (振动)】

振动 说明&#xff1a; 本模块首批接口从API version 4开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。从API Version 8开始&#xff0c;该接口不再维护&#xff0c;推荐使用新接口[ohos.vibrator]。该功能使用需要对应硬件支持&#xff0c;仅支持…

学生信息管理系统-优化版

springbootthymeleafmybatis 记录一下闲来无事&#xff0c;将之前做的1.0页面优化。 一、【管理员】首页 1、增加了【批量删除】、【导出学生信息】、【分页】、【统计及格率、平均分、优秀率】等功能。 2、将页面样式优化了一下&#xff0c;做的好看些 原来&#xff1a; 现…

.NET C# 配置 Options

.NET C# 配置 Options 使用 options 模式可以带来许多好处&#xff0c;包括清晰的配置管理、类型安全、易于测试和灵活性。但在使用过程中&#xff0c;也需要注意配置复杂性、性能开销和依赖框架等问题。通过合理设计和使用&#xff0c;可以充分发挥 options 模式的优势&#…

【链表】算法题(二) ----- 力扣/牛客

一、链表的回文结构 思路&#xff1a; 找到链表的中间节点&#xff0c;然后逆置链表的后半部分&#xff0c;再一一遍历链表的前半部分和后半部分&#xff0c;判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…

【JavaScript 算法】图的遍历:理解图的结构

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、深度优先搜索&#xff08;DFS&#xff09;深度优先搜索的步骤深度优先搜索的JavaScript实现 二、广度优先搜索&#xff08;BFS&#xff09;广度优先搜索的步骤 三、应用场景四、总结 图的遍历是图论中的基本操作之一&am…

安卓 mvp 的架构的详细介绍

MVP 架构介绍 MVP&#xff08;Model-View-Presenter&#xff09;是一种软件架构模式&#xff0c;常用于构建用户界面&#xff08;UI&#xff09;。它将应用程序的逻辑划分为三个部分&#xff1a;Model、View 和 Presenter。MVP 的主要目标是分离视图和业务逻辑&#xff0c;使代…

ECU通讯:CAN总线仿真测试

01.ECU 在软件定义汽车的大背景下&#xff0c;几乎每一个汽车功能都需要依靠ECU&#xff08;Electronic Control Unit&#xff0c;电子控制单元&#xff09;来实现&#xff1a;有些功能靠ECU独立实现&#xff0c;有些功能则需要多个ECU联合实现。总体来说&#xff0c;ECU绝大多…

解决SonarQube中Vue项目中deep选择器报错的问题

1. 前言 当使用SonarQube对Vue项目进行代码质量审查时&#xff0c;可能会遭遇因Vue特有的deep选择器&#xff08;旨在实现样式深度穿透&#xff09;而触发的错误或警告。由于SonarQube默认并不识别这一Vue特有的语法&#xff0c;这些错误报告可能会成为审查过程中的干扰项。为了…

Mysql sql技巧与优化

1、解决mysql同时更新、查询问题 2、控制查询优化 hint 3、 优化 特定类型的查 优化 COUNT() 查询 使用 近似值 业务能接受近似值的话&#xff0c;使用explain拿到近似值 优化关联查询 优化子查询 4、优化group by和distinct 优化GROUP BY WITH ROLLUP 5、优化 limit分页 其他…

【MySQL-19】一文带你了解存储函数

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

Richteck立锜科技电源管理芯片简介及器件选择指南

一、电源管理简介 电源管理组件的选择和应用本身的电源输入和输出条件是高度关联的。 输入电源是交流或直流&#xff1f;需求的输出电压比输入电压高或是低&#xff1f;负载电流多大&#xff1f;系统是否对噪讯非常敏感&#xff1f;也许系统需要的是恒流而不是稳压 (例如 LED…

应届生软件测试面经_一名应届生的软件测试面试题目

1.你为什么选择软件测试行业 因为之前有了解软件测试这个行业&#xff0c;觉得他的发展前景很好&#xff0c; 2.根据你以前的项目经验描述一下软件开发、测试过程&#xff0c;由那些角色负责&#xff0c;你做什么 要有架构师、开发经理、测试经理、程序员、测试员。我在里面…