血常规检测和医生看病的比喻

嘉定图书馆 绘于 2020年4月14日

这是为了让大家了解神经网络的另一个比喻,希望通过用几个不同的比喻,描述同一个原理,或许可以更容易让人出现 “a-ha” 时刻,就是不知道怎的,忽然一根筋搭上了,就懂了。

现代医生看病

现代医学,医生已经不仅仅通过望闻问切来看病了,他们有了更多的工具,每个工具都是像一个特定的神经元一样,把一个维度的输入转化为多个其他维度的输出。比如验血呀,心电图了,超声波啦,核磁共振啦。。。这些检测方法多了去了。我们以最简单的验血里面的血常规做例子,来看一看医生如何通过一系列工具把一个一眼无法确定的问题解决的。

显微镜就是卷机层

化验员拿到一管血液,把它制作成血涂片。这个时候,就算再有经验的医生,凭着肉眼凡胎,也没法从这一个大拇指大小的血涂片上看什么名堂。顶多看看红不红,是不是粘稠什么的。这就像如果给计算机输入一个图片,它看到这么多的信息在一起,也没法得出什么结论。

这个时候卷积层出现了。这个工具,就是显微镜!显微镜先把整个图像放大几百倍,然后忽略所有的其他的部分,仅仅关心它看到的很小很小的一个局部。这就像卷机层里面的那个小小的卷积核,先分析大的图像中间这一小块,得出结论以后再往右移一小格,然后再分析。我们来看一下这个小小窗口是怎么工作的。

红细胞计数

即便是显微镜下针尖大的那一小部分,也有各种不同的细胞在里面游动。化验员这个时候需要决定,要把注意力集中在哪一种细胞上。比如她可以选择,我现在要关注红血球!

之后她就认真的在一个计数池里面用自己脑子里面的那个过滤器,去寻找长得像红细胞的影像。

在她数红细胞的时候,白细胞是彻底被忽略的,血小板,还有各种其他的杂质都是直接忽略的。

这个过程就跟卷积网络里面每一个过滤器都有专门的检测对象很像,比如检测垂直边界的,如果放在纯色上面,输出就是 0 ;放在横线上面,输出也是 0 ;甚至对于检测左黑右白这样的垂直边界的过滤器,放在反过来的左白右黑的边界上面输出也是 0 。只有和它想要检测的那个模式一样的时候,才会忽然亮起,输出一个很大的值。

血检的例子中,输入是显微镜下彩色的画面,经过化验员一番认真的数数,输出为单位面积中出现的红细胞的数量。这里注意,输入和输出完全不是同一个维度。成千上万个红细胞的影像的明暗信息,就这样经过化验员这个处理,变成了一个红血球数量这个更抽象维度的上的数字。

白细胞和血小板计数

红细胞检查完了以后,我们的化验员换了一个过滤器,你可以想象她把头脑里面那个能看到红细胞的眼镜摘掉,换上一副看到白细胞的眼镜,然后再数数。和红细胞过滤器相反,这个过滤器只检测白细胞,反而把红细胞忽略了。

同样的方法,化验员还需要去数血小板的数量。这样子,化验员要做的事情,就是把眼睛看到的一个个像素的各种颜色的点,转换成了三个维度(红细胞,白细胞,血小板)的三个数字。

这个过程是一个原始信息大量丢失的过程。如果要储存显微镜下看到的图像信息的话,估计得用几百兆的硬盘空间才够,但经过卷机层输出的信息,只要三个数字,几个字节就够用了。但这几个数字里面其实是从成千上万的像素的信息中转化而来的。

其他的检测

除了计数以外,还有血糖呀,胰岛素呀,各种肿瘤标志物呀,这些指标或许有几千种,每一种都有专门的仪器,专门的测量方法,最终把一管血液这一个认知的对象,变成了几千个不同维度的数字。这里面的没有一个数字包含了全部血液的信息,但又没有一个数字不是被整管血液里的每一个物质集体的影响着。

医生层

刚才讲的所有的事情,其实仅仅是化验员层,她们从同一个输入(无论是医院里的一管血液,还是计算机里的一副图像)得出了几十个维度的输出。这些输出以检验报告的形式,递交到到了医生的桌前。

医生需要迅速的通过这些已经抽象过一层的信息进行下一层抽象,回答这些化验单上天书一样的数据,到底说明这个病人得了什么病?

这个过程和化验员那层很像,也是一个模型,就是拿一个代表已有知识的过滤器,去扫描所有数据。

医生脑子里面内置了大量的过滤器。比如,其中有一个叫做肝炎的过滤器。他知道,如果指标A, B,C 偏高,指标 D,E,F 偏低,大概率就是肝炎。

这个知识是怎么来的呢?就是医生经过多年的医学学习和临床经验,训练出来的一个模型。他拿这个模型作为一个模版,和化验单对照,发现,咦,对不上,这个过滤器输出结果是 0,结论:不是肝炎 。

那就再换一个叫做 “糖尿病” 的过滤器,再扫描一遍,发现对上了!医生脑子里面某处的一个神经元 “叮” 的一下点亮,结果出来了,这位病人患的是糖尿病!

整个过程

这个过程,就是从血液开始,一个个红血球白血球的信息经过化验员变成了红血球数量,白血球数量等抽象一层的信息,然后再和其他的类似信息在医生那一层继续转换为疾病的信息。这样的多层的网络就完成了以前医生用一层网络(通过看血液的颜色)无法完成的认知。

类似的比喻可以举出很多来,基本上都希望描述同一个本质的东西:一个巨大的网络,这些网络里面没有人有上帝视角,都是蒙在鼓里面的独立单元。他们仅仅能够通过他能看到的那一部分输入,加上自己多年训练出来的一些参数组成的过滤器,产生更加抽象的,更高层次的输出。

然后下一层的独立单元,根据已经剥离了原始信息的高抽象度的信息,再加上自己的特定的学习到的知识,再加工成更高抽象度的信息,如此一层一层传导上去,让整个系统有了每个单独的单元都没有的智能。

只要仔细观察,生活中这样的集体智慧高于单个智慧的例子比比皆是。希望这些例子可以帮助大家大概的了解,一个人工智能的神经网络是如何工作的。

发表回复

您的电子邮箱地址不会被公开。