首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >听说程序员又把妹子谈飞了?——逻辑推理浅谈(一)

听说程序员又把妹子谈飞了?——逻辑推理浅谈(一)

作者头像
magic2728
发布于 2019-12-03 14:51:44
发布于 2019-12-03 14:51:44
47900
代码可运行
举报
文章被收录于专栏:MatheMagicianMatheMagician
运行总次数:0
代码可运行

有一天,程序员和妹子聊天,讨论到手机和电脑边充电边使用对电池是否有害的问题,大概对话是这样:

程序员:我听说电脑一般可以边充电边使用,手机不可以呢。

妹子:哦,好像是这样吧。

程序员:对呢,因为电池不能边充电边使用的。

妹子:嗯嗯,对啦,我想电脑充电时应该是用电源供电的,手机应该是用电池供电的呢。

程序员:哇,你好棒,怎么能推出这么深刻的结论!

妹子:这不很简单么……

程序员:天哪,你用到了逻辑推理中最深刻的三段论推理呢!而且内化为自己的能力还浑然不知,好棒哟!

妹子:你好无聊,再见!

嗯嗯,妹子虽然已经走了,可是我们为了饭碗和内心追求,程序员还是决定来看看这样一段自然语言对话里到底蕴含着怎样的逻辑推理过程,点滴中积累能力,以便日后能够少加点班。

我们在日常生活中,经常要用到各种形式的逻辑推理,无论是买菜时候算账,还是考试时候揣摩出题者意图,或者是猜测让你心动的女生到底喜不喜欢你的时候,都需要计算,推理,想象,来去估计表面上观察不到的内容,以获取真相。可以说,逻辑推理,是人类思考智慧的最集中体现之一,它可以最高效地模拟和补齐观察的不足,还能为决策提供未来判断的依据。

那我们人类到底有着怎样的逻辑推理能力呢?

其实,我们信以为真的推理逻辑无非两种,形式逻辑辩证逻辑。这一篇我们先讲形式逻辑。

形式逻辑

大概高中数学演绎推理部分就讲过相关的内容。有效的推理有两类合情推理和演绎推理,其中合情推理又包括类比推理和归纳推理两类,所以一共是三种类型,他们的推理模型如下:

类比推理(特殊到特殊):

归纳推理(特殊到一般):

演绎推理(一般到特殊):

仅讨论推理逻辑的正确性,如果条件没有问题的话,那么仅有演绎推理是绝对正确的。而另外两个成立与否,并没有直接的理论支撑,需要更加深入的分析。我们通过几个例子,来进一步认识这些推理的逻辑:

类比推理

E.g.1 等差数列的通项公式为:an = a1 + (n - 1) * d,那么等比数列的通项公式为:bm = b1 * q ^ (m - 1)。

这个从浅层的形式上,可以类比他们之间的各种性质,只需要把对应运算符号修改过去。但不是每次都可以成功,比如两个数列的求和公式之间就没有这种类比性。而如果从源头开始推理,就会发现这些类比成立的基础是:等差数列是等比数列的对数数列。于是这个通项公式就是二者等价的了,但是等差数列的求和公式和等比数列的乘积公式才会有等价关系,和求和之间并没有什么联系,这一点从类比基础就很容易看出来。

E.g.2 地球和火星都有大气层,是恒星,有四季,温度适宜,地球上有生物。故火星上也有生物。

这一条就是明显不一定成立的结论,但却一点不妨碍它在人类逻辑中的作用,类比能提供很多猜想来作为研究的方向,凭借一些并不能严格成立但又时常有效的经验往往可以更好地找准研究的方向,由于其条件没有那么严格,所以执行起来条件也宽松,在一定意义下人类凭借此感觉建立了很多研究方向的基础,再加上一些严谨的演绎推理,构筑了一个又一个领域的知识宝库。

归纳推理

E.g.3 我每次看到有人告诉我叫“天鹅”的动物都是白色的,因此天鹅是白色的。

这是典型日常思维中的归纳推理,有智慧的人往往会选择保留这种思维方式并大胆使用,同时也谨慎地知道这很有可能是错的。使用它们应像类比推理一样,既相信其方向的潜力,同时对其是否真的成立仍然需要严格的论证才是。

这里天鹅在我的脑海里构成一个集合,我曾经往这个集合里添加过一些元素并试着总结他们的特性,但是和那个官方认定的天鹅集合的描述和正确答案之间还真不一定完全正确,我有样本的监督,因为量和学习方式的缺陷,使得我并没法完全推理正确,比如其实还有黑天鹅,而我只是没见过而已。

而一种快速的方案是查看文字描述的“天鹅”定义,并已知为标准,但是要承受的是文字到概念映射的信息损失和偏差。最后,可能天鹅集合都不怎么客观存在,只是人类的主观分类,而且科学界还没有完全统一。那这个体系就崩塌要陷入混乱了……看来啊,研究数学真幸福,这些细枝末节具体的没法解决的问题都可以不碰。

E.g.4 数列的前几项为1, 2, 4,8, 16,下一项是多少?

很多人一看,会想当然的看成下一项是前一项乘以2的规律于是信誓旦旦地写上32,这便是一种归纳假设下的结论。但世界上不止这一个答案,比如我们考虑由圆上的若干个连接点连线划分的区域:

当n = 6的时候,

竟然是毫不合直觉的31!

你现在觉得不合理,是不是数错了,是因为你还没有掌握这类点线的划分问题的规律,而只能理解到乘以2这样的程度,就像当时不理解等比数列的求和公式不能类比于等差数列,发现其本质联系是对数关系才能够完全理解一样。

演绎推理

E.g.5 孟德尔认为如果豌豆的圆粒还是扁粒性状是由一对基因g in G = ExpComb(S = {A, a}, n = 2)(这个集合的含义是从有序集S中有放回地抽取n次元素后排序的全集)来分别控制的,其中只要有一个A则表现为圆粒,自然条件下的豌豆都是纯种的AA或aa,没有Aa的品种(注意Aa = aA,因为元素是排序的)。假设交配的豌豆后代从双方各等概率获得一个基因,那么两代以后,扁粒的概率是1 / 4。

这个就是一个典型的演绎推理了,用了一点简单的概率论和排列组合知识,而真正核心的部分看起来还不在推理,在这些前提的设定。好处在于只要这些前提成立,那么结论一定成立,就像1 + 1 = 2那样肯定。但是这天才般的简化和定义假设并不那么容易得到,靠瞎猜肯定不行,往往还需要合情推理的支持,还有实验结论的观察,才能助你找到假设的一些可能方向,再在实验的支持下得到相对可靠的结论。

E.g.6 最后一个例子我们回到开头的那个故事,那其实是一个典型的三段论式的演绎推理,加一点最简单的布尔代数。

下面是文字版的演绎推理三段论:

对手机:

大前提:充电时,电器(集合)使用有害是因为电池边充电边使用其供电。

小前提:充电时,使用手机(元素特例)有害。

结论:充电时,使用手机是电池供电的。

电脑的同理,只不过大前提改成否命题即可:

大前提:充电时,电器(集合)使用无害是因为电池没有边充电边使用其供电。

小前提:充电时,使用电脑(元素特例)无害。

结论:充电时,使用电脑不是电池供电的,电池和电源直供二者必须有且仅有一个为真,故是电源直接供电的。

这里的推导其实有4个细节,值得一提:

  1. 大前提其实是我们的隐含知识(常识),但相对正确的常识应该是:电器的电池边充电边使用是有害的;我们仅用了其一个子集“充电”上的特例,没有考虑不充电时候的情况,相当于布尔运算中把”与真”直接当成单位元消去;
  2. 这里手机其实用了其逆命题,电脑用了逆否命题,前者不一定正确,比如充电时使用有害可能是烫手,而后者一定正确,只要我们的常识是正确的;
  3. 要得到问题结论,还有另外一个隐含知识:电器工作需要电源,电池和电源直供有且只有一个供电;
  4. 整个问题都是在使用的条件下进行的,这是全集。

以上一切都可以用下面的Wenn图表示的集合关系来说明:

当然这里最好的说明是用伪代码,不,还是直接上代码吧:

符号说明:

M:电子产品类

c:电脑

m:手机

cc:电池充电

st:可否充电时使用

s:电源选项

CE:电池

DR:直接电源

C++代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdlib.h>
#include <iostream>

using namespace std; 

enum Source {CE, DR};

class MC {
private:
   enum Source s;
   bool cc, st;

public:
   MC(bool cc, bool st):cc(cc), st(st) {}
   ~MC() {}
   
   enum Source GetSource();
};

enum Source MC::GetSource() {
   // logic : cc && (s == CE) = ! st
   if (cc) {
       return st ? DR: CE;
    } else {
       if (st) {
           cerr << "Cannot judge source, please get cellcharged!\n";
           exit(- 1);
       }  
   }  
}

int
main () {
   MC c(true, true), m(true, false);
   cout << "Computer is sourced by " <<((c.GetSource() == CE) ? "cell": "direct source") <<" when cell charged.\n";
   cout << "Mobile phone is sourced by " <<((m.GetSource() == CE) ? "cell": "direct source") <<" when cell charged.\n";
}

一个更为惊喜的想法是,其实这三类推理恰恰对应机器学习里的三类学习模式:

归纳推理:集合里的大量元素恰是我们要收集的样本,我们以某个函数族在上面学习这些样本的属性,通过这种方式赖主观认识他们,最后推演到新来的样本上。诸如回归,分类模型等等,都是归纳推理的具体表现,归纳的好坏取决于最开始的函数族和学习策略。

类比推理:kernel类的诸如KNN的机器学习方法就是用的类比推理,这其中的核心便是在已知维度上计算样本相似度,然后以之作为权重把结果推向未知维度。

演绎推理:在知识图谱等机器学习技术上,使用的就是这套逻辑,有点硬,召回低,但是足够可靠。

其实人类也是在这些推理过程中掌握更多的知识,甚至创造知识的。机器学习不过是用这个工具来执行人类的这几种推理罢了,本质上还是人类学习啦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MatheMagician 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
知识图谱—知识推理综述(一)[通俗易懂]
所谓的知识推理,就是在已有知识的基础之上,推断出未知的知识的过程。通过从已知的知识出发,通过已经获取的知识,从中获取到所蕴含的新的事实,或者从大量的已有的知识中进行归纳,从个体知识推广到一般性的知识。
全栈程序员站长
2022/06/28
3K0
知识图谱—知识推理综述(一)[通俗易懂]
知识推理技术解析
在人工智能领域,知识推理技术是一个不断发展的重要分支,它关注于如何让计算机系统使用预先定义的知识库进行逻辑推理,以解决复杂问题。这种技术基于一系列成熟的理论和方法,从传统的符号逻辑推理发展到现代的图谱推理和机器学习融合方法。知识推理不仅涉及知识的有效表示和存储,还包括如何通过逻辑运算对这些知识进行处理和推导出新的知识。
TechLead
2024/03/13
4400
知识推理技术解析
CAS-KG——知识推理
说明:CAS是国科大的简称,KG是知识图谱的缩写,这个栏目之下是我整理的国科大学习到的知识图谱的相关笔记。
全栈程序员站长
2022/08/24
8360
CAS-KG——知识推理
程序员的数学
有理数是整数和分数的集合,有理数的小数部分是有限或者无限循环的数;小数部分为无限不循环的数为无理数;
tandaxia
2019/05/23
1.2K0
人工智能之经典逻辑推理
人工智能课程复习笔记专题  人工智能绪论   人工智能之知识表示   人工智能之搜索方法  人工智能之经典逻辑推理  人工智能之专家系统  人工智能之不确定推理方法   人工智能之机器学习
用户7886150
2021/01/29
2.2K0
闯红灯到底该不该罚款?——逻辑推理浅谈(二)
我们当然期待完美的演绎推理式逻辑,这样我们说的每句话和每个行动都有的放矢。而缺陷却是我们的推理寸步难行,因为要找到绝对正确的大前提和小前提是不可能的,顶多在一定的范围或定义下成立。且推理的内容也很简单,即使复合几次,也没有什么高深的奥义。但是类似合情推理的方式,我们可以反过来用全面,联系,发展的眼光去质疑推理链条上的每一个假设,会不会有别的情况,以至于最后的结论可能是怎样的云云。而形式逻辑的起点也往往是辩证逻辑的一条路径,比如:
magic2728
2019/12/18
3650
每日思考第 84 期:程序员必备的思维能力-结构化思维
结合维基百科的定义,我们在顾名思义拆解分析下,结就是指 结合组成,构就是指 搭配构造。合起来就是对元素(要素、构建)的结合构造之意。
蜗牛互联网
2021/07/21
7390
揭秘LLM推理短板!新基准聚焦多步推理,多任务实验评估能力局限 !
推理是智能的基本组成部分,涉及复杂的流程,其中知识和逻辑推理的运用交织在一起。作者将推理定义为通过多次推理步骤逐步达成特定目标,以从现有信息中推导出新的知识(Yu等人,2024年);它始于设定目标,该目标可以由自己启动或明确提供,正如解决问题时常发生的那样;然后,一系列推理重复进行,直到实现目标,处理诸如常识或特定领域的信息等显性和隐性知识。
未来先知
2025/02/26
1581
揭秘LLM推理短板!新基准聚焦多步推理,多任务实验评估能力局限 !
从Bengio演讲发散开来:探讨逻辑推理与机器学习
近年来,深度神经网络的应用获得了巨大的成功,也推动了人工智能的飞速发展。然而,深度神经网络仍存在一些局限性。一般来说,深度神经网络如何进行学习、使用何种算法实现的智能、基于哪些理论分析得出的相关结论并不会在网络架构中有任何的显式或符号表示。也就是说,深度神经网络学习的算法隐式地存储在成千上万甚至是数百万的权重中,这些通常是人类智能体无法破译或验证的。
机器之心
2020/10/27
8540
从Bengio演讲发散开来:探讨逻辑推理与机器学习
一文说尽「大模型推理」!12家高校机构联合发布150页报告,综述750篇论文
推理,作为复杂问题解决中的关键能力,在各种现实世界场景中发挥着核心作用,如谈判、医疗诊断和刑事调查,在人工通用智能(AGI)领域中也是一种基本的方法论。
新智元
2023/12/28
6120
一文说尽「大模型推理」!12家高校机构联合发布150页报告,综述750篇论文
数学课可以学到什么
数学课是一个广泛而深入的学科领域,它涵盖了多种基本概念、原理和技能,这些对于日常生活、职业发展和更高级别的学术研究都至关重要。以下是在数学课上可以学到的一些主要内容:
jack.yang
2025/04/05
1630
程序员的数学---数学思维的锻炼
来看一道简单的题目:今天星期日,那么 100 天以后星期几? 这个问题最笨的方法就是数数了。不过那样也是颇为费事,从余数方向考虑:一个礼拜 7 天,100 天等于 14 个礼拜周期还剩两天(100 = 14*7 + 2)。于是答案就是星期 2 了。
指点
2019/01/18
1.1K0
程序员的数学---数学思维的锻炼
启示AGI之路:神经科学和认知心理学大回顾 全译下
A Review of Findings from Neuroscience and Cognitive Psychology as Possible Inspiration for the Path to Artificial General Intelligence
CreateAMind
2024/07/05
2900
启示AGI之路:神经科学和认知心理学大回顾 全译下
仿真智能: 新一代的科学方法
Simulation Intelligence: Towards a New Generation of Scientific Methods https://arxiv.org/abs/2112.03235
CreateAMind
2024/06/04
3440
仿真智能: 新一代的科学方法
顶级AI学者邢波教授:机器学习缺乏清晰理论与工程框架,需重新思考评估方法及目标
机器之心原创 采访:闻菲 2021年1月,全球计算机科学和人工智能领域顶级学者邢波教授(Eric P. Xing)正式出任全球首个人工智能大学 MBZUAI 的创始校长。日前他接受了机器之心的专访。在超过4个小时的访谈中,邢波教授分享了他的治学和治校之道。考虑到篇幅,我们将采访整理分为上下两篇发布。 上篇也即下文是他对机器学习和人工智能领域现状及学科发展的看法;下篇则是作为 MBZUAI 正式创始校长,邢波教授对学术管理及领导力,对研究品味,以及对探索创造新的、更加符合当前时代的 AI 科研和教育环境的
机器之心
2023/03/29
5690
顶级AI学者邢波教授:机器学习缺乏清晰理论与工程框架,需重新思考评估方法及目标
人工智能学术速递[6.29]
【1】 Doing good by fighting fraud: Ethical anti-fraud systems for mobile payments 标题:通过打击欺诈做好事:移动支付的道德反欺诈系统
公众号-arXiv每日学术速递
2021/07/02
1K0
构建安全可靠的系统:第六章到第十章
由 Julien Boeuf‎、Christoph Kern‎和 John Reese‎
ApacheCN_飞龙
2024/01/11
3260
构建安全可靠的系统:第六章到第十章
计算机文化基础
信息的概念:  一般认为:信息是在自然界、人类社会和人类思维活动中普遍存在的一切物质和事物的属性。  信息能够用来消除事物不确定的因素
青灯古酒
2023/10/16
1.7K0
计算机视觉学术速递[6.22]
【1】 OadTR: Online Action Detection with Transformers 标题:OadTR:Transformer的在线动作检测
公众号-arXiv每日学术速递
2021/07/02
2.4K0
机器学习学术速递[6.29]
【1】 DGL-LifeSci: An Open-Source Toolkit for Deep Learning on Graphs in Life Science 标题:DGL-LifeSci:面向生命科学图形深度学习的开源工具包
公众号-arXiv每日学术速递
2021/07/02
2.1K0
相关推荐
知识图谱—知识推理综述(一)[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档