

浅谈卷积神经网络中的卷积运算的统计学/生物学意义
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.

通过一个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:
其中P(A_1)
表示A碱基出现在PWM第一个位置的概率,P(C_2)
表示C碱基出现在PWM第二个位置的概率,以此类推。
那么,对数Likelihood就可以写作:
当我们把背景碱基(background,bg)的信号除掉,就成了传统的Motif序列识别算法:
现在,我们再回过头来看一看卷积操作得到的相似性得分是什么? 不妨假设我们学习到的卷积核参数为:
由于原始序列ACTG
的Input矩阵恰好编码成了一个独热矩阵,因此可以表示为:
每一行对应一种碱基的独热码,依次为ACGT
,那么卷积运算后得到的第一层layer(看做相似性得分)就是:
这本质上就和对数似然比之和的操作思想是一回事。通过扫描序列,求和得到一个得分,得分越高,越可能是信号;得分越低,越可能是背景。而对数似然比之和恰恰就是这种相似性得分的思想。因此,卷积可以理解成某种意义上的对数似然比:
给该相似性得分设定一个人为的阈值,低于该阈值的认为是background;高于阈值的,认为是可能的Motif(signal),这正是起到了一个过滤降噪的作用。
从这点意义上,我们发现,原来卷积是有具体生物学和统计学意义的!
本文整理自邓明华老师的生物信息算法设计课程。
Recommend
-
179
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络, 在计算机视觉等领域被广泛应用. 本文将简单介绍其原理并分析Tensorflow官方提供的示例. 关于神经网络与误差反向传播的原理可以参考作者的另一篇博文
-
105
稀疏&集成的卷积神经网络学习(续) Original Edison_G...
-
109
稀疏&集成的卷积神经网络学习 Original Edison_G...
-
149
-
191
卷积神经网络的复杂度分析在梳理CNN经典模型的过程中,我理解到其实经典模型演进中的很多创新点都与改善模型计算复杂度紧密相关,因此今天就让我们对卷积神经网络的复杂度分析简单总结一下下。本文主要关注的是...
-
10
卷积的数学定义 在图像分析和图像处理中,卷积(convolution)是一种非常重要的运算。卷积是一个积分运算,其反应的是函数f(x)f(x)f(x)在另一个函数h(x)h(x)h(x)上移动时所叠加的量。函数fff和hhh在有限域[0,t][0,t][0,t]上的...
-
5
机器学习 统计学博文导读:火箭队比赛与分类树、神经网络与降维 关键词:
-
5
Computer Vision(CV)CV 是深度学习应用的主要方向之一。CV 问题主要包括以下三类: Image Classification Object detection Neural Style Transfer 传统神经网络为什么不能够很好的胜任 CV 问题?...
-
12
图解卷积运算的 im2col 算法 卷积运算是一种提取图像特征的重要算法,它通过把给定的卷积核应用到图像上,从而缩减图像尺寸,达到提取特征的目的。卷积核在图像上每移动一次就对其覆盖的区域进行一次运算,具体的算法其实就是对应元素相乘然后求...
-
1
高级 卷积运算的循环顺序修改与乘加器阵列映射——神经网络加速器与SOC芯片设计(十五) 4小时前 作者:蔡宇杰...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK