【深度学习】因果推断与机器学习的高级实践 | 数学建模_问题根因 分析 机器学习-程序员宅基地

技术标签: 数学建模  机器学习  深度学习  个人总结与成长规划  

每日一句正能量

没有人可以打败你,除非你先打败自己。相信自己,克服困难,向前迈进。

前言

当前,以深度学习为核心的机器学习和人工智能技术迅猛发展,给人们生产生活带来了巨大的深刻变化。人工智能在带来巨大机遇的同时,也蕴含着风险和挑战。现阶段以数据驱动、关联学习为模式的机器学习方法倾向于在数据驱动下对变量之间关联关系进行统计建模,缺乏以知识指导机制实现变量之间“由果溯因”的因果推断与分析有效方法,导致其普遍存在解释性不强、稳定性不高等问题。复杂数据中变量之间关联关系有三种来源:因果关联(Causation)、混淆偏差(Confounding Bias)和选择偏差(Selection Bias)。本次将分享如何从大数据中的复杂关联中,利用因果推断技术甄别出真实的因果关联。

深度学习面临不可解释的重大挑战

在这里插入图片描述

现阶段深度学习有三大特征:

  • 数据驱动:即数据训练,将数据输入到模型中进行训练;
  • 关联学习:模型基于给定训练数据集,进行关联学习;
  • 概率输出:即最后的输出,判断这个图片有“狗“的概率是多少。

以数据驱动、关联学习、概率输出为特征的深度学习存在什么问题呢?以一个简单的图片识别问题为例:识别一张图片中是否有狗。在很多预测问题中,我们拿到的数据集往往都是有偏的,比如我们拿到的数据中有80%的图片中狗都在草地上,这样就导致在训练集中草地这一特征会和图片中是否有狗这个变迁十分相关。基于这样的有偏数据集学习一个预测模型,无论是简单的logistic regression,还是Deep Model,都很有可能会将草地这一特征学习成很重要的预测特征。这样的预测模型,首先是不可解释的,其次,对于未来的测试数据集,如果和训练集一样也是狗在草地上,则模型可以得到正确的预测结果,当然测试数据集也可能是狗在沙滩上,但是背景中有一些树木或者绿植,这时模型也许能识别出来。但是对于狗在水里的图片,基于我们的训练集学习出来的模型肯定会识别不准。这样就导致了对于所有未知的测试数据集,模型的预测特别不稳定。

综上,该案例中存在着下面三个问题:

  • 为什么图像会被识别为“狗
  • 为什么会用“草地”预测狗?
  • 为什么面向不同测试数据,结果差异大?

本质原因是现阶段的深度学习,还处于关联分析阶段,并未跨越到因果推理。因此,深度学习需要引入因果启发,做到“知其然,并知其所以然“。

将因果引入机器学习是解决可解释性、稳定性的重要途径

在这里插入图片描述

Judea Pearl提出的人工智能三种模型依次为:关联、干预和反事实,其中干预和反事实属于因果推理范畴。

  1. 关联:当前绝大多数机器学习、深度学习的模型都仍处于关联阶段,包括当前的大模型。

  2. 干预:指去干预或者调整一个变量,观察结果变化,解决的是“因之果“的问题。

  3. 反事实:在干预的结果上做反向思考,找到产生这个结果的原因是什么,解决的是“果之因“的问题。

因果推断与机器

随着大数据时代的来临,机器学习技术突飞猛进,并且在人类社会中扮演越来越重要的角色。

例如,你可能已经习惯了每天使用各种搜索引擎查找信息,或者在电商网站和视频网站的推荐系统 ,以及利用谷歌、百度等网站提供的机器翻译学习外语,这些应用都离不开机器学习模型的支持。

但机器学习模型,尤其是当下流行的深度学习模型面临着域外泛化、可解释性、公平性等挑战。

例如,利用深度学习模型做图像分类时可能会根据图片中的沙漠背景立刻判断图像中会出现骆驼,这是因为它不会意识到“沙漠背景”和“骆驼出现”之间只存在相关性。

也就是说,“沙漠背景”并不是“骆驼出现”的原因。

在这里插入图片描述

而认识到这一点对人类来说并不难。因此,为了实现通用人工智能,机器学习算法需要具备判断特征和标签间是否存在因果关系的能力。

另外,机器学习中对因果关系的研究也一直扮演着重要的角色。

例如,在流行病学中,孟德尔随机化揭示了基因对患病概率的影响,其本质是一种基于工具变量的因果推断方法。

在研究疫苗的有效率时,双盲实验扮演着不可替代的角色。这是因为双盲实验可以衡量疫苗对免疫力的因果效应。

而近几年出现了众多利用机器学习方法解决因果推断问题的研究。这是因为机器学习模型不仅可以有效地处理复杂的输入数据(如图像、文字和网络数据),还能够学习到原因和结果间复杂的非线性关系。

如今,因果机器学习的研究在学术界可谓百花齐放,从利用机器学习模型解决因果推断问题到将因果关系添加到机器学习模型中,都会涉及因果机器学习。

在这里插入图片描述

而在业界,无论是像FAANG 和BAT 这样的大公司、Zalando(总部位于德国柏林的大型网络电子商城,其主要产品是服装和鞋类)这样的中型公司,还是像Causalens(一家英国无代码因果AI产品开发商)这样的创业公司,因果机器学习都在解决业务问题中扮演着重要的角色。

这意味着业界对因果机器学习人才的需求也处于一个上升期。

但是,目前高校开设的课程中很少有同时涉及因果推断和机器学习的。

这是因为因果推断被认为是统计学、经济学、流行病学的课程。而机器学习主要出现在计算机科学和数据科学的教学大纲中。

在机器学习算法在各领域取得重大成果的今天,人工智能仍然面临着挑战。如今,大规模的机器学习模型在有海量数据的条件下可以学习到复杂的相关性。但它们仍然很难像人类一样,只用少量的数据就可以学习到数据中隐含的因果关系。

让机器学习模型像人类一样,能够区分因果性和相关性是迈向通用人工智能的一个关键步骤。本书讲解了因果机器学习相关的基础知识、重要的方法和典型的应用,包括自然语言处理、机器学习可解释性、算法公平性、推荐搜索纠偏等。

人工智能和机器学习模型正在各行各业发挥着举足轻重的作用。传统机器学习往往专注于提升某个任务的预测准确能力,从而忽视了模型背后所能够揭示的更深层次的不同变量之间的因果联系,以致得到缺乏解释性的模型,更有可能做出不公平的决策,甚至在新的数据分布上表现不佳。让机器学习模型能够进行因果推断是从提高预测精度到揭示事物变化规律这一重要跃迁的关键能力。

后记

在这篇文章中,我们介绍了因果推断和机器学习的高级实践。因果推断是一种研究因果关系的方法,可以帮助我们更好地理解数据和影响因素之间的关系。在机器学习中,因果推断可以帮助我们更好地理解模型的预测结果和预测不确定性。

我们介绍了因果图模型、潜变量模型和因果机器学习模型,并讨论了它们的优缺点和应用。我们还介绍了因果推断方法,如贝叶斯网络和倾向得分匹配,并讨论了它们在因果推断中的应用。

最后,我们讨论了机器学习中的因果推断应用,如因果推断控制、因果结构学习和因果效应估计。这些应用可以帮助我们更好地理解数据和建立更可靠的机器学习模型。

总的来说,因果推断是一个重要的方法,可以帮助我们更好地理解数据和影响因素之间的关系,并建立更可靠的机器学习模型。但需要注意的是,因果推断需要领域知识和一定的数学功底,需要谨慎地应用。

转载自:https://blog.csdn.net/u014727709/article/details/134747264
欢迎 点赞评论收藏,欢迎指正

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014727709/article/details/134747264

智能推荐

nginx配置开机启动/usr/local/nginx/sbin/nginx-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏17次。Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。设置开机自启动。首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:vim /etc/init.d/nginx在脚本中添加如下命令:#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15# descri_/usr/local/nginx/sbin/nginx

闲聊C语言结构体_#include <stdio.h> struct data { int a; unsigned s-程序员宅基地

文章浏览阅读369次。结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。一、结构体的形态C源程序(struct.c):#include <stdio.h>typedef struct{ unsigned short int a; unsigned short int b;}Data;int main(){ Data c, d; c.a = 1; c.b = 2; d = c; printf("d.a:%d\nd.b:%d\n", d.a, d.b); ret._#include struct data { int a; unsigned short b; }; int main(void)

解决butterknife 依赖库使用的Attribute value must be constant问题_第三方库butterknife attribute value must be constant-程序员宅基地

文章浏览阅读9.5k次,点赞3次,收藏6次。在我们使用android studio 通常会把常用的代码,新建成module在library中引入butterknife的依赖: compile ‘com.jakewharton:butterknife:8.4.0’ 但是在module 使用的时候会出现以下问题: 造成这个的原因就是在library里R.id.xxx不再是final类型了,也就不是常量了变成可变的,而注入是需要传入常_第三方库butterknife attribute value must be constant

学习资料要去哪里打印,网上打印靠谱吗?_去哪里打印学习资料-程序员宅基地

文章浏览阅读218次。很多人喜欢将对自己有用的学习资料整理下来,资料整理好以后打印出来可以更好的查看,倘若仅有一两张资料需要打印的话,大家可以随便找一家打印店即可,价格方面即便是稍微贵一点也不会差别特别大。但倘若学习资料如果份数比较多,比如有上百张、上千张资料需要打印,这时候大家就需要找一些打印价格相对比较便宜,比较正规的打印平台进行打印,小编推荐大家打印学习资料可到专业的网上在线打印平台易桌面打印室提交文件资料进行打印。易桌面打印室是一个比较专业的网上在线打印平台,该平台可快速为大家打印各种类型的资料、试卷、书本等,在打印资_去哪里打印学习资料

微信小程序 淘宝_淘宝微信小程序-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏33次。模仿淘宝写了一个小程序,主要目的还是练手并且以页面效果为主,写法肯定也会有更好的,后续继续加强。登录页面的话,就直接点登录进入到首页了,没有做过多的交互。其中做比较多的交互是购物车,应数据的形式做出的交互,实际的项目中可能会有更好的数据形式,产品数增减全选合计等,事件传参比较多;下面以购物车为例,贴上购物车的部分js 代码,里面有个“监听”是否勾选和计数的函数(watchSelec..._淘宝微信小程序

并发计算模型BSP与SEDA_bulk synchronous parallel-程序员宅基地

文章浏览阅读3.6k次。1 BSP批量同步并行计算BSP(Bulk Synchronous Parallel)批量同步并行计算用来解决并发编程难的问题。名字听起来有点矛盾,又是同步又是并行的。因为计算被分组成一个个超步(super-step),超步内并行计算并且结点间不能通信。在超步之间设置同步栅栏(barrier synchronization),计算完成后相互通信,全部完成后才能继续下一个超步。2 SEDA阶段_bulk synchronous parallel

随便推点

2579页阿里P8Android学习笔记在互联网上火了,完整版开放下载(1)-程序员宅基地

文章浏览阅读735次,点赞23次,收藏14次。有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!后有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊![外链图片转存中…(img-65Xx6NTa-1712987646672)]

克隆虚拟机_无法为共享或远程虚拟机创建克隆-程序员宅基地

文章浏览阅读3.8w次,点赞2次,收藏11次。下面我们来讲一下如何通过已经创建好的虚拟机spark01克隆出spark02和spark03来,从而满足搭建大数据集群环境需要多台虚拟机的需求。完整克隆的虚拟机可以脱离原始虚拟机独立使用,不与原始虚拟机共享任何资源,是完全独立的虚拟机。链接克隆的虚拟机需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。我们自然是要选择完整克隆的,我们需要的是完全独立的虚拟机。克隆虚拟机我们就讲到这里了。下一篇我们将讲一下如何。欢迎start,欢迎评论,欢迎指正。上一篇我们已经讲过了。_无法为共享或远程虚拟机创建克隆

利用css画三角形_盒子上方小三角css-程序员宅基地

文章浏览阅读304次。利用css画三角形,应用场景常见于各类电商站侧边栏_盒子上方小三角css

SDL2 显示视频并在视频上显示文字_sdl2显示视频-程序员宅基地

文章浏览阅读905次。SDL2可以直接显示视频,也可以在mfc控件上显示,光显示图像比较简单,但是SDL本身不带字库,因此不能直接显示文字,需要调用第三方库完成。 SDL2可以直接从官方下载,但显示文字需要用扩展库SDL_ttf实现,ttf是True Type Font的缩写,ttf是Windows下的缺省字体,它有美观,放大缩小不变形的优点,因此广泛应用很多场合。使用ttf库的第一件事要从Windows的字库下拷贝出一个字库出来,最好是中文字体,这样可以同时支持英文和中文显示。它一般在c:\w..._sdl2显示视频

Codeforces 637B Chat Order 【模拟】_codeforce637b-程序员宅基地

文章浏览阅读493次。题目链接:Codeforces 637B Chat Order_codeforce637b

解决Form或UserControl接收不到KeyDown等事件_winform 默认接收不了keydown事件,需要点一下才行-程序员宅基地

文章浏览阅读2.6k次。解决Form或UserControl接收不到KeyDown等事件2011-02-01 来自:博客园 字体大小:【大 中 小】摘要:当Form包含自定义控件,或UserControl存在嵌套时,外层的对象就会接收不到KeyDown等事件了,但是,我们可以通过override基类的ProcessDialogKey方法来达到同样的效果  当Form包含自定义控件,或U_winform 默认接收不了keydown事件,需要点一下才行

推荐文章

热门文章

相关标签