Python精神病算法和自我认知异类数学模型

news2024/7/31 13:15:23

🎯要点

🎯空间不确定性和动态相互作用自我认知异类模型 | 🎯精神病神经元算法推理 | 🎯集体信念催化个人行动力数学模型 | 🎯物种基因进化关系网络算法 | 🎯电路噪声低功耗容错解码算法

📜和-积消息传递算法用例

📜MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

🍪语言内容分比

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

🍇Python贝叶斯网络消息传递算法

首先,假设我们有一个多叉树,它是没有循环的图。例如,我们有 4 个变量“下雨”、“洒水器”、“福尔摩斯”和“华生”,有向边分别为“下雨”到“福尔摩斯”、“下雨”到“华生”和“洒水器”到“福尔摩斯”。贝叶斯网络模拟了福尔摩斯和华生是邻居的故事。一天早上,福尔摩斯走出家门,发现草地湿了。要么是下雨了,要么是他忘了关洒水器。于是他去找邻居华生,看看他的草地是否也湿了。当他看到草地确实湿了时,他很确定他没有忘了洒水器,而是下雨了。因此,信息从华生流向洒水器。这种信息流由贝叶斯网络中的消息传递算法建模。

可能性包含有关观察的信息,例如,福尔摩斯草地在未观察的情况下的可能性为 1(湿)和 1(不湿)。如果观察到湿草,可能性变为 1(湿)和 0(不湿)。这些单位向量未归一化。
L ( X ) = ∏ K λ ( K → X ) L(X)=\prod_K \lambda_{(K \rightarrow X)} L(X)=Kλ(KX)
似然函数基本上是变量子级发送的所有传入消息的乘积。它返回一个似然向量,其中包含变量每个可能值的似然值。对于“下雨”,它的基数为 2,代表“是”和“否”两种状态。

如果某个变量没有子节点(因为它是图中的叶节点且未被观察到),则其似然向量将是一个单位向量,其所有可能值均为 1,例如,由于我们一开始没有观察到福尔摩斯的草,因此我们将其似然向量分别设置为 [1, 1],代表“不湿”和“湿”。

Python伪码表示:

def likelihood(self):
    incoming_children_messages = np.array([
        c.message_to_parent(self) for c in self.children
    ])
    return incoming_children_messages.prod(axis=0)

先验是某些事件在开始时就已经知道的概率,例如,下雨的概率为 20%。如果先验未知,则使用以下公式进行计算。先验会给出相应变量的无条件概率。因此,我们还需要包括条件概率。
π ( X ) = ∑ W P ( X ∣ W ) ∏ K ϕ ( K → X ) \pi(X)=\sum_W P(X \mid W) \prod_K \phi_{(K \rightarrow X)} π(X)=WP(XW)Kϕ(KX)
我们的例子中还给出了条件概率。公式中的“P(X|W)”对应于此。此外,我们需要使用来自所有父方的传入消息,即公式中的“ϕ”。索引显示消息方向 - 从父“K”到当前变量“X”。使用这两个部分(条件概率和来自父的消息)是因为它们都提供有关变量概率的信息。一方面,我们看到给定某些父值的概率,另一方面我们看到这些父的消息。如果没有观察,这些信息对应于父的先验。因此,这里计算“X”的边际并摆脱条件变量。

Python伪码表示:

def priors(self):
     parents_messages = [
         p.message_to_child(self) for p in self.parents
     ]
     return reduce(np.dot, [self.m.transpose()]+parents_messages)

信念是我们观察到某些事件后的后验概率。它基本上是可能性和先验的标准化产物。
β ( X ) = α L ( X ) π ( X ) \beta(X)=\alpha L(X) \pi(X) β(X)=αL(X)π(X)
Python伪码表示:

def belief(self):
     unnormalized = self.likelihood() * self.priors()
     normalized = unnormalized/unnormalized.sum()
     return normalized

为了计算变量的可能性,我们需要考虑来自变量子项的所有传入消息,这些消息由似然函数中的 lambda 表示。
λ ( X → K ) = ∑ x ∈ X L ( x ) ∑ k ∈ K ; k ∈ u P ( x ∣ u ) ∏ i ≠ k ϕ ( Y → X ) i \lambda_{(X \rightarrow K)}=\sum_{x \in X} L(x) \sum_{k \in K ; k \in u} P(x \mid u) \prod_{i \neq k} \phi_{(Y \rightarrow X) i} λ(XK)=xXL(x)kK;kuP(xu)i=kϕ(YX)i
这个公式相当混乱,但看一些 Python 代码会更容易理解。一般来说,我们从 P(X|U) 中边缘化 K,而 X 是发送者(子节点),K 是接收者(父节点),U 是 X 的所有父节点,包括 K。如果我们想象一个 X 的条件概率表,对于每个条目,我们取父节点的相应激活,并将相应的传入消息 ϕ 乘以不包含 K 本身的数值。然后,我们将该值乘以 X 的似然值。最后,我们将所有 K 值相同的值相加,剩下向量是从 X 到 K 的消息。

Python伪码表示:

def message_to_parent(self, parent):
    likelihood = self.likelihood()
    parents_priors = np.array([
        p.message_to_child(self) 
            for p in self.parents if p != parent
    ])
    parent_i = self.parents.index(parent)

    stack = np.vstack([
        np.dot(
            self.m.take(r, axis=parent_i).transpose(),    
            parents_priors.prod(axis=0)
        ) 
        for r in range(parent.cardinality)
    ])
    return np.dot(stack, likelihood)

计算父方发送给子方的消息有两种方法。要么将从其他子方收到的所有消息与当前节点的先验相乘,要么将当前节点的信念除以相应子方发送给父方的消息。
κ ( X → K ) = α ∏ C \ K λ ( C → X ) π ( X ) = α β ( X ) λ ( K → X ) \kappa_{(X \rightarrow K)}=\alpha \prod_{C \backslash K} \lambda_{(C \rightarrow X)} \pi(X)=\alpha \frac{\beta(X)}{\lambda_{(K \rightarrow X)}} κ(XK)=αC\Kλ(CX)π(X)=αλ(KX)β(X)
我们认为这个公式称为 Kappa,其索引告诉我们消息的方向(从 X 到 K)。

如果我们看一下信念公式,就会发现这个公式是似然值和先验值的乘积。然而,似然值是所有传入消息的乘积。因此,信念除以来自 K 的传入消息,结果是所有传入消息(除了我们除以的消息)与先验值的乘积。这样,我们就可以解释两种计算 Kappa 的方法之间的相等性。给子方发送消息背后的直觉与给父方发送消息类似。您要考虑所有传入消息,然后将聚合发送到下一个节点。

Python伪码表示:

def message_to_child(self, child):
    children_messages = []
    for c in self.children:
        if c != child:
            children_messages.append(c.message_to_parent(self))
    if len(children_messages) > 0:
        unnormalized = (children_messages * self.get_priors())
        unnormalized = unnormalized.prod(axis=0)
        message = unnormalized/unnormalized.sum()
        return message
    return self.get_priors()

👉参阅&更新:计算思维 | 亚图跨际

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

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

相关文章

下载设计免抠元素,就上这6个网站,免费下载!

寻找免费PNG免抠素材网站是创意设计者们探索的重要一环。这些网站提供了丰富的PNG格式素材,去除了背景,方便在不同项目中使用。精心挑选了6个免费PNG免抠素材网站,它们提供了高品质的素材资源,无论是个人设计还是商业项目&#xf…

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT 1、安装依赖 sudo apt update sudo apt-get install g gdb gcc cmake sudo apt install libpoco-dev uuid-dev libncurses5-dev python3-dev python3-pip python3 -m pip install protobuf3.14.02、下载CyberRT源码 git cl…

从0开始的STM32HAL库学习4

对射式红外传感器计数复现 配置工程 我们直接复制oled的工程,但是要重命名。 将PB14设置为中断引脚 自定义命名为sensorcount 设置为上升沿触发 打开中断 配置NVCI 都为默认就可以了 修改代码 修改stm32f1xx_it.c 文件 找到中断函数并修改 void EXTI15_10_I…

mp3文件导入音乐乱码

在网上下载了beyond的mp3文件,发现看起来没问题,一旦加入到音乐软件就会乱码,看起来说因为音乐文件加载到元数据 思路参考了这个文章 解决Mac电脑音乐显示歌名的乱码问题_音频文件乱码-CSDN博客 不过这个只能解决名称乱码,我发…

Kodcloud可道云安装与一键发布上线实现远程访问详细教程

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 本文主要为大家介绍一款国人自研的在线Web文件管理器可道云,…

前端新手小白的React入坑指南

有个小伙伴跟我说,已经毕业了,开始实习了。但公司现在用的还是Vue,领导说是过段时间让他用React做项目,先自己学习起来。 我给他找了一些文档,顺便着呢,反正自己也写博客,自己也写一份吧&#x…

共集电极放大器+共基极放大器+放大器参数总结+单片机(全局/静态/动态变量+LED点阵初识+点亮LED并显示图形)

2024-7-11,星期四,18:38,天气:雨,心情:晴。终于下雨了,感受到了久违的凉爽,没有什么特殊的事情发生,继续学习啦,加油加油!!&#xff0…

君子签电子合同推动企业人事管理变革,降本提效

在日益复杂的人力资源管理领域,合同签署与管理成为HR面临的一大挑战。面对庞大的合同量、繁琐的审批流程、频繁的岗位变动以及离职时的合同管理难题,传统方式已难以满足高效、安全、合规的需求。 君子签针对HR面临的挑战和需求,打造智能合同…

如何定量选择孔销基准?-DTAS来帮你!

在当今快速发展的工程领域,公差仿真的作用日渐重要,在公差仿真中,基准体系的选择对于最终结果更是至关重要。基准体系不同可能导致仿真过程中的参数计算、误差分析以及最终的工程设计都有所不同。基准体系作为评估和比较的参照,直…

专业模板,轻松打造个性化产品册

​在当今竞争激烈的市场环境中,如何让你的产品在众多竞品中脱颖而出,吸引消费者的目光?专业模板为您提供了解决方案。通过轻松打造个性化产品册,让您的产品焕发出独特的魅力,赢得消费者的青睐。本文将结合实际案例和数…

C++中的虚函数:深入探究多态性

目录 ​编辑 引言 虚函数基础 纯虚函数与抽象类 虚函数与多态 虚析构函数 结论 引言 在C中,虚函数是实现多态性的关键机制,它允许我们编写更为灵活和可扩展的代码。通过虚函数,派生类可以提供不同的实现,而基类指针或引用…

面对频繁紧急修复,测试人员5大应对技巧!

频繁的紧急修复问题,经常会过多占用测试时间,影响正常测试周期和回归测试的完整性,不利于测试效率和质量的提高。因此为了更高效地处理此问题,测试人员可以采取以下5大策略来应对,以减少此类问题的发生并提高工作效率。…

王老师 linux c++ 通信架构 笔记(二)配置服务器为固定的 ip 地址、远程登录、安装 gcc g++ 与虚拟机文件夹共享

(7)本条目开始配置 linux 的固定 ip 地址,以作为服务器使用: 首先解释 linux 的网口编号: linux 命令 cd : change directory 改变目录。 ls : list 列出某目录下的文件 根目录文件名 / etc &a…

链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期” 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 出现如下问题: 与链接服务器的测试连接失败。执行Transact-SQL 语句或批处理时发生了异常。命名管道提供程序:无法打开与SQL SERVER的链接[53]链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期…

CV06_Canny边缘检测算法和python实现

1.1简介 Canny边缘检测算法是计算机视觉和图像处理领域中一种广泛应用的边缘检测技术,由约翰F坎尼(John F. Canny)于1986年提出。它是基于多级处理的边缘检测方法,旨在实现以下三个优化目标: 好的检测:尽…

如何录制屏幕视频?4款软件,轻松录屏

在数字化飞速发展的时代,如何录制屏幕视频已经成为我们工作、学习和娱乐中不可省略的一个重要问题。无论是制作教学教程还是录制游戏视频等,屏幕视频录制都为我们提供了极大的便利。今天,就让我们一起探索如何录制屏幕视频的精彩方式&#xf…

记录文字视差背景学习

效果图 文字背景会随鼠标上下移动变成红色或透明 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

Hydra

Intro Hydra是一个用来动态创建配置的python开源框架&#xff0c;使做研究和复杂的应用更便利&#xff0c;配置信息可以通过配置文件或者运行参数来覆盖。Hydra的名字来源于其可以运行多个相似任务&#xff0c;就像Hydra&#xff08;九头蛇&#xff09;有多个头一样。 Run 安…

初学51单片机之UART串口通信

CSDN其他博主的博文&#xff08;自用&#xff09;嵌入式学习笔记9-51单片机UART串口通信_51uart串口通讯-CSDN博客 CSDN其他博主的博文写的蛮好&#xff0c;如果你想了解51单片机UART串口可以点进去看看&#xff1a; UART全称Universal Asynchronous Receiver/Transmitter即通…

agents 分类

一、分类 自动agent、半自动agent、领域、自定义sop和支持人为干预的agent。 先泼个冷水&#xff0c;目前这些agent项目都是实验品&#xff0c;发展还没有做知识库问答相关开源项目那么成熟&#xff0c; 二、全自动agent autoGPT、loopGPT、babyAGI 全自动agent就是人类不可…