网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月09日漏签0天
人工智能吧 关注:114,148贴子:505,477
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 13回复贴,共1页
<<返回人工智能吧
>0< 加载中...

【模仿学习过程】让计算机通过案例学会三段论推理

  • 只看楼主
  • 收藏

  • 回复
  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
实验编号:27
实验成功日期:2017.7.15
编程语言:Java
理论要点:模仿学习
相关纪录片:https://tieba.baidu.com/p/4760009643
意义及目的:在传统的符号主义人工智能理论里面,计算机的推理过程都是程序员预先写好的。本实验给大家介绍了一个新的思路:不预先为计算机编写太多的各种推理规则,让计算机通过各种案例,自己学会三段论推理。
实验报告下载:https://pan.baidu.com/s/1nvib6Fv
备注:本实验报告涉及一些逻辑学的知识,关于三段论的介绍在实验报告的第二部分,对三段论不了解的读者可以先去看一下三段论的介绍。
目录
一、基本概念介绍... 2
1.名词的类型... 2
(1)一对一关系... 3
(2)一对多关系... 3
(3)多对多关系:... 3
2.如何判断两个词语相同:... 3
3.本试验程序中用到的操作元(都是布尔函数):... 4
4.本实验用到的所有名词数据... 7
二、三段论的基本概念... 8
1.前项、中项、后项的概念:... 9
2.三段论的格... 10
3.三段论的式... 11
三、命题的创建方式与数据结构... 13
1.用集合关系来表示命题... 13
2.“词”的数据结构定义:... 14
3.字符串转命题的过程... 15
四、格的建立... 16
1.操作步骤:建立一个格... 16
2.数据结构定义,以及格式匹配过程:... 18
3.对推理系统进行训练... 22
五、通过训练,让推理系统建立一套报错机制... 31
六、附录... 47
1.训练得到的逻辑知识表格... 47
2.名词查询函数的代码(知识.java)... 48


  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一、基本概念介绍1.名词的类型
个体概念名词:单独的一个人、物,都是个体概念名词,例如李某、王成、面包、东部华侨城。这类名词相当于计算机编程语言中的“基本类型变量”。
集合概念名词:例如“北京的景点”,包括了故宫、天安门广场、地坛、颐和园等多处景点。这类名词相当于计算机编程语言中的“数组”。
整体概念名词:对于一个命题“北京的景点不是一天能游完的”,主语“北京的景点”不是指单一的一个景点(例如故宫、颐和园),而是指北京所有的景点,它是一个整体概念。这类名词相当于计算机编程语言中的“指向数组的指针”。
(1)一对一关系
① 一对一肯定关系:A是B,其中A和B都是个体概念名词。例如:陈荣是 副班长。本程序用到的名词中不存在一对一肯定关系。
② 一对一否定关系:A不是B。例如:王成不是 张三。
(2)一对多关系
③ 一对多肯定关系:A∈B,其中B必须是集合概念名词,A可以是个体也可以是集合名词。例如:董深明是 苏州人、苏州人 是 江苏人。
④ 一对多否定关系:A?B。例如:蔡超联 不是 党员,党员是一个集合,而蔡超联是一个个体元素。
(3)多对多关系:
⑤ 多对多肯定关系:有些A是B。其中A、B必须都是集合概念,不可以是个体概念。例如:有些计算机系的学生 擅长数学。
⑥ 多对多否定关系:有些A不是B。例如:有些计算机系的学生 不擅长数学。
2.如何判断两个词语相同:
(1)字面相同:两个词语在文字上是相同的。
(2)概念相同:两个词语表示(或者指代)的内容是完全一样的,即为“概念相同”。我们看一下这个例子:
大前提:北京的景点不是一天能游完的
小前提:故宫 是 北京的景点
大前提中提到的北京的景点指的是北京所有的景点,是个整体概念;而小前提中提到的北京的景点指的是北京的一个景点,它是一个集合。它可以是北京的任何一个景点(如故宫、颐和园、地坛等等),而主语中“故宫”就是其中之一。用数学符号表示就是:故宫∈北京的景点。
所以,大前提和小前提中提到的“北京的景点”不是同一个概念。
3.本试验程序中用到的操作元(都是布尔函数):
1. 一对一
2. 一对多
3. 多对多
4. 肯定句
5. 否定句
6. 全称句
7. 特称句
8. 有一个否定句
9. 有四个概念
其中1——7是针对命题的,比如操作元4就是判断一个命题是不是否定句,如果是就返回true,不是则返回false.
8、9号操作元是针对前提条件(大前提和小前提所组成的整体)的。比如操作元8:如果一组条件当中有且只有一个否定句,就返回true;否则返回false。
所有操作元函数代码如下:
publicclass全局函数
{
publicstaticboolean一对一(命题 p) throws Exception
{
if(知识.是最小单位(p.主语.name)&&知识.是最小单位(p.谓语.name))
returntrue;
elsereturnfalse;
}
publicstaticboolean一对多(命题 p) throws Exception
{
if(知识.查询_符合包含关系(p.主语.name, p.谓语.name)!=null) //主语∈谓语
returntrue;
elsereturnfalse;
}
publicstaticboolean多对多(命题 p) throws Exception
{
return便捷.有些是(p.谓语, p.主语)||便捷.有些不是(p.谓语, p.主语);
}
publicstaticboolean肯定句(命题 p)
{
return p.肯定;
}
publicstaticboolean否定句(命题 p)
{
return !p.肯定;
}
publicstaticboolean特称句(命题 p)
{
return !p.全称;
}
publicstaticboolean全称句(命题 p)
{
return p.全称;
}
publicstaticboolean有一个否定句(前提条件 conditions) //大前提和小前提当中有且只有一个否定句
{
return (conditions.大前提.肯定)^(conditions.小前提.肯定);//异或运算,真假得真,真真得假,假假得假
}
publicstaticboolean有四个概念(前提条件 conditions)//大前提和小前提中总共有4个概念
{
Set<String>words=new HashSet<String>();//不同的概念,转化得到的字符串是不同的
words.add(conditions.大前提.主语.toString());
words.add(conditions.大前提.谓语.toString());
words.add(conditions.小前提.主语.toString());
words.add(conditions.小前提.谓语.toString());
return words.size()==4;
}
}


2025-05-09 18:40:07
广告
  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4.本实验用到的所有名词数据


二、三段论的基本概念
  三段论推理是演绎推理中的一种简单推理判断。
它包含:一个一般性的原则(大前提),一个附属于前面大前提的特殊化陈述(小前提),以及由此引申出的特殊化陈述符合一般性原则的结论。
‘三段论推理’:思维时,首先用一个‘人为定义的内容极为明确的、囊括的范围比较大的总的原则’A(简称‘大前提’),再通过科学实验寻找另外一个概念‘小前提’B,B的概念的全部内涵“能够一定被包含在‘大前提’A内、并且用文字描述的B的概念的内容时,不能人为与‘大前提’A的内容本质完全一样(B简称‘小前提’),然后按照‘小前提B如果属于大前提A范围内,那么B的性质一定与大前提的性质一样’,而得到可靠而正确的判断,此思维过程叫做‘正确的下结论C过程’——”科学术语叫做“三段论推理”。

1.前项、中项、后项的概念:
前项就是结论的主语,后项就是结论的谓语,中项只出现在大前提和小前提中,如图所示:

2.三段论的格
三段论中总共有四格,第一格又名审判格,第二格又名区别格,第三格又名反驳格(我不太喜欢这个名字,所以我在程序里面仍然用“第三格”),第四格由于不太常用,本实验中就不提它了。

3.三段论的式
同一格的三段论也有一定的差异,即它们的前提和结论中所涉及的直言命题的量词(全称、特称)和质(肯定、否定)是不同的,也就是说它们的“式”是不同的。
例如:(注:A表示肯定全称,E表示否定全称,I表示肯定特称,O表示否定特称)
1:所有的偶蹄目动物都是脊椎动物,牛是偶蹄目动物;所以牛都是脊椎动物。(第一格AAA式)
2:所有的偶蹄目动物都不是昆虫,牛是偶蹄目动物;所以牛都不是昆虫。(第一格EAE式)
3:所有商品都是用来交换的,所有封建地租都不是用来交换的;所以所有封建地租都不是商品。(第二格AEE式)
4:鸵鸟不会飞,鸵鸟是鸟;所以一些鸟不会飞。(第三格EAO式)
5:有些不会飞的动物是鸵鸟,鸵鸟是鸟;所以有的鸟是不会飞的动物。(第四格IAI式)
三段论的可能式和有效式:
在三段论的每格中,A、E、I、O四种判断,都可以分别作为大、小前提和结论,其组合数量是:4X4X4=64。因此,就其可能性而言,每格有64个式。‘三段论’共有四个格,因此,三段论的可能式共有64X4=256个。
但是,三段论的可能式,并非都是有效的。事实上,其大部分是无效的。
对于三段论的所有可能式,都可以依据一般规则或各格的具体规则,判定它是否有效。经过筛选,三段论所有的可能式中,共有如下24个有效式:


  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
本实验仅研究红色方框内的六种有效式。
三、命题的创建方式与数据结构1.用集合关系来表示命题
本实验不使用谓词逻辑,所有的命题关系都被转化为集合的从属关系。
例如:故宫是北京的景点,在基于谓词逻辑的逻辑编程语言prolog里面,这个命题可以表示为:北京的景点(故宫),“北京的景点”是谓词,而“故宫”做参数。但在本实验中,我们不使用谓词逻辑,词语与词语之间只存在三种逻辑关系——等价、属于、有交集。
命题:王成不是张三  集合关系:王成≠张三
命题:陈荣 是 党员  集合关系:陈荣∈党员
命题:偶蹄目动物 是 脊椎动物  集合关系:偶蹄目动物⊆脊椎动物
命题:学习委员 不是 党员  集合关系:学习委员 ∉党员
命题:有些 计算机系的学生 擅长数学  集合关系:计算机系的学生∩擅长数学≠ ∅
命题:有些 江苏人 不 讲吴语  集合关系:江苏人-讲吴语≠ ∅
2.“词”的数据结构定义:

3.字符串转命题的过程

四、格的建立1.操作步骤:建立一个格
启动Tomcat,点击左侧的新建格链接,在文本框内输入以下内容,点击提交。

网页显示如下表格。

点击左侧的推理链接。


2.数据结构定义,以及格式匹配过程:

注:代码倒数第三行,异或运算在Java中表示为^。异或运算的规则是:真假得真,真真得假,假假得假,对异或运算的结果再取反,就变成了:真假得假,真真得真,假假得真。这正好对应了一个规律:肯定的肯定等于肯定,肯定的否定等于否定,否定的否定等于肯定。例如我输入的大前提是否定句,小前提是肯定句,那么得出来的结论就是否定句。如下图所示:

再看第一个红色方框,每个格包含了一套格式(类型为:逻辑术语集),它描述了三段论的“前项、中项、后项分别在什么位置”。

一致性检查:检查一组前提条件是否符合某个格。


  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
3.对推理系统进行训练
三段论的审判格不是什么情况下都可以使用的。例如两个前提都是否定句的情况下,它就会失效。如:


所以,我们要给计算机输入一系列正确的例子,让它知道什么情况下可以用审判格推理。(根据逻辑学知识,审判格的小前提必须是肯定句,否则就可能会出错)
向计算机输入训练示例——经典的“苏格拉底三段论推理”:

上图红色方框内的文字,表示:只有在符合所有这些条件的时候,才可使用审判格进行推理。其实这里面有一些是废话,比如“大前提是全称句”、“小前提是全称句”,在本实验中所有的大前提小前提都是全称句,所以这个判断是没必要的,但是它也不影响推理效果。
但是有一个条件会导致问题——大前提是肯定句。如果我输入一个三段论,它的大前提是否定句而小前提是肯定句,这个三段论推理本来是有效的,但计算机会因为不符合“大前提是肯定句”这一原因,而禁止使用审判格进行推理,从而导致推理失败。
所以,现在我们要给计算机输入一个前提条件带有否定句的例子:

如上图所示,计算机在学习到了这个例子以后,它删除了刚才的条件“大前提是肯定句”。
接下来,我们给计算机输入“区别格”和“第三格”。



  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼










  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
五、通过训练,让推理系统建立一套报错机制
我们人在推理的过程当中,也难免会犯各种各样的错误,犯错误的原因是:生搬硬套地套用了三段论某一格的格式,然而却没有注意到在某些情况下这种推理是错误的。常见的错误有四概念错误、中项两次不周延、大项不当周延、小项不当周延。
我们要求推理系统实现如下功能:用户输入一个错误的三段论推理,计算机告诉用户他犯了什么错误。
另外,这套报错机制也可以用于计算机的推理过程中。计算机根据三段论某一格的格式,得出的结论也有可能是错误的。计算机可以通过这种方式进行“自检”,检查自己推理出的结论是不是犯了某种错误,如果是,则报错。

四概念错误:大前提和小前提中的中项【中项 】不是同一个概念


点击“修改”,对条件进行简化。

新建错误“大项不当周延”(操作步骤省略)


对其进行训练

现在我们可以检验效果:



  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


手滑输错了名字,此处“中项不当周延”应该为“中项两次不周延”









2025-05-09 18:34:07
广告
  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼










  • 建设西路东口
  • 阿童木
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼








六、附录
此部分内容省略,要阅读此部分内容的网友请自行下载实验报告word文档。


  • 绵阳钓鱼丨老赵
  • 无人机
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 13回复贴,共1页
<<返回人工智能吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示