线性因子模型 - 概率PCA和因子分析篇

序言

在探索数据科学与机器学习的浩瀚领域中,深度学习作为一股不可小觑的力量,正以前所未有的方式重塑着我们对数据处理与知识发现的理解。在这一宏大的框架下,概率主成分分析( Probabilistic PCA, pPCA \text{Probabilistic PCA, pPCA} Probabilistic PCA, pPCA)与因子分析作为经典与现代的交汇点,不仅承载着统计学的深厚底蕴,也融合了深度学习的先进理念,成为理解复杂数据结构的重要工具。 pPCA \text{pPCA} pPCA与因子分析均旨在通过降维技术揭示数据中的隐藏结构,前者是传统 PCA \text{PCA} PCA的概率化延伸,赋予了数据点以概率分布的形式存在,后者则更侧重于从协方差结构中提取潜在的共同因子,两者虽路径不同,却殊途同归,共同为数据分析师和科学家提供了深入理解数据本质的强大武器。

概率PCA和因子分析

  • 概率 PCA \text{PCA} PCA ( probabilistic PCA \text{probabilistic PCA} probabilistic PCA), 因子分析和其他线性因子模型是等式(线性因子模型引言篇 - 公式1, 线性因子模型引言篇 - 公式2)的特殊情况,并且仅在对观测到 x \boldsymbol{x} x 之前的噪声分布和潜变量 h \boldsymbol{h} h先验的选择上有所不同。
  • 因子分析 ( factor analysis \text{factor analysis} factor analysis) ( Bartholomew, 1987; Basilevsky, 1994 \text{Bartholomew, 1987; Basilevsky, 1994} Bartholomew, 1987; Basilevsky, 1994) 中,潜变量的先验是一个方差为单位矩阵的高斯分布:
    h ∼ N ( h ; 0 , I ) \boldsymbol{h}\sim \mathcal{N}(\boldsymbol{h};\boldsymbol{0},\boldsymbol{I}) hN(h;0,I) — 公式1 \quad\textbf{---\footnotesize{公式1}} 公式1
  • 同时,假定观察值 x i x_i xi 在给定 h \boldsymbol{h} h 的条件下是条件独立 ( conditionally independent \text{conditionally independent} conditionally independent) 的。具体的说,噪声可以被假设为是从对角协方差矩阵的高斯分布中抽出的, 协方差矩阵为 ψ = diag ( σ 2 ) \boldsymbol{\psi}=\text{diag}(\boldsymbol{\sigma^2}) ψ=diag(σ2),其中 σ 2 = [ σ 1 2 , σ 2 2 , … , σ n 2 ] ⊤ \boldsymbol{\sigma^2}=[\sigma_1^2,\sigma_2^2,\dots,\sigma_n^2]^\top σ2=[σ12,σ22,,σn2] 表示一个向量,每个元素表示一个变量的方差。
  • 因此, 潜变量的作用是捕获不同观测变量 x i x_i xi 之间的依赖关系。实际上,可以容易地看出 x \boldsymbol{x} x 服从多维正态分布,并满足: x ∼ N ( x ; b , W W ⊤ + ψ ) \text{x}\sim\mathcal{N}(\boldsymbol{x};\boldsymbol{b},\boldsymbol{WW}^\top+\boldsymbol{\psi}) xN(x;b,WW+ψ) — 公式2 \quad\textbf{---\footnotesize{公式2}} 公式2
  • 为了将 PCA \text{PCA} PCA引入到概率框架中,我们可以对因子分析模型进行轻微修改,使条件方差 σ i 2 \sigma_i^2 σi2 等于同一个值。
    • 在这种情况下, x \boldsymbol{x} x 的协方差简化为 W W ⊤ + σ 2 I \boldsymbol{WW}^\top+\boldsymbol{\sigma}^2\boldsymbol{I} WW+σ2I,这里的 σ 2 \sigma^2 σ2是一个标量。
    • 由此可以得到条件分布,如下: x ∼ N ( x ; b , W W ⊤ + σ 2 I ) \text{x}\sim\mathcal{N}(\boldsymbol{x};\boldsymbol{b},\boldsymbol{WW}^\top+\sigma^2\boldsymbol{I}) xN(x;b,WW+σ2I) — 公式3 \quad\textbf{---\footnotesize{公式3}} 公式3
    • 或者等价于: x = W h + b + σ z \text{x}=\boldsymbol{Wh}+\boldsymbol{b}+\sigma\textbf{z} x=Wh+b+σz — 公式4 \quad\textbf{---\footnotesize{公式4}} 公式4
      • 其中 z ∼ N ( z ; 0 , I ) \textbf{z}\sim\mathcal{N}(\boldsymbol{z};\boldsymbol{0},\boldsymbol{I}) zN(z;0,I)是高斯噪音。
      • 之后 Tipping and Bishop (1999) \text{Tipping and Bishop (1999)} Tipping and Bishop (1999) 提出了一种迭代的 EM \text{EM} EM算法来估计参数 W \boldsymbol{W} W σ 2 \sigma^2 σ2
  • 这个概率 PCA \text{PCA} PCA ( probabilistic PCA \text{probabilistic PCA} probabilistic PCA) 模型利用了这样一种观察到的现象:除了一些小且剩余的至多为 σ 2 \sigma^2 σ2重构误差 ( reconstruction error \text{reconstruction error} reconstruction error) ,数据中的大多数变化可以由潜变量 h \boldsymbol{h} h 描述。
    • 通过 Tipping and Bishop (1999) \text{Tipping and Bishop (1999)} Tipping and Bishop (1999) 的研究可以发现,当 σ → 0 \sigma\to 0 σ0的时候, 概率 PCA \text{PCA} PCA退化为 PCA \text{PCA} PCA
    • 在这种情况下,给定 x \boldsymbol{x} x 情况下 h \boldsymbol{h} h 的条件期望等于将 x − x \boldsymbol{x} − \boldsymbol{x} xx 投影到 W \boldsymbol{W} W d d d 列的生成空间,与 PCA \text{PCA} PCA一样。
  • σ → 0 \sigma\to 0 σ0 时, 概率 PCA所定义的密度函数在 W \boldsymbol{W} W d d d 维列生成空间周围非常尖锐。这导致模型会为没有在一个超空间附近聚集的数据分配非常低的概率

总结

回顾深度学习视角下的概率 PCA \text{PCA} PCA与因子分析,它们不仅是统计学习的经典应用,更是连接传统统计学与现代机器学习技术的桥梁。 pPCA \text{pPCA} pPCA通过引入概率模型,增强了 PCA \text{PCA} PCA对数据不确定性的处理能力,使其在高噪声、不完整数据环境下依然能有效工作。而因子分析,凭借其从数据中抽取隐藏因子的能力,为探索数据间的内在联系、构建预测模型提供了宝贵的视角。两者相互补充,共同丰富了我们对数据结构的认知,推动了深度学习在复杂系统建模、推荐系统、图像与信号处理等众多领域的深入应用。随着研究的不断深入,我们有理由相信, pPCA \text{pPCA} pPCA与因子分析将在未来数据科学与机器学习的舞台上绽放更加耀眼的光芒。

往期内容回顾

线性因子模型 - 引言篇
应用数学与机器学习基础 - 概率与信息论篇

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

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

相关文章

Python3中dict字典类型的用法

字典是另一种可变容器模型,且可存储任意类型对象。 key与value 允许存储任意类型对象 但key 不支持 list列表、字典等可变类型 字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 1、定义字典…

数据分析面试题:客户投保问题分析

目录 0 场景描述 1 数据准备 2 问题分析 2.1 计算小微公司的平均经营时长 2.2 计算小微公司且角色为投保人,保险起期在18年的总保费 2.3 假设,DWD_CUSTOMER_REL客户关联关系表中,存在部分客户保单数很多,部分客户保单数很少的情况,此时DWD_CUSTOMER_BASE表关联,程序…

鸿蒙OS试题

60当您开始开发一个应用/服务时,首先需要根据工程创建向导,创建一个新的工程,工具会自动生成对应的代码和资源模板。关于新建工程,下列选项说法正确的是? A.、创建用于Lite Wearable设备的工程,可以选择Native C工程…

百度智能云向量数据库创新和应用实践分享

本文整理自第 15 届中国数据库技术大会 DTCC 2024 演讲《百度智能云向量数据库创新和应用实践分享》 在 IT 行业,数据库有超过 70 年的历史了。对于快速发展的 IT 行业来说,一个超过 70 年历史的技术,感觉像恐龙一样,非常稀有和少…

Anaconda Prompt 安装paddle2.6报错

bug描述 python 3.11.9 通过 pip install paddlepaddle2.6.1 安装后,运行 paddle.utils.run_check() 则出现下面的错误: 解决办法 方法一:使用paddle 3的版本 这里要注意我的python版本 方法二:使用低版本的python python3.9…

[项目][CMP][直接向堆申请页为单位的大块内存]详细讲解

目录 1.系统调用 1.系统调用 Windows和Linux下如何直接向堆申请页为单位的大块内存&#xff1a; VirtualAllocbrk和mmap // 直接去堆上按页申请空间 static inline void *SystemAlloc(size_t kpage) { #ifdef _WIN32void *ptr VirtualAlloc(0, kpage << 13, MEM_COMM…

Lombok jar包引入和用法

大家好&#xff0c;今天分享一个在编写代码时的快捷方法。 当我们在封装实体类时&#xff0c;会使用set、get等一些方法。如下图&#xff0c;不但费事还影响代码的美观。 那么如何才能减少代码的冗余呢&#xff0c;首先lib中导入lombok的jar包并添加库。 此处我已导入&#xf…

Jenkins+Svn+Vue自动化构建部署前端项目(保姆级图文教程)

目录 介绍 准备工作 配置jenkins 构建部署任务 常见问题 介绍 在平常开发前端vue项目时,我们通常需要将vue项目进行打包构建,将打包好的dist目录下的静态文件上传到服务器上,但是这种繁琐的操作是比较浪费时间的,可以使用jenkins进行自动化构建部署前端vue 准备工作 准备…

如何设计实现完成一个FPGA项目

设计并完成一个FPGA项目是一个复杂但非常有价值的工程任务。以下是一个详细的步骤指南,帮助你从零开始完成一个FPGA项目。 1. 项目定义与需求分析 确定项目目标:明确项目要实现的功能和性能指标。需求分析:列出所有功能需求、性能需求、接口需求等。可行性分析:评估技术可…

Linux操作系统命令集(一)

最近开了操作系统的课&#xff0c;弄着虚拟机的linux系统命令学学 文件和目录操作命令&#xff1a; ls&#xff1a;列出目录内容 示例&#xff1a;ls -l 以长格式列出目录内容cd&#xff1a;切换目录 示例&#xff1a;cd /home/user 切换到 /home/user 目录mkdir&#xff1a;…

《粮食科技与经济》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《粮食科技与经济》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《粮食科技与经济》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a; 湖南省粮食和物资储备局 …

bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储

1、需求分析 标题是bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储。这里面我们要做的工作是&#xff1a; ①、批处理脚本使用的是bat文件&#xff1b; ②、文件夹下面有很多子文件夹&#xff0c;然后子文件夹下仍然有相同的文件结构&#xff0c;我们需要从三级…

halcon 自定义距离10的一阶导数幅图,摆脱sobel的3掩码困境

一&#xff0c;为什么要摆脱3的掩码 在处理图像的过程中&#xff0c;会用到平滑算子&#xff0c;很容易破坏边际&#xff0c;所谓的一阶导数sobel只计算掩码为3的差分&#xff0c;在幅度图分割中&#xff0c;往往是很难把握的。 举个例子-现在图像头平滑好了&#xff0c;缺陷…

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用&#xff0c;模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇&#xff0c;同时也伴随着一系列需要克服的挑战&#xff0c;如何看待企业引进增材制造&#xff0c;小编为您全面分析。 机遇篇&#xff1a; 加…

Codeforces Round (Div.3) C.Sort (前缀和的应用)

原题&#xff1a; time limit per test&#xff1a;5 seconds memory limit per test&#xff1a;256 megabytes You are given two strings a and b of length n. Then, you are (forced against your will) to answer q queries. For each query, you are given a range …

FPGA开发:Verilog数字设计基础

EDA技术 EDA指Electronic Design Automation&#xff0c;翻译为&#xff1a;电子设计自动化&#xff0c;最早发源于美国的影像技术&#xff0c;主要应用于集成电路设计、FPGA应用、IC设计制造、PCB设计上面。 而EDA技术就是指以计算机为工具&#xff0c;设计者在EDA软件平台上…

240907-Gradio渲染装饰器Render-Decorator

A. 最终效果 B. 示例代码 import gradio as gr import gradio as grwith gr.Blocks() as demo:input_text gr.Textbox()gr.render(inputsinput_text)def show_split(text):if len(text) 0:gr.Markdown("## No Input Provided")else:# for letter in text:for lett…

代码随想录训练营day37|52. 携带研究材料,518.零钱兑换II,377. 组合总和 Ⅳ,70. 爬楼梯

52. 携带研究材料 这是一个完全背包问题&#xff0c;就是每个物品可以无限放。 在一维滚动数组的时候规定了遍历顺序是要从后往前的&#xff0c;就是因为不能多次放物体。 所以这里能多次放物体只需要把遍历顺序改改就好了 # include<iostream> # include<vector>…

2024/9/6黑马头条跟学笔记(四)

D4内容介绍 阿里三方安全审核 分布式主键 异步调用 feign 熔断降级 1.自媒体文章自动审核 1.1审核流程 查文章——调接口文本审核——minio下载图片图片审核——审核通过保存文章——发布 草稿1&#xff0c;失败2&#xff0c;人工3&#xff0c;发布9 1.2接口获取 注册阿…

fetch-event-source 如何通过script全局引入

fetchEventSource源码中导出了两种类型的包cjs和esm。但是有个需求如何在原生是js中通过script标签引呢&#xff1f;需要加上typemodule。今天介绍另一种方法 下载源码文件&#xff1a; https://github.com/Azure/fetch-event-source.git 安装: npm install --save-dev webp…