相关不等于因果:数据从业者必须跨越的逻辑鸿沟

相关不等于因果:数据决策中必须跨越的认知鸿沟 相关性是描述变量共变模式的基础统计概念,而因果性则要求识别干预对结果的真实影响,其核心在于排除混杂偏倚、确立时间顺序与反事实可比性。在缺乏随机实验的现实场景中,混淆相关与因果极易导致产品优化失效、营销ROI误判及临床决策偏差。掌握因果图(DAG)、后门准则、倾向得分匹配与敏感性分析(如E值)等工具,能帮助分析师从观察性数据中稳健识别驱动因素。本文聚焦于业务一线高频痛点——如弹窗留存归因、错题本提分误读、满减券GMV评估等典型场景,提供可落地的四步诊断法与方法选型逻辑,助力数据从业者将统计发现转化为可信的业务 阅读详情

1. 项目概述:为什么连数据老手都会在“相关”和“因果”上栽跟头?

你有没有过这种经历:刚用Python跑出一组漂亮的散点图,相关系数r=0.87,心里一热就写进周报里说“用户停留时长每增加1分钟,付费转化率就提升2.3%”——结果被产品总监一句“那我们把页面加载时间故意拖到10秒试试?”当场问懵?这根本不是业务方抬杠,而是戳中了数据分析里最经典、也最容易被忽视的逻辑断层: 相关不等于因果 。这个标题“Are you Confused with Correlation and Causation?”看似是个入门级问题,但实打实是横跨统计学、机器学习、商业决策、甚至医学研究的一道分水岭。我带过三十多个数据团队,发现一个惊人规律:初级分析师常卡在“不会算”,而资深从业者90%以上的重大误判,都出在“算对了却想错了”——也就是把强相关当成了铁因果。比如某电商曾发现“用户收藏商品数”和“月度GMV”高度正相关(r=0.91),于是大力推送“猜你喜欢”收藏弹窗,结果三个月后复购率反而跌了12%。后来用因果推断框架回溯才发现,真实驱动因素是“用户生命周期阶段”:新客爱收藏但不买,老客少收藏但高频复购。收藏数只是用户活跃度的一个表象指标,而非驱动引擎。这篇文章不讲教科书定义,而是直接拆解我在金融风控、A/B测试、医疗效果评估等六个真实场景中踩过的坑、验证过的解法、以及那些藏在统计软件默认输出背后的危险假设。你会看到:为什么Pearson相关系数在非线性关系下会失灵;为什么控制变量法在存在未观测混杂因子时反而放大偏差;以及如何用一张简单的有向无环图(DAG)在5分钟内判断某个回归模型是否可能给出因果解释。这不是理论探讨,而是你明天开需求评审会就能用上的实战工具箱。

2. 核心概念解构:从数学公式到现实陷阱的完整映射

2.1 相关性的本质:它到底在测量什么?

相关性(Correlation)在统计学中是一个纯粹的 描述性度量 ,它的数学内核非常干净:衡量两个变量X和Y的线性共变趋势。以最常用的Pearson相关系数为例,其计算公式为:

$$ r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \sqrt{\sum (y_i - \bar{y})^2}} $$

这个公式背后藏着三个关键约束,而它们正是现实世界频频“翻车”的根源。第一,它只捕捉 线性关系 。我曾处理过某智能电表数据,发现“室外温度”与“空调耗电量”在15℃-30℃区间呈强负相关(r=-0.89),但一旦温度跌破10℃或超过35℃,耗电量又因制热/强力制冷而飙升,整体呈现U型曲线。此时Pearson系数暴跌至-0.23,严重低估了实际关联强度。第二,它对 异常值极度敏感 。在分析某P2P平台逾期率时,一个区域因突发洪水导致单月逾期率飙升至47%,而其他区域均在2%-5%之间。加入这个异常点后,原本微弱的“区域GDP增速”与“逾期率”相关性从r=0.11骤变为r=0.63,误导团队将资源倾斜至经济欠发达地区,实际风险却集中在高流动性但监管薄弱的沿海城市。第三,它完全 无视时间顺序与机制路径 。某健康APP发现“每日步数”与“睡眠质量评分”正相关(r=0.75),但无法回答:是走路改善了睡眠?还是睡得好才有精力走路?抑或两者都被“工作压力”这个隐藏变量同时压制?Pearson公式里根本没有时间箭头,也没有因果路径的占位符。因此,当你看到一份报告写着“广告曝光量与销售额相关系数为0.82”,请立刻在脑中补上三行小字:“该数值仅说明二者同步波动程度,不涉及任何方向性影响,不排除存在第三个变量Z(如季节性促销力度)同时驱动二者”。

2.2 因果性的门槛:为什么它比相关性难十倍?

因果性(Causation)要回答的是一个反事实问题(Counterfactual Question):“如果我对X做了干预(Intervention),Y会发生什么变化?”这直接指向了科学方法论的核心—— 可证伪性 。要确认X导致Y,必须能构想并检验“X不存在时Y的状态”。这在现实中几乎无法直接观测,因为同一个体无法同时处于“接受处理”和“未接受处理”两种状态。因此,所有因果推断技术本质上都是在构建一个 可信的反事实估计框架 。这里的关键分水岭在于:相关性分析处理的是观测数据(Observed Data),而因果推断必须引入 干预操作 (do-operator)。Judea Pearl提出的do-calculus明确区分了P(Y|X)(给定X时Y的概率)和P(Y|do(X))(将X强制设为某值时Y的概率)。前者是条件概率,后者才是因果效应。举个直白例子:医院数据发现“使用呼吸机”与“死亡率”高度正相关(r=0.78)。若按相关性逻辑,会得出“停用呼吸机可降低死亡率”的荒谬结论。但P(死亡|使用呼吸机)≠P(死亡|do(使用呼吸机)),因为重症患者才被分配使用呼吸机——这里存在强烈的 选择偏差 (Selection Bias)。真正的因果问题是:“如果给轻症患者也上呼吸机,死亡率会如何变化?”这需要通过随机对照试验(RCT)或严谨的准实验设计来逼近。值得注意的是,因果性不等于“100%确定”。在社会科学中,我们追求的是 因果效应的无偏估计 (Unbiased Estimation),即在重复抽样中,估计值的期望等于真实因果效

AI为何无法真正理解因果?从相关性到因果推理的认知跃迁 因果推理是人工智能从统计拟合迈向认知理解的核心能力,区别于描述变量共现的相关性分析,它聚焦于干预(do-operator)、反事实推演与结构因果模型三大原理,支撑医疗诊断、智能决策、推荐系统等高价值场景的可解释性与可靠性。当前大模型虽能识别‘因为…所以…’等语言线索,却缺乏对物理机制或领域逻辑的深层建模能力;而知识图谱与因果机器学习等方法则在透明性与可扩展性之间艰难平衡。本文围绕因果三重门展开技术科普与工程实践剖析,融合‘因果推理’‘结构因果模型’等热词,为产品、算法与业务人员提供识别因果盲区、构建反事实基 阅读详情

相关推荐

70个统计故事:从概念到实战,跨越理论与应用鸿沟

统计学是数据科学和决策科学的基石,它通过收集、分析和解释数据来揭示规律、支持决策。其核心原理在于利用概率论和数学方法,从样本推断总体特征,量化不确定性。掌握统计思维的技术价值在于,能将模糊的业务问题转化为可检验的假设,驱动科学决策而非依赖直觉。无论是产品A/B测试、市场效果评估,还是科研实验分析,统计方法都广泛应用于验证想法、发现因果与预测趋势。本文通过构建70个来自真实场景的【统计故事】,将抽象的【假设检验】、回归分析等概念融入生动的案例,帮助读者在解决“咖啡店客单价差异是否显著”等具体问题时,自然理解方

weixin_30784501的博客 358

因果推断实战指南:从相关陷阱到业务增长跃迁

因果推断是识别‘真正起作用的因素’而非‘表面关联’的核心技术,其原理在于通过控制混杂变量、构建反事实或利用随机化,分离处理变量对结果的净效应。在电商、SaaS、教育等数据驱动型行业中,它支撑精准营销归因、个性化干预与可信AI决策,技术价值体现在避免千万级预算误投、提升ROI可解释性及驱动实时增长策略。典型应用场景包括优惠券效果评估、用户分层运营、AB测试增强与归因模型重构。本文聚焦因果机器学习(Causal ML)在真实业务中的四步落地法、12个高频工程坑及EconML/CausalML实操要点,覆盖倾向得

abo1977的博客 470

虚拟工作坊设计:跨越数字鸿沟的社区技术教育实践

在线教育与虚拟协作已成为弥合数字鸿沟、实现知识普惠的重要方式。其核心原理在于通过精心设计的远程交互框架与低门槛技术工具,构建包容、互动的学习环境,从而将技术教育的价值延伸到资源有限的社区群体。在实践中,结合云端优先的代码教学环境和以参与感为核心的设计哲学,能够有效提升学习成效与社群归属感。本文以社区赋能项目为例,深入探讨了如何为多元背景的青少年设计虚拟编程工作坊,通过模块化内容脚手架、结对编程的远程实现以及多维度的支持系统,在虚拟空间中建立真实连接,点燃其对科技的兴趣与自信。

weixin_33709364的博客 400

从AI原型到成熟产品:跨越工程化鸿沟的技术实践指南

在软件开发领域,原型(Prototype)与产品(Product)是两个核心且常被混淆的概念。原型侧重于快速验证想法,强调探索性和低成本试错;而产品则是一个完整、可靠、可维护的解决方案,旨在为用户持续创造价值。理解其区别是构建成功软件的基础。从技术原理上看,原型通常利用现成工具和简化逻辑快速搭建,而产品则需要严谨的工程化能力,涵盖架构设计、安全性、性能、可扩展性和可观测性等非功能性需求。其技术价值在于,原型能极大降低创意验证的门槛,但只有通过系统性的工程化演进,才能将概念转化为具备市场竞争力的稳定服务。这一

weixin_34208283的博客 326

因果表示学习:让机器理解数据背后的因果结构

机器学习模型擅长发现相关性,却难以回答“如果干预某个变量,结果会如何变化?”因果表示学习(Causal Representation Learning, CRL)旨在表示空间中还原数据生成的因果结构,让特征不仅“解耦”更“因果分解”。其核心难点是可识别性,需借助非高斯分布、时序结构、干预标签等先验锚点。技术上,非线性ICA、稀疏DAG约束、扩散模型等路线各有适用场景。在机器人操作、医疗影像、科学发现和推荐系统中,CRL通过干预推理和反事实生成提升模型的稳健性与可解释性。让AI从“拟合相关”走向“理解因果”,

weixin_29071809的博客 191

生成式AI如何加剧信息不平等?从知识沟到智能鸿沟的深度解析

在信息时代,知识沟理论揭示了社会经济地位差异导致的信息获取不平等现象。随着技术发展,数字鸿沟从设备接入、使用技能延伸到信息素养层面。生成式AI的出现,将这种不平等推向新高度,形成了多维度的智能鸿沟。其核心机制在于将信息检索能力差距升级为信息创造能力差距,同时AI幻觉和算法偏见对弱势群体造成不对称伤害。从技术原理看,生成式AI基于大规模数据训练和模式模仿,其价值在于提升内容创作和问题解决效率,但这也要求用户具备提示词工程和批判性评估等高级元认知技能。在实际应用场景中,这种能力差异导致工作流重塑加速职业分化,教

weixin_30561425的博客 564

跨越研发鸿沟:从AI编程到组织级AI落地的实践指南

随着人工智能技术从个人提效工具走向企业级生产力,研发团队普遍面临“个体效率提升明显、组织效能停滞不前”的困境。这一现象源于个体能力溢出与组织流程滞后之间的断裂,被称作“研发鸿沟”。要跨越这道鸿沟,需要从AI编程的人机协作重构入手,将编码重心从“写”转向“审”,并借助AI评审、流程再造和可观测的AI Agent,把智能能力嵌入研发全链路。同时,大模型部署选型、AI Infra工程化底座以及组织人才结构重组,决定了AI能否从Demo走向稳定生产。文章梳理了团队落地AI过程中的典型卡点与实操经验,为技术管理者提供

weixin_32830601的博客 230

具身智能落地关键:世界模型与VLA如何协同跨越知行鸿沟

具身智能的核心挑战并非模型参数比拼,而是‘知’(理解世界)与‘行’(可靠改造世界)之间的系统性断层。世界模型作为可微分的物理引擎,负责状态表征、动力学预测与长程规划;VLA则扮演神经编译器角色,将自然语言指令映射为底层动作信号。二者的技术价值不在单点性能,而在于耦合质量——状态-动作接口的粒度匹配、时间同步与不确定性传递,直接决定机器人在真实场景中的鲁棒性与安全性。当前工程落地瓶颈集中于仿真到真机迁移中的延迟驯化、开放环境下的容错机制,以及能耗与机械寿命约束下的持续运行能力。本文聚焦世界模型与VLA协同设计

weixin_30263277的博客 570

跨越AI落地鸿沟:从实用工具到工程化集成的实践指南

人工智能(AI)作为一项颠覆性技术,其核心价值在于通过机器学习模型模拟人类智能,实现任务自动化与决策辅助。从技术原理看,AI依赖大数据训练与算法优化,其关键在于将非结构化信息转化为可执行指令。在工程实践中,AI的价值正从概念验证转向稳定可靠的生产力工具,尤其在自动化流程、智能辅助与数据分析等场景中作用显著。当前,AI应用面临两大挑战:一是模型“幻觉”导致输出不可靠,二是从演示到生产的“落地鸿沟”。针对这些痛点,开发者需掌握提示词工程、上下文管理与工作流编排等工程化方法,并结合AI Agent与本地模型部署(

weixin_34280237的博客 498

商业数据分析实战:从平均数陷阱到因果推断的深度思考

商业数据分析的核心在于从海量数据中提取有价值的洞察,以驱动科学决策。其基本原理在于通过统计方法与可视化工具,将原始数据转化为可理解的信息,进而揭示业务规律。这项技术的价值在于能够量化业务表现、识别潜在问题、预测未来趋势,并最终优化资源配置与战略方向。在实际应用场景中,数据分析广泛应用于用户行为研究、产品优化、市场营销效果评估以及运营效率提升等多个领域。本文聚焦于商业分析中的关键思维误区,例如过度依赖平均数可能掩盖真实的用户分布差异,而混淆相关性与因果关系则可能导致无效甚至有害的业务干预。通过结合具体案例,本

weixin_33960567的博客 347

从Demo到生产:跨越AI Agent工程化的四道鸿沟

AI Agent(智能体)作为人工智能领域的关键技术,其核心原理在于将大语言模型的认知能力与可编排的工作流相结合,通过任务分解、工具调用和状态管理,实现从模糊指令到确定性输出的转化。这一技术价值在于将传统自动化脚本升级为具备理解、决策和协作能力的“虚拟员工”,从而在客服、内容生成、数据分析等应用场景中提升效率与智能化水平。然而,从演示原型到生产部署,开发者必须系统性地解决输入标准化、工具调用可靠性、状态管理及成本控制等工程挑战。本文以AI Agent工作流和工程实践为切入点,探讨如何通过结构化输出、错误处理

weixin_30435261的博客 321

机器学习学习路径全息地图:跨越知识断层与工程落地鸿沟

机器学习(ML)并非单纯算法或代码的堆砌,而是一套融合问题定义、数据理解、模型选择、评估优化与系统部署的完整工程范式。其核心原理在于将业务目标精准映射为可计算的损失函数,并通过特征工程实现业务逻辑到数值信号的可靠翻译。技术价值体现在显著缩短从理论认知到生产落地的周期,规避‘准确率幻觉’‘数据失明’‘模型黑箱’等典型陷阱。典型应用场景覆盖电商风控、工业质检、智能推荐与医疗辅助决策等强业务约束领域。本文聚焦ML学习路径中的关键断层识别与MLOps实践门槛突破,深入解析特征工程优先级设定与数据质量权重评估两大核心

Dendy之Java小屋 401

潜在语义索引LSI:从TF-IDF到SVD,跨越词汇鸿沟的语义检索技术

在信息检索和自然语言处理领域,如何让计算机理解文本的深层含义而非仅仅匹配关键词,是一个核心挑战。传统方法受限于词汇的表层形式,无法解决一词多义和多词一义的问题。潜在语义索引(LSI)通过引入线性代数中的奇异值分解(SVD)技术,构建了一个创新的解决方案。其原理是,首先利用TF-IDF加权方法,将文本集合转化为词项-文档矩阵,以更合理地衡量词汇的重要性。然后,对该矩阵进行SVD分解,通过保留最大的k个奇异值,实现降维,从而抽取出文本背后的潜在语义主题。这项技术的价值在于,它能在低维的语义空间中计算文档和查询的

weixin_33046983的博客 305

Intel Realsense windows安装与入门

realsense400系列介绍: https://www.intelrealsense.com/stereo-depth/?utm_source=intelcom_website&utm_medium=button&utm_campaign=day-to-day&utm_content=D400_learn-more_button realsense 435i介绍: ...

hanshuning的专栏 1万+

LTspice基础教程-009.LTspice波形测量

<<==上一篇:LTspice基础教程-008.LTspice PWL设置 >>==下一篇:LTspice基础教程-010. 首篇博客文末提供所有相关资源百度网盘分享链接

gaoyong_wang的博客 4万+

104报文解析工具

可选择包含报文的文本文件或日志文件进行解析,可选择按条数范围或时间范围,输出结果可以在报文解析显示区,也可以输出到文件。可以对文本内容的报文文件进行高级分析,包括遥信遥测等通讯数据的具体信息,通讯帧的统计,通讯次数的统计,各种错误的分析,报文的定位功能,传输的文件具体内容等。输入完成后点击工具栏的解析报文按钮或使用右键菜单的解析就可以对报文进行解析。在报文输入区输入待解析报文并解析后,解析结果就显示在报文解析显示区和报文定位展示区及报文定位条目区。当有多条报文解析后,可以通过报文列表树具体定位某条报文。

XZHOUMIN的博客 5952

[SV]SystemVerilog学习笔记之struct & union

SystemVerilog学习笔记(四) 一、结构体(struct) 1.1、结构体(struct) 结构体声明:结构体默认是变量,也可以声明为线网 var struct{ //通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode; } Instruction_Word_var; wire struct{ //结构体线网声明,定义为线网类型时,结构体的所有成员必须...

元直的博客 1万+

基于cnn version_transformer VIT模型的动物图像分类 完整代码+数据 动物分类教程

基于cnn version_transformer VIT模型的动物图像分类 完整代码+数据 动物分类教程

机器学习深度学习业余选手 1002

宇瞳杯安防镜头设计

宇瞳杯安防镜头设计

weixin_72050316的博客 1517

Android 14.0 开机广播接收慢广播延迟问题分析

在14.0的系统rom定制化开发中,在某些时候在接收开机广播的时候发现,过了一分钟才收到开机广播,接下来就需要分析下 开机广播的相关分发机制,来处理下相关问题

安卓兼职framework和app工程师的博客 631

【MATLAB】通过计算曲率和曲率变化率来实现对曲线波浪程度

这段代码将计算给定曲线的曲率,并与给定阈值进行比较以检测拐角。函数是MATLAB中一个常用的函数,可以用于计算曲线在每个点处的曲率。它基于一种被称为“local least squares fitting” 的方法,通过拟合每个点周围的一小段曲线来计算曲率。MATLAB中可以使用多种方法实现拐角检测,其中一种方法是基于曲率半径的算法。该算法通过计算曲线上每个点处的曲率半径,找到拐角和弯曲处。是一个可选参数,用于控制拟合曲线的平滑度,取值范围为0到1,越接近1表示曲线越平滑。表示曲线在每个点处的曲率,

Fanjufei的博客 1921

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 大模型参数量与稀疏激活:MoE架构原理与工程真相
下一篇: 1Cycle学习率调度:从原理到TensorFlow原生实现
tempdowncomputer
博客等级 码龄16年 2粉丝 405原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值