Nature:为什么人工智能需要理解因果?

2023-10-30

e89714e384714ec20adf624658a102a8.jpeg

转自:集智俱乐部

作者:Neil Savage

导语:为什么药物只对某些人有效,而对另一些人无效?为什么 ChatGPT 会产生违背常识的答案?机器学习的发展似乎遇到了障碍,其中症结或许在于“相关性不等于因果性”。近日发表在 Nature 的一篇评论文章指出理解因果关系对于人工智能的重要性。因果推理让机器具备应对变化环境的能力,让机器可以像人类一样通过想象来学习。著名计算机科学家、“贝叶斯网络之父”Judea Pearl 在推特上转发了这篇文章并激动地评论道:Nature 杂志发现了因果!

432f81b53a8273179aa2130174c7549e.jpeg

Rohit Bhattacharya 开始攻读计算机科学博士学位时,他的目标是构建一种工具,帮助医生识别对免疫疗法反应良好的癌症患者。这种方式的治疗可以帮助人体的免疫系统对抗肿瘤,并且对可以和免疫细胞产生的蛋白质结合的恶性肿瘤效果最好。Bhattacharya 的想法是创建一个神经网络,可以同时描述肿瘤和人的免疫系统的基因,然后预测哪些人可能从治疗中获益。

但他发现他的算法不能胜任这项任务。他能够识别与免疫反应相关的基因模式,但这还不够[1]。他解释说: “我无法说这种特定的结合模式,或这种特定的基因表达,就是患者对免疫疗法反应的因果决定性因素。”

Bhattacharya 是被一个古老的格言所羁绊,即相关性不等于因果关系——这也是人工智能(AI)的一个基本障碍。计算机可以通过训练来发现数据中的模式,即使是那些非常微妙以至于人类可能会错过的模式。计算机还可以利用这些模式进行预测——例如,肺部X光片上的斑点表明有肿瘤[2]。但当涉及到因果关系时,机器通常就会不知所措。人们在生活中理解这个世界如何运转,而机器则缺乏这方面的常识。例如,原本用来训练发现肺部病灶的人工智能程序,有时会误入歧途,识别的却是图像中用来标记 X 光片右侧的符号。[3] 至少对人来说很明显的是,X光片上字母“R”的形状和位置与肺部疾病的迹象之间没有因果关系。但是如果没有这种理解,这些标记的绘制或者是定位方式的任何差异都可能将机器引上错误的方向。

印第安纳州普渡大学的电气工程师 Murat Kocaoglu 表示,要让计算机执行任何决策,它们需要理解因果。“任何超出预测的事情都需要某种因果关系的理解。如果你想计划一些事情,如果你想找到最好的政策,就需要某种因果推理模块。”

将因果模型整合到机器学习算法中,也可以帮助能够自主移动的机器做出如何在环境中游走的决定。“如果你是一个机器人,就会想知道当你以不同的角度迈步,或者推一个物体时,会产生什么后果。”Kocaoglu 说。

Bhattacharya 的案例中,可能是系统指出的某些基因让治疗效果更好。但由于缺乏对因果的理解,这意味着其他解释也可能成立,比如反过来,是治疗影响了基因表达,或者另一个隐藏的因素同时影响了基因表达和疗效。这个问题的潜在解决方案在于所谓的因果推理(causal inference)——即用数学的形式化方法来确定一个变量是否影响另一个变量。

70246df3b08b9f1ca8e6455d73c854c4.jpeg

图1. 计算机科学家 Bhattacharya 和他的团队讨论将机器学习应用于因果推理。| 图片来源: Mark Hopkins

长期以来,经济学家和流行病学家一直使用因果推理来检验他们关于因果关系的观点。2021年诺贝尔经济学奖授予了三位研究人员,他们利用因果推理提出了诸如提高最低工资是否会导致就业率下降,或者多上一年学会对未来收入产生什么影响等问题。如今,越来越多的计算机科学家致力于将因果与人工智能结合起来,赋予机器解决这些问题的能力,帮助它们做出更好的决策,更有效地学习,并适应变化,Bhattacharya 是其中之一。

因果观念指导人类在世界中前行。计算机科学家 Yoshua Bengio 说,“拥有一个关于世界的因果模型,哪怕是不完美的,也能让我们的决策和预测更加有力,因为我们所拥有的就是不完美的世界模型。”Bengio 领导着加拿大蒙特利尔四所大学合作创办的米拉-魁北克人工智能研究所(Mila-Quebec AI Institute)。人类对因果关系的理解支持了想象、懊悔等属性;如果赋予计算机类似的能力,就可以将这些属性迁移给计算机。

79f0d730837c9ff2d05a05216ee0dfdf.jpeg

图2. Yoshua Bengio(前)在米拉-魁北克人工智能研究所(Mila-Quebec AI Institute)

攀登因果之梯

过去10年,人工智能取得的重大成功——比如在各种竞赛游戏中击败人类、识别图像内容,以及在过去几年中,根据书面提示生成文本和图片——都是由深度学习(deep learning)推动的。通过研究大量的数据,这类系统可以学习如何把一个事物与另一个事物相关联,随后这些习得的关联性就可以投入实际应用。但这只是登上了梯子的第一阶,而这把梯子通向更高目标。加州大学洛杉矶分校认知系统实验室主任、计算机科学家朱迪亚 · 珀尔(Judea Pearl)称这个更高目标为“深度理解”(deep understanding)。

2011年,Pearl 因为开发了一种概率和因果推理的算子,获得了图灵奖,这个奖项通常被称为计算机科学的诺贝尔奖。他描述了推理的三个层次[4]。最基本的层次是“见”,即通过观察在事物之间建立联系的能力。今天的人工智能系统在这方面非常擅长。Pearl 将下一个层次称为“做”——对某事做出改变,并关注后果。这就是因果发挥作用的地方。

c585864e8decd137cf765bed2996b6ce.jpeg

图3. Judea Pearl 提出的因果阶梯

计算机可以通过检查干预措施建立因果模型:一个变量的变化如何影响另一个变量。与当前人工智能中为变量之间的关系只创建一个统计模型不同,计算机创建了多个统计模型。在每一个模型中,保持变量之间的关系不变,但却改变了其中一个或几个变量的值,而这样的改变可能会导致新的结果,所有这些都可以用概率和统计学的数学方法来评估。Bhattacharya 说: “我认为,因果推理就是将人类如何做决定的过程数学化。”

Bengio 因其在深度学习方面的工作获得了2018年的图灵奖,以表彰他在深度学习方面的工作,他和他的学生已经在用训练神经网络的方式来生成因果图[5],这是一种描述因果关系的方式。简单来说,如果一个变量是另一个变量的原因,就用一个箭头从前一个变量指向后一个变量;如果因果关系反过来,那么箭头也是颠倒的;而如果两者没有关联,他们之间就不会有箭头。Bengio 的神经网络被设计为随机生成一个因果图,然后检查它与给定数据集的兼容性。如果一些图比其他图能更好地拟合数据,那么这些图大概率会更精准,于是神经网络学习生成更多类似的图,目的是找能最佳拟合数据的那个图。

这种方法类似于人解决问题的方式:人们生成可能的因果关系,并假设最符合观察结果的因果关系最接近事实。例如,当一个玻璃杯被扔到混凝土上时,看到它破碎,可能会导致一个人认为对坚硬表面的冲击导致玻璃杯破碎。把玻璃杯换成其他物品,或者把混凝土换成柔软的地毯,或者尝试从其他高度上跌落,都能让一个人改进关系模型,更好地预测一旦失手掉东西的后果。

因果推理让AI懂得应对变化

因果推理的一个关键好处在于,它可以让人工智能更有能力应对不断变化的环境。现有的人工智能系统只根据数据中的关联进行预测,因此极易受到这些变量相互关联方式产生的任何变化的影响。当学习关系的统计分布发生变化时——无论是由于时间推移、人类行为还是其他外部因素——人工智能将变得不那么准确。

例如,Bengio 可以在蒙特利尔当地的道路上训练一辆自动驾驶汽车,而人工智能有可能学会如何安全驾驶汽车。但如果将同样的系统转移到伦敦,它会立即失灵,原因很简单:加拿大的汽车是靠右行驶的,而英国的汽车是靠左行驶的,此前人工智能学到的一些关系可能需要反过来。他可以利用伦敦的数据从头再次训练人工智能,但这不仅需要时间,还意味着由于新模型取代了旧模型,该软件将不再适用于蒙特利尔。

另一方面,因果模型可以让系统学习许多可能的关系。Bengio说:“在可观察的全部事物之间不是只能学到一套关系,而是有无数个关系。你构建一个模型,就可以解释环境中任何一个变量发生变化时可能发生的情况。”

人类正是驾驭了因果模型才能快速适应变化。一个加拿大司机飞到伦敦,只需花几分钟调整一下,就可以左舵的路面上完美驾驶。在英国驾车右转时才需要处理路径交叉问题,这与加拿大情况不同,但它对驾驶员转动方向盘时的预期,或者轮胎如何与路面相互作用都没有影响。“我们对世界的了解基本上是一样的,”Bengio说。因果建模使系统基于当前对世界的理解就能确定干预的效果,而不必对任何事都需要从头开始,重新学习。

这种在不搅乱已有认知的情况下应对变化的能力也使人类能够理解一些非真实情况,比如奇幻电影。Bengio 解释道,“我们的大脑能够将自己投射到一个虚构的环境中,在这个环境中,一些事情发生了变化。物理定律不同了,或者出现了怪物,但其余的还都一样。”

0e22c6fb5f21a216853d3bd6c24ab4db.jpeg

图4. 加州大学洛杉矶分校认知系统实验室主任 Judea Pearl 荣获2011年图灵奖

来源:UCLA Samueli School of Engineering

反事实

想象的能力在 Pearl 的因果推理层次结构中处于最高层。Bhattacharya 说,关键是推测未采取行动的后果。

Bhattacharya 喜欢通过给学生们阅读 Robert Frost 的诗歌《未选择的道路》来解释反事实。在这首诗中,叙述者谈到必须在穿过树林的两条路之间做出选择,并表达了不知道另一条路通向哪里的遗憾。Bhattacharya 说: “他在想象,如果自己走上一条不同的道路,他的生活会是什么样子。”这就是计算机科学家想用因果推理机器去复刻的东西:提出“如果......会如何?”这样的假设问题的能力。

想象如果我们采取不同的行动,结果会是更好还是更糟,这是人类学习的一个重要方式。Bhattacharya 说,给人工智能注入类似的“反事实遗憾”能力是有用的。机器可以根据它没有做出的选择来运行场景,并量化它做出不同的选择是否会更好。一些科学家已经利用反事实遗憾来帮助计算机改进扑克游戏[6]。

想象不同情景的能力也可以帮助克服现有人工智能的一些局限性,例如难以应对罕见事件。Bengio 说,根据定义罕见事件在系统的训练数据中即便出现了,也会非常稀疏,以至于人工智能无法学到它们。一个开车的人可以想象从未见过的场景,比如一架小飞机降落在路上,然后基于他们对事情如何运作的理解,定制化设计潜在策略以应对这种特殊情况。然而,如果一个自动驾驶汽车没有因果推理的能力,那么它最多只能对路上的物体做出一般性的响应。通过使用反事实来学习事物如何运作的规则,汽车可以更好地为罕见事件做准备。从因果规则出发,而不是一长串过去发生过的案例列表,最终使系统更加通用。

利用因果关系将想象力编程到计算机甚至可能创造出自动化科学家。在微软研究院主办的2021年在线峰会上,Pearl 认为,这样的系统能够生成假设,能够挑选用于检验这个假设的最佳观测数据,以及能够决定如何设计实验以产生这样的数据。

将因果纳入人工智能

但是现在,还有很长的路要走。因果推理的理论和基础数学已经确立,但人工智能实现干预和反事实的方法仍处于初级阶段。Bengio说:“这仍然是非常基础的研究。我们正处于以非常基础的方式弄清楚算法的阶段。”等到研究人员掌握了这些基本原理,还需要继续对算法进行优化,以便能高效运行算法。目前还不确定这一切需要多长时间。Bengio说:“从我的感觉上看,既然已经拥有了全部概念工具,解决剩下的可能只是几年的问题。不过通常实际需要的时间要比预期长,甚至可能还要数十年之久。”

Bhattacharya 认为,研究人员应该借鉴机器学习。机器学习的迅速发展,在一定程度上是因为程序员开发了开源软件,让其他人能够使用编写算法的基本工具。同样道理,因果推理的工具化也会产生类似的效果。Bhattacharya说,“包括一些来自科技巨头微软和卡内基·梅隆大学的开源软件包,最近几年有很多进展令人兴奋。”他和同事们也开发了一个开源的因果模块,称为“Ananke”。目前这些软件包仍在持续开发中。

Bhattacharya 还希望在计算机教育的早期阶段引入因果推理的概念。他说,目前这一主题主要在研究生阶段教授,而机器学习在本科生培训中很常见。他说:“因果推理是非常基础的,我希望看到它以某种简化的形式也被引入高中阶段。”

如果研究人员能够成功地将因果纳入计算,那么人工智能的灵活度将会达到一个全新的水平。机器人可以更容易地为自己导航。自动驾驶汽车可能会变得更加可靠。评估基因活性的计划可能产生对生物机制新的理解,进而转化为更新、更好药物的开发。“这会改变医学。” Bengio 说。

即使是像 ChatGPT 这样流行的自然语言生成器,能让生成的文本读起来就像是人写的一样,也可以通过纳入因果从中获益。现在的算法会自我背叛,它会写出自相矛盾的文字,或者其表述违背了我们所知世界的真相。纳入因果的 ChatGPT 可以为它试图表达的内容构建一个连贯的计划,并确保它与我们所知道的事实一致。

当被问及这是否会让作家失业时, Bengio 表示这可能需要一段时间。他说:“如果你在十年后失去了工作,但是却被治好了癌症和阿尔茨海默氏症呢?这也是一笔不错的买卖。”

参考文献

[1] Shao, X. M. et al. Cancer Immunol. Res. 8, 396–408 (2020).

[2] Chiu, H.-Y., Chao, H.-S. & Chen, Y.-M. Cancers 14, 1370 (2022).

[3] DeGrave, A. J., Janizek, J. D. & Lee, S.-I. Nature Mach. Intell. 3, 610–619 (2021).

[4] Pearl, J. Commun. ACM 62, 54–60 (2019).

[5] Deleu, T. et al. Preprint at https://arxiv.org/abs/2202.13903 (2022).

[6] Brown, N., Lerer, A., Gross, S. & Sandholm, T. Preprint at https://arxiv.org/abs/1811.00164 (2019).

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

b6eb80292ea621a69ff189ca27d6f68e.jpeg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nature:为什么人工智能需要理解因果? 的相关文章

  • Java 创建文件,文件夹不存在时,如何创建

    创建文件 String url C Users yz Desktop test new File String format s s s url test txt createNewFile 如果文件夹路径不存在则会报如下错误 正确代码 S
  • C++学习(四八三)无法从“std::pair<const _Kty,_Ty>”转换为“_Objty”

    使用vs2017编译osgEarth2 9的FeatureSourceIndexNode cpp遇到的 使用VS2017编译osgEarth2 7过程中遇到问题总结 justslowdown going的博客 CSDN博客 gt gt xm
  • 去除快捷方式箭头_桌面快捷方式小箭头去除与恢复方法

    电脑桌面的快捷方式图标默认都带有小箭头 不知道是不是自己心情不好 总之越看越不爽 今天我将出一期教程专门对付这个小箭头 去除或者保留 由我做主 去除小箭头方法 方法一 1 在键盘上按 win R 输入 regedit 点击 确定 2 鼠标右
  • WPF 样式 Style 封装

    从上面截图可以看出有三个圆形的 Button 他们的大小和鼠标悬停的效果一样 只是颜色各有不同 所以在实际的开发过程中最好是能够将样式模板封装起来 这样做减少了代码冗余 在开发过程中 如有相同的按钮样式实现直接应用就可以了 后期也利于阅读和
  • samba3.0 详细配置实例

    现在做了部分改动 并添加了mysql虚拟用户 还有补充了samba中批量增加用户的脚本 Samba3 0服务器实战调试 Centos5预装的samba已经是Samba版本3 0 23c 功能已经非常强大了 今天我们调试的重点不是samba3
  • Messari:21年第二季度Web3及NFT报告

    注 原文来自Messari 以下为全文编译 如果今年年初 有人走到我面前说 NFT的销售额将轻松超过10亿美元 GaryVee将推出NFT项目 Axie Infinity将成为五大NFT市场之一 我会回答 我会相信其中之一 但是 过去的一个
  • golang web开发获取get、post、cookie参数

    golang web开发获取get post cookie参数 在成熟的语言java python php要获取这些参数应该来讲都非常简单 过较新的语言golang用获取这些个参数还是费了不少劲 特此记录一下 golang版本 1 3 1
  • chrome浏览器开发者工具network屏蔽网络请求的方法

    在使用开发者工具调试的时候 有的网页有一堆轮询的无关紧要的请求 密密麻麻的影响我们调试 所以我们可以在network面板把他们都屏蔽掉 屏蔽之后 这个请求就不会被发出了 注意 如果这个请求含有重要功能 那么就不建议屏蔽了 要不网页会崩溃 1
  • 远程桌面访问软件:TeamViewer

    TeamViewer介绍 提起远程软件 很多朋友第一个想到的肯定是QQ远程 但是肯定也有朋友会发现 QQ远程用起来并不是那么流畅 今天向大家推荐一款简单 易用 无比流畅的远程软件 TeamViewer 这是一款全球著名的远程软件 很多大公司
  • Keil 逻辑分析 Logic Analyzer 窗口 realview mdk 逻辑分析 窗口 监视 IO 引脚状态

    Keil 逻辑分析 Logic Analyzer 窗口 realview mdk 逻辑分析 窗口 监视 IO 引脚状态 找了好久没找到怎么查看IO引脚的逻辑时序图 帮助里也没有介绍 最后还是让我找到了 哈哈 点菜单 VIEW gt symb
  • Selenium元素定位方法

    前提 必须定位到唯一元素 1 id定位 driver find element by id kw send keys 日历 2 name定位 driver find element by name wd send keys 杰森 3 cla
  • mysql判断日期写法

    mysql判断时间是否是当天 昨天 今天 select count 1 from sign detail where date format create time Y m d date format now Y m d and membe
  • 如何分辨NMOS和PMOS的电路符号

    这个是N沟道增强型MOS管的电路符号 这个是P沟道增强型MOS管的电路符号 有时我们很容易把这两个符号弄混 首先对于单个MOS管而言内部衬底和源极是接在一起的 所以我们看到的MOS管电路符号 源极和衬底是接在一起的 并且这个箭头处的电极为衬
  • 通过RS485进行modbus通讯协议

    一 协议介绍 普通串口挂载485芯片 使用modbus协议来传递信息 modbus 也有ASCII和 RTU之分 这是他们之间的区别 协议 开始标记 结束标记 校验 传输效率 程序处理 ASCII 冒号 CR LF LRC 低 直观 简单
  • 动态贝叶斯网络DBN

    贝叶斯网络 贝叶斯网络 Bayesian Networks 也被称为信念网络 Belif Networks 或者因果网络 Causal Networks 是描述数据变量之间依赖关系的一种图形模式 是一种用来进行推理的模型 贝叶斯网络为人们提
  • 【Android】RxJava+Retrofit+OKHttp3实现数据上传

    依赖引入 Gson implementation com squareup retrofit2 converter gson 2 1 0 OkHttp3 implementation com squareup okhttp3 okhttp
  • SQL语言---数据更新

    文章目录 前言 一 数据更新之插入数据 1 插入单个元组 1 语句格式 2 语法说明 INTO子句 VALUES子句 插入规则 3 举例讲解 例子1 例子2 易犯错误 2 插入子查询结果 1 语句格式 2 语法说明 INTO子句 与插入单条
  • 成功解决RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be

    错误代码 问题原因 这是由于Input type 与weight type的类型不符合 可以注意到Input type是没有cuda的 而weight type是在cuda上也就是有gpu的加载的 错误代码后的or可以不用管 解决办法 既然
  • DBA 面试题目

    from ITPUB more 技术方面 1 解释冷备份和热备份的不同点以及各自的优点 解答 热备份针对归档模式的数据库 在数据库仍旧处于工作状态时进行备份 而冷备份指在数据库关闭后 进行备份 适用于所有模式的数据库 热备份的优点在于当备份
  • c 语言超时溢出问题

    在嵌入式开发过程中 经常会遇到溢出问题 例如在使用软定时判断时间是否超时 如下 if timer ticks gt timeout timer ticks是一个无符号数 假如是一个无符号8位 当timer ticks为254 超时时间为2个

随机推荐

  • 【100%通过率 】【华为OD机试真题c++ 】最大平分数组【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定一个数组nums 可以将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 最大的平分组个数 输入描述 第一行输入 m 接着输入m个
  • awk与shell参数传递(或说变量传递)二三点

    awk与shell间参数 或说变量传递 是shell编程中常有的话题了 因为其中实际涉及到不少的知识点 比如包括 a 进程进通信 b awk参数形式 c shell命令解析 命令替换 等等 在此列举二三点例子 做为小结 以下主要分为二部分
  • 路由器工作原理

    定义 路由器 router 是互联网的枢纽 是连接英特网中各局域网 广域网的设备 它会根据信道的情况自动选择和设定路由 以最佳路径 按前后顺序发送数据 作用在OSI模型的第三层 提供了路由与转发两种重要机制 路由 路由器控制层面的工作 决定
  • 使用Python绘制余弦函数的可视化曲线

    使用Python绘制余弦函数的可视化曲线 余弦函数是一种重要的三角函数 其图像可以用来描述很多自然现象 在Python中 我们可以使用plot函数快速地绘制出余弦曲线的图像 首先 我们需要导入必要的库 import numpy as np
  • 如何在H264数据中获取PTS

    H264的ES原始数据一般是以NAL Network Abstract Layer 的格式存在 可以直接用于文件存储和网络传输 每一个NALU Network Abstract Layer Unit 数据 是由数据头 RBSP数据组成 首先
  • 计算1~100之间所有整数的和

    sum 0 for i in range 1 101 sum sum i print sum 5050 sum 0 i 1 while i lt 100 sum sum i i i 1 print sum 5050
  • 在VBA中写SQL语句的注意事项

    最近使用VBA连接MySQL数据库比较多 总结出一些书写方面的注意事项 分享出来 希望能给大家一些提示 同时也给自己做个备忘 1 单引号 双引号 在标准SQL语句中 字符串使用的是单引号 但是MySQL中 单引号和双引号都适用 平时使用时也
  • Python学习第七篇:sys标准库

    Python学习第七篇 sys标准库 活动地址 CSDN21天学习挑战赛 Python的sys模块提供访问由解释器使用或维护的变量的接口 并提供了一些函数用来和解释器进行交互 操控Python的运行时环境 要进行使用 直接导入即可 impo
  • Spring中ApplicationListener事件监听机制详解

    1 概述 Spring中事件监听 也有说法叫事件通知 机制 其实本质是观察者模式的应用 当某个事件发生时 其会被广播出去 监听该实践的listener就会被触发然后执行响应的动作 该模式可良好应用于程序解耦 类似消息的发布订阅 它的事件监听
  • 为什么绝对收敛级数具有可交换性+为什么一般项级数不能使用比较判别法/等价判别法?

    绝对收敛 可以认为是级数某种 本质上 是收敛的 即其正项和负项的和分别是收敛的 而条件收敛 往往是正项负项的和不收敛 因为在级数中的排列导致互相抵消 所以 看起来 收敛了 数列收敛 也就是数列的前N项和的极限存在 对于正项数列 在前N项改变
  • 标签的正确使用

    原文 http book csdn net bookfiles 502 10050217296 shtml 7 7 图片 标签 7 7 1
  • LTC2380-24使用记录

    CNV脉冲时间 至少保持20ns 触发转换之后 标志位忙 此期间 芯片在转换 最长花掉392ns 20210115 转换系数 FS 5 0 6uV 10 2 24 时钟的上升沿输出数据 高位先输出 20210119 数据处理问题 高精度24
  • 移植linux开源软件到android系统

    例子 vlc android vlc android jni 目录 写连接vlc core 的jni 代码 vlc目录 configure host arm linux androideabi 生成linux Makefile 后面的编译和
  • 深入理解Python中的GIL(全局解释器锁)

    深入理解Python中的GIL 全局解释器锁 一 GIL是什么 GIL 又称全局解释器锁 作用就是限制多线程同时执行 保证同一时间内只有一个线程在执行 线程非独立的 所以同一进程里线程是数据共享 当各个线程访问数据资源时会出现 竞争 状态
  • AWK用户自定义函数

    函数是程序的基本组成部分 AWK允许我们定义自己的函数 一个大项目可以分为多个函数并且每个函数可以写 独立测试 它提供了可重用性的代码 下面给出的是用户自定义函数的一般格式为 function function name argument1
  • Android开发中onConfigurationChanged()不起作用

    很多开发者 在开发中很可能遇到的这样的问题 在Activity中重写了onConfigurationChanged 但是该函数就是不执行 这种问题的解决方式一般是没有在AndroidManifest中添加configuration的标签 可
  • 【模型评估】ROC(Receiver operating characteristic)与 AUC

    前面 我们提到了混淆矩阵 以及根据混淆矩阵进一步计算得到的敏感度 召回率 特异度 精确度 准确度 F1 Score等等 那他们的前提都是要首先确定一个截断阈值 模型评估 混淆矩阵 confusion matrix 之 TP FP TN FN
  • 操作系统引论和进程管理部分习题

    一 单选题 1 操作系统是一种 A 通用软件 B 系统软件 C 应用软件 D 软件包 正确答案 B 2 操作系统的 管理部分负责对进程进行调度 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案 D 3 若把操作系统看作计算机系统资
  • Python高级用法总结—(列表推导式,迭代器,生成器,装饰器)

    原文地址 Python高级用法总结 列表推导式 迭代器 生成器 装饰器 Python高级用法总结 列表推导式 迭代器 生成器 装饰器 列表推导式 list comprehensions 场景1 将一个三维列表中所有一维数据为a的元素合并 组
  • Nature:为什么人工智能需要理解因果?

    转自 集智俱乐部 作者 Neil Savage 导语 为什么药物只对某些人有效 而对另一些人无效 为什么 ChatGPT 会产生违背常识的答案 机器学习的发展似乎遇到了障碍 其中症结或许在于 相关性不等于因果性 近日发表在 Nature 的