CNN 模型 ======== 切换语言: :doc:`../en/CNNModels` 本页覆盖卷积基线家族:``M1``、``M2``、``M3``。这组模型是当前项目与原始 DeepChrInteract 设计思路连接最紧的一条主线,也是整个 benchmark 的基础参照系。 为什么 CNN 对 EPI 有意义 ++++++++++++++++++++++++ DNA 序列建模通常首先面对局部 motif 检测问题,而卷积层天然适合: - 扫描短程核苷酸模式; - 逐层组合 motif; - 用较稳定、较高效的方式训练强基线; - 在不依赖外部预训练的前提下建立可靠对照。 如果写成运算形式,1D 卷积本质上就是一个可学习的 motif 扫描器: .. math:: h_t = \sigma\!\left(\sum_{c=1}^{C}\sum_{i=0}^{k-1} w_{c,i}\,x_{c,t+i} + b\right) 其中 :math:`x` 是多通道序列输入,:math:`k` 是卷积核宽度,:math:`h_t` 是位置 :math:`t` 的激活。对 DNA 来说,每个卷积核都可以理解为一个可训练的短程模式探测器。 M1:单路 CNN 基线 +++++++++++++++++++++++++++++ ``M1`` 是最简单的卷积基线。 - 输入:one-hot 编码 ``(B, 5, L)`` - 骨干:两阶段 ``Conv1d -> BN -> ReLU -> MaxPool`` - 头部:全局平均池化后接全连接层 - 作用:测试局部序列信号本身能否提供有效预测信息 由于它不涉及 pair fusion,也不引入递归或注意力机制,所以 ``M1`` 是回答基础问题最干净 的模型:如果只依赖局部模式检测和层次池化,序列本身到底能提供多强的预测信号。 M2:双路 CNN 基线 +++++++++++++++++++++++++++++ ``M2`` 把 enhancer 和 promoter 分开编码,再做融合。 - 输入:enhancer / promoter 各一条分支 - 编码器:两条分支共享同一类卷积骨干 - 融合:接项目统一 fusion 模块 - 作用:更贴近 EPI 的成对建模本质 它的计算可以概括为: .. math:: h_e = f_e(x_e), \qquad h_p = f_p(x_p), \qquad z = \mathrm{Fuse}(h_e, h_p) 这意味着模型先分别编码 enhancer / promoter,再把融合层当作显式关系建模模块,用来表达 兼容性、差异性或协同性。 M3:k-mer Embedding + CNN +++++++++++++++++++++++++ ``M3`` 改变的是输入表示,而不是放弃卷积路线。 - 输入:k-mer token 序列 - embedding:可学习 token 向量表 - 编码器:四个卷积块 - 作用:连接符号化 token 表示和卷积特征抽取 如果写成表示形式,输入会变成: .. math:: s = (t_1, \dots, t_n), \qquad e_i = E[t_i] 其中 :math:`t_i` 是 k-mer token,:math:`E` 是 embedding 表。随后 CNN 作用在 token 向量上,而不是直接作用在碱基 one-hot 通道上,因此 ``M3`` 正好位于经典卷积和语言模型式 表示之间。 共同优势 +++++++++++++++++++++++++++++ - 训练稳定 - 局部模式抽取能力强 - 适合做历史对照与强基线 - 相对更容易解释 计算复杂度与适用范围 +++++++++++++++++++++ - 时间复杂度:每层卷积对序列长度基本呈线性增长,可近似看作 :math:`O(L \cdot k \cdot C_{in} \cdot C_{out})`,常数项取决于卷积核数量和网络深度。 - 显存特征:通常比较可控,主要由中间特征图决定,而不是由显式两两交互矩阵决定。 - 适用范围:非常适合短到中等长度窗口,也适合大规模 benchmark 扫描,因为训练稳定、吞吐高。 共同局限 +++++++++++++++++++++++++++++ - 对长程依赖的显式建模不如循环、注意力或状态空间路线自然 - 感受野增长依赖层数、卷积核和步幅设计 与旧版项目的关系 +++++++++++++++++++++++++++++ CNN 家族是当前项目与原始 DeepChrInteract 之间最直接的连续部分,因此它同时承担: - 历史延续作用; - 与新模型比较时的标准基线作用。 .. image:: ../img/div.png