默认冷灰
24号文字
方正启体

02 程序的优化(1/2)

作者:南非闲人
为了更好的训练这个智能程序,王石已经把这个核心挂在聊天程序上好几个月了,程序也确实按照王石的设想那想变得越来越人性化。

现在基本上王石的聊天活动都是由这个程序代劳的,而对方也基本没有看出来,自己在与一个程序在聊天,只是有时候会觉得王石的回复有点弱智,有点惊讶罢了。

虽然程序的表现越来越好,可是王石也有苦恼,那就是越来越大的神经元数据库和越来越慢的反应速度。

虽然一早就料到了程序在成长的过程中,这些问题是迟早会出来的,但是由于成长的速度超出了王石的想象,所以,这些问题就提前到来了。

程序的成长性主要是由可扩展的神经元数据库和外挂的语言库决定的,到现在为止,神经元数据库的条目已经有十几万条了。而语言库则由开始的2兆多不到3兆字节扩展到了2个多g的体积。足足增加了近上千倍。由于核心基本没变,在体积变大的同时,程序的反应速度也就不可避免的开始变得迟钝。

既然出现这样的问题,那么就要把它给解决,这是王石的一贯作风,其实,王石因为早就料到了这个问题,所以王石老早也就准备好了好几套解决方案,最简单的方案就是升级硬件,让计算机的速度加快,但是王石现在还是学生,虽然由于不错的计算机水平,还能接点活赚点外快,但也不是很多。所以这方案基本被否决了。

那么只能从程序优化上作文章了,由于一开始设计的时候,把神经元的工作模式制作成了核心,把神经元构造成了数据库的模式。而且一开始虽然定义了每个神经元的连结数量,按照使用频率的权值进行增减,但是由于开始时库的容量比较小,所以没有启用这个功能,这就导致了这个连接的数目是按照神经元的条数的指数形式进行增长的。因为每个连接都要被处理的,所以最后计算资源全部消耗在这个地方上了。

幸好核心程序一开始就预留了这个功能模块的接口,使得这一步的工作量大大减小。王石大约花了一个下午时间编好了模块,重新编译连接了整个模块,又通过一星期时间的调试。算是完成了这一步,按照王石的估计,这下连接的数目增长方式可能会变成线性增长的方式。因为,对于单个神经元来说,连接的数目最大数是按照使用频率的来确定的,使用频率越高,那么可连接到其它神经元的连接最多的数目也可以更多,这从整体上限制了连接数目暴发式增长的可能性。但是为了消除由于设置这个限制的影响。这就有必要考虑这个连接的取舍问题。若是由于不加考虑的随便取消一个连接,则将会导致整个系统的逻辑混乱和失去稳定定性。

举个例子,比如说,一个人的关系网,一个人上有爸爸妈妈爷爷奶奶,旁边有老婆,下有儿子女儿孙子孙女,还有兄弟姐妹,而且还有工作上的一些关系,而这些人基本上这也有这么一些关系。而这些关系呢,也就有了远近亲疏之分,而所有这些关系里面,对这个人影响最大的,当然就是最亲最近的人了,然后按照亲疏远近的不同,影响力逐渐减小。所以当关系较远的人发生什么事情,基本上影响不到这个人,自然没有这种关系也无所谓,但是关系较近的人发生了这种事情,那么

就会发生很大的影响,当突然之间取消掉这个关系的话,那么情况就会发生突然的变化,从而导致关系网的混乱。而王石构造的这个神经网络与此类似。那个影响力大小和亲近程度就代表了那个连结的强度。这个连接的强度是在的训练中不断调整并趋向于稳定的。很显然,假如有一天,要让你选择你只能保留一百个人之间的关系的话,你会怎么选择呢?自然是按照关系的亲近程度来进行选择的。

幸好由于一开始的时候已经考虑了这个问题,所以王石没花多少时间就完成了这个模块的编制,这个模块的首要问
本章未完,请翻下一页继续阅读.........
(←快捷键) <<上一章 投推荐票 回目录 标记书签 下一页>> (快捷键→)