4

浅谈卷积神经网络中的卷积运算的统计学/生物学意义

 3 years ago
source link: https://szjshuffle.github.io/2019/08-09-%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E5%8D%B7%E7%A7%AF%E8%BF%90%E7%AE%97%E7%9A%84%E7%BB%9F%E8%AE%A1%E5%AD%A6%E5%92%8C%E7%94%9F%E7%89%A9%E5%AD%A6%E6%84%8F%E4%B9%89.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

浅谈卷积神经网络中的卷积运算的统计学/生物学意义

发布时间:2019-08-09

分类:

深度学习


通过一个motif calling的例子来认识深度神经网络中的卷积运算有什么具体的意义。

motif是什么?

1.motif是指DNA/RNA序列上能够与protein特异性结合的一段序列,通常该序列在7-20bp;

2.对于一个protein(transciptional factor,tf /RNA binding protein,RBP)来说,它结合在不同基因序列上的motif是不完全相同的。因此,我们没法用一条序列来表示一个Motif。那怎么表示一个protein的结合motif呢?常用的有以下3种方法:

a.基于motif的consensus序列来表示

b.基于seq-logo图表示(最常用)

c.基于位置频率矩阵(position frequency matrix,PFM)/位置权重矩阵(position weight matrix,PWM)表示 其中,PWM是PFM的改进版本,它消除了了序列本身固有的背景碱基含量带来的偏好性。

以上三个概念不懂的请查阅维基百科。

motif calling的基本问题

对Motif有了一个基本的认识后,我们来看一看关于motif识别的基本问题。

在生物信息学中,motif识别是一个非常基本而重要的问题。其场景可以简化为:

1.给定一个蛋白质名称(序列)以及该蛋白质的PFM(根据以往的实验数据统计得来)

2.给定一条待识别的DNA/RNA序列

问:该蛋白质与该条待识别的序列有哪些可能结合的位点(换句话说,该蛋白质在这个基因上的结合motif是什么)?

这个问题很好解决。

根据上一小节的知识,我们已知了PFM/PWM,它记录了一个蛋白质Motif各位置各碱基的分布情况,因此,一个最简单的方法就是扫描一遍待检测的序列,看看该序列上哪个区域与PWM的相似性得分最高,那这个区域就是该蛋白在该待检测序列上最有可能的结合motif。

如果一切都这么简单,那就好了。问题在哪呢?问题在于往往一个蛋白质的PFM/PWM不好获取(可能缺少了历史数据),那就无从谈起如何扫描序列获取Motif。

传统算法Call Motif

经典的Motif calling算法主要利用EM/Gibbs sampling来call PWM(Motif)。我们不妨简单看一下:

问题:给定N条能够与某一个protein结合的DNA/RNA序列,求该蛋白的Motif PWM?

EM算法的思路:

1.随机初始化:在这N条序列上随机选取N个位置作为guess motif(每条序列一个),计算PWM。

2.(E步)根据当前得到的PWM,对这N条序列进行遍历扫描,选择与PWM相似性最高的区域作为该序列新的Motif;

3.(M步)根据新的Motif,求出新的PWM;

4.循环2-3直至收敛。

然而这个过程由于需要迭代求解,会比较慢,因此有人提出利用Deeplearning来Call motif.

利用卷积神经网络做Motif calling

CNN的出现使得自动学习某一个蛋白质的PFM/PWM称为可能。考虑如下问题:

给定一个蛋白和一些已知的能够与该蛋白质结合的DNA/RNA序列;现在有一条全新的未知的DNA/RNA序列;问:

(1)如何训练一个分类器用于预测该未知序列是否能与该蛋白质结合呢?

(2)如果(1)能,我们是否有办法找出该蛋白在该序列上的结合Motif?

关于第(1)问,是一个相对简单的问题。我们只需要搜集该蛋白和一些已知的能够/不能够与该蛋白质结合的DNA/RNA序列,构成正/负样本,然后把序列作为Input,能否与蛋白结合作为Output。就能够完成该模式识别任务。这个过程可以基于传统的机器学习完成,也可以基于深度学习完成。

关于第(2)问,则是完美的展示深度学习卷积操作统计学意义的例子,第一个利用CNN识别Motif位点的算法是DeepBind。以下是该算法的思想:

考虑到传统利用PWM识别Motif的方法是扫描一遍待检测的序列,看看该序列上哪个区域与PWM的相似性得分最高,那这个区域就是该蛋白在该待检测序列上最有可能的结合motif。而卷积操作恰好与这个传统检测方法有异曲同工之妙:

1.卷积核也需要扫描Input矩阵来完成filtering。

2.如果我们把RNA序列编码成一个One-hot矩阵(维度是(LENGTH OF SEQUENCE)*4),以该矩阵作为CNN的输入,把卷积核的size设置为(LENGTH OF MOTIF)*4

那么卷积核扫描完该Input矩阵后得到的矩阵维度就是(LENGTH OF SEQUENCE - LENGTH OF MOTIF + 1)*1,此时,如果我们把学习到的卷积核参数看作PWM,那么,卷积核扫描完后得到一个维度为(LENGTH OF SEQUENCE - LENGTH OF MOTIF + 1)*1的layer1不正好代表了Input序列上每一个小片段与PWM的相似程度吗(Input的矩阵是独热编码的,所以输出可以看作相似性得分)?

有了这个原理,我们只需要给相似得分划一个阈值,高于阈值的就认为是可能结合的Motif即可。

卷积的统计学意义:对数似然比

上一小节本质上就是DeepBind算法的思想,但好奇的我们一定会问:为什么会这么巧!原因就在于:卷积操作本质上可以理解是一种对数似然比。

我们通过一个小例子来看一看这个事情: 假设我有一段序列,它的序列是ACTG,假设某个蛋白质的结合motif恰好长度为4,想看一看该序列与PWM的相似性? 这个问题可以利用likelihood:

L=P(A1)∗P(C2|A1)∗P(T3|A1,C2)∗P(G4|A1,C2,T3)L=P(A1)∗P(C2|A1)∗P(T3|A1,C2)∗P(G4|A1,C2,T3)

其中P(A_1)表示A碱基出现在PWM第一个位置的概率,P(C_2)表示C碱基出现在PWM第二个位置的概率,以此类推。

那么,对数Likelihood就可以写作:

lnL=lnP(A1)+lnP(C2|A1)+lnP(T3|A1,C2)+lnP(G4|A1,C2,T3)lnL=lnP(A1)+lnP(C2|A1)+lnP(T3|A1,C2)+lnP(G4|A1,C2,T3)

当我们把背景碱基(background,bg)的信号除掉,就成了传统的Motif序列识别算法:

lnP(A1)P(Abg)+lnP(C2|A1)P(Cbg)+lnP(T3|A1,C2)P(Tbg)+lnP(G4|A1,C2,T3)P(Gbg)lnP(A1)P(Abg)+lnP(C2|A1)P(Cbg)+lnP(T3|A1,C2)P(Tbg)+lnP(G4|A1,C2,T3)P(Gbg)

现在,我们再回过头来看一看卷积操作得到的相似性得分是什么? 不妨假设我们学习到的卷积核参数为:

ACGT0.10.20.40.30.20.20.50.10.10.20.40.20.40.20.20.2A0.10.20.10.4C0.20.20.20.2G0.40.50.40.2T0.30.10.20.2

由于原始序列ACTG的Input矩阵恰好编码成了一个独热矩阵,因此可以表示为:

⎡⎣⎢⎢⎢1000010000100001⎤⎦⎥⎥⎥[1000010000100001]

每一行对应一种碱基的独热码,依次为ACGT,那么卷积运算后得到的第一层layer(看做相似性得分)就是:

0.1∗1+0.2∗1+0.4∗1+0.2∗1=0.90.1∗1+0.2∗1+0.4∗1+0.2∗1=0.9

这本质上就和对数似然比之和的操作思想是一回事。通过扫描序列,求和得到一个得分,得分越高,越可能是信号;得分越低,越可能是背景。而对数似然比之和恰恰就是这种相似性得分的思想。因此,卷积可以理解成某种意义上的对数似然比:

给该相似性得分设定一个人为的阈值,低于该阈值的认为是background;高于阈值的,认为是可能的Motif(signal),这正是起到了一个过滤降噪的作用。

从这点意义上,我们发现,原来卷积是有具体生物学和统计学意义的!

本文整理自邓明华老师的生物信息算法设计课程。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK