论文部分内容阅读
在过去的数十年间,很多研究集中于通过数据驱动的方式来学习贝叶斯网络。但是现实世界是复杂多变的,有许多知识是隐蔽的,不易被观测到。在关于贝叶斯网络的研究中,也存在同样的问题,这就是隐变量。隐变量是不可观察到的变量,但是隐变量往往能够简化可观测变量之间的复杂的依赖关系,优化贝叶斯网络模型。学习隐变量已成为贝叶斯网络研究领域的一项重要内容;发现隐变量的维数是隐变量研究中的一项难题。隐变量维数学习可以应用于构建包含隐变量的基因调控网络。因此,研究隐变量维数具有重要的科学意义和较高的应用价值,同时也是一个充满挑战性的问题。在本文中,将针对贝叶斯网络隐变量维数的学习展开一系列的探讨。隐变量维数的学习内容主要包括两个方面:一是,单隐变量维数的学习;二是,多隐变量的维数学习。针对这两个方面的研究内容,论文所开展的具体研究工作如下:第一,针对现有学习方法都难以准确学习隐变量维数的缺点,提出一种新颖的基于模拟退火策略控制下的评分凝聚算法(SSA算法)学习隐变量维数。SSA算法的基本思想:首先,利用马尔科夫独立性假设和BDe评分的可分解性排除网络中与隐变量条件独立的节点,提取由隐变量及其马尔科夫毯变量组成的局部网络。以局部网络替代原始网络进行维数学习,可以有效减少算法的运算时间;其次,确定隐变量的最大可能维数并填补数据集;再次,为隐变量取每种可能维数时的网络进行评分,同时使用模拟退火策略控制隐变量取值状态的合并;最终学习到隐变量的最优维数。第二,贝叶斯网络中存在多个隐变量时,多隐变量间可能存在复杂的依赖关系,尤其是当多个隐变量不是相互独立时。针对当前的方法不能有效学习多隐变量维数的问题,我们以SSA算法为基础提出学习多隐变量维数的MSSA算法。该算法的基本思想是:设置一个队列用以存放待学习的隐变量。每次只改变一个隐变量的维数并对网络评分,这可以使用SSA算法来实现。在改变了某个隐变量的维数之后,将与其非独立的隐变量加入对列中。直至队列为空或隐变量维数不再改变为止,算法终止。最终学习到多隐变量的最优维数。通过实验对本文所提出的方法进行了综合评估。实验表明,相对于其他算法,SSA算法及MSSA算法可以更好的学习到隐变量的最优维数,在运算时间上也优于其他的算法。最后,我们将MSSA算法与应用于不完备数据集下贝叶斯网络结构学习的SEM算法相结合,在真实基因调控数据集上构建含有多隐变量基因调控网络。结果显示我们提出的方法可以有效地构建包含隐变量的基因调控网络。