导航中医药

 找回密码
 注册
查看: 3882|回复: 43
打印 上一主题 下一主题

中医辨证的数学原理---人工智能辨证的基础理论之一

[复制链接]
跳转到指定楼层
1
发表于 2022-2-18 07:52:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中医辨证的数学原理
---人工智能辨证的基础理论之一

本文不是创新,是传统中医辨证过程的数学原理总结。本文根据数学运算需要提出了一些新概念,这些概念是对传统概念的分解、合并或重新界定梳理,使得中医辨证过程更适合于计算机人工智能计算。

一、病域、证域概念

人体状态由所有自觉和他觉状态来描述。状态数据包括所有医生主观诊断得到的病候(症候、症状)数据和设备检查得到的物理和生化指标数据。
注:为了语言交流的便利,下文中,我们将传统的名词“症候”、“症状”用“病候”表示,传统的“证候”,仍然用“证候”表示。
这些病候数据一般是直接的物理、化学状态数据或人体自觉或他觉数据。

用病候描述的人体疾病状态,叫病。

中医根据人体的病候,还可以归纳出用阴阳寒热虚实燥湿风等证候表示的人体状态。

用证候描述的人体疾病状态,叫证。

把每一个病作为一个元素,所有的病组成的集合,叫病域。把每一个证作为一个元素,所有的证组成的集合,叫证域。

疾病现象可分别表示为病域现象和证域现象。

本文将关键讨论病域和证域的关系,以及从病域到证域进行变换的数学原理。

2
 楼主| 发表于 2022-2-18 07:58:04 | 只看该作者
二、用函数概念描述病域与证域
   
我们用数学函数符号表示病和证:

一个病,用f(病x)表示。
一个证,用f(证x)表示。

总结中医理论可以得出:

f(病x)=∑(色,脉,舌象,各种自觉病候,他觉病候,血压,体温等其他诸物理、生化指标)
即:
①        f(病x)=∑(病候1,病候2,病候3…病候n)
所有这些病,就组成病域。
   
中医证的识别,是通过特征病候群完成的。
每一个证,都对应有一个特征病候群,我们用g(证x)表示。
那么就有:
②        g(证x)=∑(病候1,病候2,病候3…病候m)

证,就是特征病候群在所有病上的一个卷积:

f(证n)=∫(f(病i))g(证n)d(i)
即:
f(证n)=∫∑(病候1,病候2,病候3…病候i)∑(病候1,病候2,病候3…病候n)d(i)
i,为参与卷积的病候数。

那么,将所有证的特征病候群在所有病上进行卷积,就得到所有的证:

③f(证x)=∫(f(病0)f(病1)f(病2)f(病3)…f(病i))g(证x)d(i)
i,为参与卷积的病种数。

所有这些证,就组成证域。

这里,f(病0、1、2、3),以及病候1,病候2,病候3…病候i,在实际上,并不是有序排列的,而是一个无序集合。而且病状也不是单纯的数值,而是一个复杂的携数对象,通常的数学卷积操作不能满足中医辨证的需要,因此下文中重新定义了适合中医辨证的数学操作。

这些数学公式表示,证域中的一个证,可能出现在病域的所有病中;病域的一个病,在证域中可能同时表现为多个不同的证;病域中不同的病,在证域中还可能包含相同的证。
也就是说,同一个病,在不同人体和不同病程上,可以表现为不同的证,所以存在同病异治现象;不同的病,在不同人体和不同病程上,又可以表现为相同的证,所以存在异病同治现象。

病域与证域可以互相变换:



n,为病x包含的证的数量。
这个公式表达了证域的所有证变换到病候后的全体,就是病域的所有病的全体。

⑤ f(证x)=∫(f(病0)f(病1)f(病2)f(病3)…f(病i))g(特征病候群x)d(i)
i,为参与卷积的病种数。
(③、⑤形式相同,但③是用于表达求得一个具体证f(证x)的运算,⑤是用于表达病域与证域的变换的。)

这个公式表达了所有证的特征病候群,分别在病域进行一次卷积,即形成证域的所有证。
如果一个病候群在病域进行一次卷积后,得出的结果是空,则不存在这个证。

特征病候群,我们在下面的集合运算中,命名为证标,因此,g(特征病候群)也可以叫做证标函数。

特征病候群决定了证的特点,也是关联病域与证域的关键桥梁。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

三、用集合概念描述病域与证域[/backcolor] 用函数描述病域与证域,可以比较直观的表示二者之间的数学原理,但病状与证状在现实世界中都是无序存在的,无法用有序连续数学的函数工具进行具体计算,所以,下面用集  详情 回复 发表于 2022-2-18 07:59
3
 楼主| 发表于 2022-2-18 07:59:40 | 只看该作者
柳之心 发表于 2022-2-18 07:58
二、用函数概念描述病域与证域
   
我们用数学函数符号表示病和证:[/backcolor ...

三、用集合概念描述病域与证域

用函数描述病域与证域,可以比较直观的表示二者之间的数学原理,但病状与证状在现实世界中都是无序存在的,无法用有序连续数学的函数工具进行具体计算,所以,下面用集合这个数学工具,来研究病域和证域中进行具体的辨证计算的问题。

1、定义:
  病域相关概念:

病域是由所有病组成的集合。

病域中的每一个病,叫做病元素。

每一个病是由一系列病候组成的集合,叫病集。


病候是通过诊断直接得到的人体状态数据,包括所有医生诊断的得到的自觉、他觉病候数据和设备检查得到的生化指标数据。
病候由病候名+病候值组成。

比如:舌红(50),脉浮(60),恶寒(30),失眠(50),体温(38),收缩压(110),白细胞数(12)等等。

患者的病候值与平人值(正常人的病候平均值)的差,叫病元。

病元由病元名+病元值组成。
每一个病元,与一个病候相对应。病元名是在对应病候名后缀“元”字形成。
病元值为病候值与平人值之差。
所以,病元值越接近0,表示人体越健康。

举例:
比如体温,标准数据为37,病人数据为38,则
v=(38-37)=1
我们说:体温元(1)
比如舒张压,标准数据80,病人数据70,则
v=70-80=-10
我们说:舒张压元(-10)
   
    所以,我们以如下形式表示病元:
舌红元(70)、肋间涨痛元(35)、恶寒元(80)、脉浮元(65)、血压元(0)、体温元(2)、某肢体功能损失元(50)、白细胞数元(2.1)…



根据病候和病元的概念,我们说:

每一个病是由一系列病候或病元组成的集合,也叫病候集或病元集。

一个病,就是一个病候集,或者是一个病元集。

小结:
病域是由所有病组成的集合。
每一个病是由一系列病候或病元组成的集合。
病候由病候名+病候值组成。
病元由病元名+病元值组成。


证域相关概念:
证域是由所有证组成的集合。
证域中的每一个证,叫证元素。
每一个证是由证型与证值组成。
每一个证又是由一系列特征病候组成的一个集合来表征的,这个病候集叫特征病候集。
特征病候集是一个证的标准,因此,我们又称之为 证标。


特征病候集或证标,是病域和证域的联系桥梁。

关于“病候”与“病元”两个名词,二者的本质是相同的。但诊断时用“病候”的名称比较方便直观,数学分析时用“病元”比较方便计算,所以下文中一般用“病元”。

点评

2、病集的数学表示[/backcolor] 从病域上看,一个病,就是一种具有独特疾病发生、发展、转归特征的单纯的疾病,在这个疾病过程中出现的所有病元,组成的一个集合,我们叫一个具体的病集,记做:B。[/backcolor]  详情 回复 发表于 2022-2-18 08:00
4
 楼主| 发表于 2022-2-18 08:00:22 | 只看该作者
柳之心 发表于 2022-2-18 07:59
三、用集合概念描述病域与证域

用函数描述病域与证域,可以比较直观的表示二者之间的数学 ...

2、病集的数学表示

从病域上看,一个病,就是一种具有独特疾病发生、发展、转归特征的单纯的疾病,在这个疾病过程中出现的所有病元,组成的一个集合,我们叫一个具体的病集,记做:B。

它包含的病元,我们记做:BY。

那么就有:
B={BY1,BY2,BY3…BYn}

那么,一个病,就可以用病候表示为:
⑥ Bx={BH1(v1),BH 2(v 2),BH 3(v 3)…BH n(v n)}

也可以用病元表示为:
⑦ Bx={BY1(v1),BY 2(v 2),BY 3(v 3)…BY n(v n)}

病元或病候是随着医疗实践和科学技术的发展,不断被发现的。理论上有无限多个,而实践中只有有限个。

中医方剂中的药味分为两类,一类是针对病域的,我们叫病域药味;一类是针对证域的,我们叫证域药味。

病元和病候是中医诊断数据与中医方剂中病域药味相联系的桥梁。只要得到每个病候,就能计算出中药方剂中病域的药味和剂量。

点评

3、证集的数学表示[/backcolor] 为了与“病候”、“病元”相对应,这里在“证候”之外,增加一个名词“证元”。[/backcolor] 证候与证元是完全等价的。一个独立的证候,就是一个证元。[/backcolor] 数学计  详情 回复 发表于 2022-2-18 08:01
5
 楼主| 发表于 2022-2-18 08:01:01 | 只看该作者
柳之心 发表于 2022-2-18 08:00
2、病集的数学表示

从病域上看,一个病,就是一种具有独特疾病发生、发展、转归特征的单 ...

3、证集的数学表示

为了与“病候”、“病元”相对应,这里在“证候”之外,增加一个名词“证元”。

证候与证元是完全等价的。一个独立的证候,就是一个证元。

数学计算时用“证元”的名称,比较方便与病元对照;诊断时用“证候”的名称,比较直观。

证集的每个元素是一个证候或证元,我们记做:ZH或ZY。

一个证元就是一个完整证型。

从证域上看,一个病,由一系列证元组成:
B={ZY1,ZY2,ZY3…ZYn}

一个证元由证名Z+证值v组成。我们记做Z(v) 。
即:
⑧ Bx={Z1(v1),Z2(v 2),Z3(v 3)…Zn(v n)}

比如:心阳虚(30)、肝血虚(20)、表寒(80)肺热(0)…

一个证候或者证元,在病域上看,是由一组特殊病候或病元确定的:

⑨ ZYx={BY1(v1),BY 2(v 2),BY 3(v 3)…BY n(v n)}

用病元来表示证元是辨证过程中的重要一环,只有得到一个具体证元的所有病元值,才能计算出该证的证元值。

证元或证候是在医疗科研过程中发现的,理论上可以有无限多个,而实际世界中只有有限个。

证元或证候是中医诊断数据与中医方剂中证域药味相联系的桥梁。只有得到每个证及其证值,才能计算出中药方剂中证域的药味和剂量。

点评

四、证标、特征病元群的证权值和证权表[/backcolor] 每一个标准证元在病域上可以表达为由特征病元群组成的集合,这也是一个证的标准,我们叫做证标,记做ZB。[/backcolor] 证标由一系列 病元名和对应证权值组  详情 回复 发表于 2022-2-18 08:01
6
 楼主| 发表于 2022-2-18 08:01:41 | 只看该作者
柳之心 发表于 2022-2-18 08:01
3、证集的数学表示

为了与“病候”、“病元”相对应,这里在“证候”之外,增加一个名词 ...

四、证标、特征病元群的证权值和证权表

每一个标准证元在病域上可以表达为由特征病元群组成的集合,这也是一个证的标准,我们叫做证标,记做ZB。

证标由一系列 病元名和对应证权值组成。

即:组成证标的各个元素,形式与证元相似,但其值不是病候值与平人值的差,而是一个证权值q。

证权表示了此病元反应该证的权重。

即:
证标由病元名BY+证权值q组成。

证标是病与证之间相互转换的桥梁。


⑩ ZBx={BY1(q1),BY 2(q 2),BY 3(q3)…BY n(q n)}

这里的{BY1(q1),BY 2(q 2),BY 3(q3)…BY n(q n)}是特征病元群即证标,与⑦式中表示的组成病的病元不同,证标表达的只是各种病元与该证的关系。(有些病元,与该证无关,则其证权值为0。)

每个证标中各病元的证权值形成一个证权表。

各个证的权表在科研中逐渐发现、校正并完善。

在中医诊断主要靠医师个人技术进行的条件下,证权表是根据医师的经验得出的,所以,同一个证,根据不同医师的经验可能得出不同的证权表。证权表反映了一个医师的特色。

中医现代化科研的任务之一就是用现代技术使证权表尽可能的一致。

比如,恶寒是一个病候,病人恶寒值为80,平人恶寒值为0,则,恶寒元是对应的病元,其病元值为80-0=80。
若恶寒在表寒证中的权重为0.7,即表寒证证标中“恶寒”的证权值为0.7,则由此一个恶寒病候可以计算出恶寒贡献的表寒证的证值为56。
如果还有病候发热,发热值38,平人发热值为36.5,则发热元是对应的病元,病元值为38-36.5=1.5。
若发热在表寒证中的权重为10,即表寒证证标中“发热”的证权值为10,则由此发热病候可以计算出发热贡献的表寒证的证值为15。
上述两个病候可以得出发热、恶寒两个病元贡献的表寒证的证值为56+15=71。



每一个证都有一个证名和证标。
证名和证标(证的特征病元群)是在医疗科研活动中被发现并逐渐丰富、完善的。

点评

五、自定义集合中无序携数对象的运算[/backcolor] 病集与证集的元素,都不是纯粹的有序数值元素,而是人体状态元素,互相之间没有顺序,是无序的。[/backcolor] 病候、病元、证候、证元和证标,都不是简单的数  详情 回复 发表于 2022-2-18 08:02
7
 楼主| 发表于 2022-2-18 08:02:19 | 只看该作者
柳之心 发表于 2022-2-18 08:01
四、证标、特征病元群的证权值和证权表

每一个标准证元在病域上可以表达为由特征病元群组 ...

五、自定义集合中无序携数对象的运算

病集与证集的元素,都不是纯粹的有序数值元素,而是人体状态元素,互相之间没有顺序,是无序的。

病候、病元、证候、证元和证标,都不是简单的数据,而是一个携数对象,也就是说,是一个关联着一个数据的名称。

中医辨证的数学过程,就是对这些无序携数对象进行运算处理。运算处理时不但要考虑数值,还要考虑对象的名称,不同名称的对象所携带的数据不能简单的直接运算。

现有的集合运算都是针对单纯的有序数值对象的运算,这种运算不能满足中医辨证的运算需要。我们必须建立一套新的适合中医辨证的病、证元素的运算,这就是无序携数对象的运算。

我们以病元和证元为例,定义如下运算规则:

(病候不直接进行运算,必须转换为病元后进行运算。)
1、病元的加法:
两个同名病元相加,病元名不变,病元值以数值相加。
两个异名病元相加,形成一个由这两个病元组成的集合。
2、证元的加法:
两个相同的证元相加,证元名不变,证值以数值相加。
两个异名证元相加,形成一个由这两个证元组成的集合。
3、病元的减法:
两个同名病元相减,病元名不变,病元值以数值相减。
两个异名病元相减,等于被减病元。
4、证元的减法:
两个同名证元相减,证元名不变,证元值以数值相减。
两个异名证元相减,等于被减证元。
5、病元的乘法:
两个同名病元相乘,则病元名不变,病元值以数值相乘
两个异名病元相乘,形成一个空集。
6、证元的乘法:
两个同名证元相乘,则证元名不变,证元值以数值相乘。
两个异名证元相乘,形成一个空集。

7、辨证过程未用到病、证的除法运算。

点评

六、辨证的数学操作[/backcolor] 有了病元和证元的运算规则,我们就可以讨论辨证的数学过程了。[/backcolor] 1、获取病元集。[/backcolor] 即诊断得出各种病候,形成一个由病候组成的病集BH。[/backcolo  详情 回复 发表于 2022-2-18 08:03
8
 楼主| 发表于 2022-2-18 08:03:11 | 只看该作者
柳之心 发表于 2022-2-18 08:02
五、自定义集合中无序携数对象的运算

病集与证集的元素,都不是纯粹的有序数值元素,而是 ...

六、辨证的数学操作

    有了病元和证元的运算规则,我们就可以讨论辨证的数学过程了。
   1、获取病元集。
即诊断得出各种病候,形成一个由病候组成的病集BH。
      将BH中的每一个病候值,减去平人值,转换成由病元组成的病元集BY。
   2、计算由病元组成的证元集
选取一个证标(即一个证的特征病候群集合)ZB(n)与病元集相乘,得到他们的笛卡尔积,在这个积集中除去空元素,形成集合Zn。
如果Zn={}。说明此病例无此证,跳过第3,直接进入下一步。
如果Zn不是空集,则得到一个与证标同名的由病元组成的证元集。
3、计算一个证元值
证元集中,每个病元的权值与病元值的积,就是该病元反应的证值。证元集中所有病元的证值之和,就是该证的证值。

比如,诊断得到病候集:
BH={恶寒(80),发热(38.5),收缩压(115)}
即:
恶寒是个病候,恶寒值为80,平人恶寒值为0,则,恶寒元是对应的病元,病元值为80-0=80。
发热是个病候,发热值38.5,平人发热值为36.5,则发热元是对应的病元,病元值为38.5-36.5=2。
收缩压是个病候,收缩压值为115,平人收缩压值为120,则收缩压元是对应的病元,病元值为115-120=-5。
则由病元组成的病元集为:
BY={恶寒元(80),发热元(2),收缩压(-5)}
如果表寒证的证标(特征病候群)为
ZB(表寒)={恶寒元(0.8),发热元(10)}
则,此患的表寒证证元集为:
ZY(表寒)=ZB(表寒)*BY
={恶寒元(0.8),发热元(10)}* {恶寒元(80),发热元(2),收缩压(-5)}
={恶寒元(0.8)* 恶寒元(80),恶寒元(0.8)* 发热元(2),恶寒元(0.8)* 收缩压(-5),
发热元(10)* 恶寒元(80),发热元(10)* 发热元(2),发热元(10)* 收缩压(-5)}
={恶寒元(64),空,空,
  空,发热元(20),空}
=表寒(84)

即:此病包含的表寒证为:ZY(表寒)=表寒(84)

这就是从病元集中辨出一个证,并得到证值的过程。


   4、计算出所有证元。
将每一个证标与此次诊断的证集相乘(重复3,遍历每一个证标),得到他们的笛卡尔积。所有的非空集合,就是一个此次诊断的所有证型。
ZY={ZY1*Za, ZY2*Za, ZY3*Za,…ZYn*Za}
这样,就从病元集中辨出所有的证,并得到证值。


   5、根据证型及每一个证值,查找并计算出方剂中证域的药味及剂量。

小结:
2、3实际上是一个卷积运算,病元集是被卷函数,证标是卷积核。
1、2、3、4就是一个由病域到证域的域变换过程。
与用函数描述的病域、证域具有相同的意义。

证标(卷积核)的设计,表达了该证的特点。
证域科研的目标,就是设计科学的证标。
9
发表于 2022-2-19 07:42:26 | 只看该作者
       辨证是诊断过程,证是辨证的结果。辨证的基本要素是证候(症状体征)、舌象脉象,没有测量数据可供计算机使用。相对于西医的各种仪器检查得出具体数据而言,运用人工智能诊断西医疾病比中医简单的多了!!
        请先生运用你的人工智能诊断一下急性腹膜炎,如果能够成功,你再运用到中医的辨证过程中!!

点评

将文中 第六章 辨证的数学操作,简单翻译成白话,以你说的"急性腹膜炎"的辨证过程为例就是: 1、首先要事先研究出很多证标,比如已经有一万个证的证标。这很像是你在《中西医融合观》中所作的一部分工作。 2、  详情 回复 发表于 2022-2-19 10:49
你看的很准,提的问题很关键! 下面是最重要的部分: 七、病候值的建立[/backcolor] 八、证候值的建立[/backcolor] 九、药性值的建立[/backcolor] 十、证值与药味的映射[/backcolor] [/backcolor] 其中有些  详情 回复 发表于 2022-2-19 09:44

评分

1

查看全部评分

10
发表于 2022-2-19 09:25:13 | 只看该作者
中西医融合观 发表于 2022-2-18 23:42
辨证是诊断过程,证是辨证的结果。辨证的基本要素是证候(症状体征)、舌象脉象,没有测量数据可供 ...

辨证是诊断过程,证是辨证的结果。辨证的基本要素是证候(症状体征)、舌象脉象,没有测量数据可供计算机使用。

一一辨证的基本依据是病人的临床表现(症状体征舌象脉象),结合病史及发病原因或诱因等。证候的基本要素,一个是病位,一个是病性。

点评

是的!在我这里,症状体征舌象脉象、病史、诱因都属于病元,是测量数据之一。病位、病性属于证元,是辨证的结果。将传统的症状体征舌象脉象、病史、诱因数据化,是进行机器操作的基础。  发表于 2022-2-19 09:54
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|导航中医药 ( 官方QQ群:110873141 )

GMT+8, 2025-4-12 04:10 , Processed in 0.082808 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表