摘要 机器学习方法经常被应用到解决医学和生物信息学的问题。本文列举了一些把机器学习方法应用到生物信息学领域的实例。比如:组建多重神经网络,运用该神经网络对4种不同形势的肿瘤患者进行分类。
关键词 人工;神经网络;机器学习方法
中***分类号Q1 文献标识码A 文章编号 1674-6708(2011)40-0111-02
0 引言
机器学习方法经常被应用到解决医学和生物信息学的问题。在这个报告中我列举了一些把机器学习方法应用到生物信息学领域的实例。比如:组建多重神经网络,运用该神经网络对4种不同形势的肿瘤患者进行分类。
1 介绍
人工神经网络属于机器学习领域。关于人工神经网络的概念最早提出于1940年代。后来在1980年代后被推广应用,尤其是在医学领域。
其中一个非常有用的用途是对疾病进行分类,达到诊断的目的,或者对基因表达进行分类。在这类神经网络里面,k点最近邻居算法是最常被采用的算法。
人工神经网络的优点是:不需要人们蛆关注神经网络里面的细节信息;人工神经网络可以很容易地被重新训练来应对不同地分类数据。人工神经网络可以用来解决有监督学习和无监督学习,比如:自组织特征映射(self-organized feature map)就可以用来解决无监督学习的问题。
它的不足之处在于:人工神经网络往往需要大量的训练数据,而这些训练数据往往不是很容易获得。人工神经网络可以被看作是一个黑盒,它的细节隐藏在点点之间的权值里面。这些权值的意义是人类无法理解的。同时,人工神经网络需要被仔细的训练以避免过拟合的情况出现。我们常常需也要降低高维数据的维度。下面,我将分析介绍人工神经网络的具体应用。
人工神经网络的结构如***1所示:
X1 ,X2 ,X3是该神经网络的输入值,w0 ,w1 ,w2 ,w3 是该神经网络的输入结点到内部节点的路径权值,每个神经元的激活函数是如上***右侧所示的函数***像。
这个函数被称作为sigmoid函数,表达式如下:
多重神经网络通常有3层,事实上,3层神经网络以能进行很好的分类效果。这三个层包括输入层,隐藏层,输出层。在每个神经元内部我们可以选择sigmoid激活函数或其他种类的激活函数。
如***2所示:
单个神经元仅能提供线性的分割面,所以多层神经网络可以提供非线性的分类函数(即:若干个线性分割面的复杂组合)。这并不意味着4层神经网络就一定比3层神经网络能一共更好的分类效果,因为层数越多,需要的训练集就越庞大,得到的效果也不会提高。
既然有训练问题,就会涉及到训练算法。较为早的和著名的训练算法是delta 规则。它于20世纪60年代被提出。它的原理是计算理论输出值和世纪输出值的均方差。tp 为理论输出值,yp为实际输出值,表示为:
训练的开始阶段,我们通常设定一个随机选取值,令该值等于:
该公式里,α是学习速率,学习速率越大,学习的过程就越快,完成学习的时间短。但如果学习的速率过大,可能导致网络的理想权值在合理结果的附近游摆而永远无法获得理想的权值。
神经网络被训练好了以后,它就被用到解决目标问题。原始的数据集可以被分为两部分:一部分用来训练,一部分用来测试。
有时候神经网络会把训练数据集里面的噪音点的特征纳入自己的权值表达里,从而该神经网络无法真正体现该点集的真实特征。我们把这种情况叫做过拟合。过拟合是由于网络比待估函数复杂造成的。比如一个可以同3层网络解决的问题,我们用4层网络或者由更多神经元的三层网络去解决该问题,就容易造成过拟合。为了更好的明确训练时所采用的神经网络的隐藏层的层数,Livingstone 和 Manalack 提出了如下计算公式:
D = m*o/w
该公式里m是训练样本的数目,o是该网络的输出值,w是网络权值的数目,D就是隐藏层的数目。
得到了隐藏层的数目之后,我们可以以这个数目创建神经网络,边训练边削减,直到我们获得一个一半化的网络。对于没有隐藏网络层或只有一个隐藏网络层的神经网络,我们需要先确定它要解决的问题是否是线性的。
适当的训练方案是能也可以使网络的复杂性和数据的复杂性得到合适的匹配。一个合适的训练方案应该是如下步骤:首先选择一个很大的网络并且把它的每个权值都设到一个很小的值上。通过训练,这些权值可以逐渐游摆到一个合理的值。
由于初始数据集通常要被分为训练集和测试集。在医学领域,我们能获得的数据集往往很小,比如某种病的病人数目不会很大。所以我门需要采用交叉验证的技巧来是较小的数据集在被分为训练集和测试集之后能较好的训练神经网络。
参考文献
[1]Machine learning in bioinformatics: A brief survey and recommendations for practitioners.Harish Bhaskar, David C.Hoyle, Sameer Singh.