一句话评价

很全面,很基础,但仅以此为基础远远不够

文章信息

  • 题目:A primer on deep learning in genomics
  • 单位:斯坦福大学
  • DOI:10.1038/s41588-018-0295-5
  • 杂志:Nature Genetics (IF 27.603)
  • 分类:Review

深度学习作为机器学习的一类方法

  • 机器学习分为两大类:

    1. 监督学习:训练数据带有标签
    2. 无监督学习:学习数据本身内在的规律
  • 数据通常随机分成三部分:

    1. 训练集:用于学习模型的参数
    2. 交叉验证集:用于选择最佳模型
    3. 测试集:用于评估模型的普适性
  • 机器学习模型必须达到一种微妙的平衡:

    • 模型太简单会导致欠拟合,无法让数据“说话”
    • 模型太复杂会导致过拟合,普适性差

深度学习配置

  • 神经网络的起点是一个神经元,它以一个真实数据构成的向量作为输入,计算这些数据的加权平均,然后进行非线性转换。

  • 权重是模型的参数,是在训练模型的过程中学习到的

  • 一个神经元的输出可以直接作为另一个神经元的输入

  • 在基因组学中,输入可能是DNA序列,A, C, T, G碱基分别被编码成[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]

  • 三种常见的神经网络结构:

    1. 前馈神经网络:结构最简单,第i层的神经元仅与第i+1层的神经元相连,适用于输入数据的各特征没有特殊关系的情况
    2. 卷积神经网络 (CNN):对输入数据进行扫描,通过滑窗计算局部加权和,适用于存在空间上的固定模式的数据
    3. 循环神经网络 (RNN):用于序列或时序数据,神经元不仅与输入输出数据相连,同时也向自身反馈从前面的数据中获得的“记忆”
  • 最常用的无监督学习神经网络结构:进行非线性降维的自动解码器

    PCA是线性的

  • 常用的损失函数:

    1. 均方误差:衡量预测值与实际值的差异,适用于输出为连续型数值的情况
    2. 交叉熵:衡量两种概率分布间的差异,适用于输出为分类的情况
  • 将损失函数对模型的参数(也就是神经元的权重)求导,从而沿导数方向一小步一小步地更新权重降低模型的损失,提高预测的准确率

    导数可通过链式法则求得,这一过程叫作反向传播

  • 预防过拟合的方法:

    1. 当交叉验证数据的准确率开始下降时停止训练
    2. L2正则:根据神经元的权重进行惩罚
    3. Dropout:随机忽略一些神经元

如何高效使用深度学习

  • 最重要的步骤:选择合适的训练数据及评价标准

    基因组数据往往是高度不平衡的,不能单看准确率

  • 需要基因组学专业知识

  • 大多数基因组数据模型不需要太多层,五层就足够了

  • 大量标记好的训练数据十分重要

  • 比较不同的简单机器学习模型

深度学习模型的解读

  • 在基因组学中,比起预测准确率本身,研究者对模型预测的生物学机制更感兴趣

  • 解读神经网络最简单的方式是模拟点突变

    固定其它特征,将每一个位点进行突变后重新作为输入,追踪输出的变化。这一方法很容易实现,但是计算量巨大

  • 另一种可行的近似方法是提取每一个特征的导数,衡量输出对每一个输入特征的波动的敏感度

  • 对于卷积神经网络来说,可以将每一个卷积滤波器的输出可视化成热图,但多个卷积滤波器学习的可能是部分冗余的特征,局部特征如何相互作用并不清楚

  • 对模型的解读只能找出关键特征并形成假设,实验验证仍然是必不可少的

基因组学应用

  • 功能基因组学是深度学习领域一个领先的应用

  • 深度学习在调控基因组学的应用非常成功

    大多数方法使用CNN或RNN,适用于调控元件建模

  • 深度学习能够根据基因型数据建立基因表达预测模型,鉴定长的非编码RNA等

总结与展望

  • 一些待解决的问题:

    1. 如何设计充分利用及补充人类实验的深度学习系统进行医疗决策
    2. 如何避免训练集造成的偏差,如何解读预测结果
    3. 需要反复的实验来验证深度学习的预测结果
  • 务必区分高预测准确率与从数据中提取生物医疗观点的终极目标,制定能够应对多种数据背景的评估体系