一句话评价
很全面,很基础,但仅以此为基础远远不够
文章信息
- 题目:A primer on deep learning in genomics
- 单位:斯坦福大学
- DOI:10.1038/s41588-018-0295-5
- 杂志:Nature Genetics (IF 27.603)
- 分类:Review
深度学习作为机器学习的一类方法
机器学习分为两大类:
- 监督学习:训练数据带有标签
- 无监督学习:学习数据本身内在的规律
数据通常随机分成三部分:
- 训练集:用于学习模型的参数
- 交叉验证集:用于选择最佳模型
- 测试集:用于评估模型的普适性
机器学习模型必须达到一种微妙的平衡:
- 模型太简单会导致欠拟合,无法让数据“说话”
- 模型太复杂会导致过拟合,普适性差
深度学习配置
神经网络的起点是一个神经元,它以一个真实数据构成的向量作为输入,计算这些数据的加权平均,然后进行非线性转换。
权重是模型的参数,是在训练模型的过程中学习到的
一个神经元的输出可以直接作为另一个神经元的输入
在基因组学中,输入可能是DNA序列,A, C, T, G碱基分别被编码成[1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1]
三种常见的神经网络结构:
- 前馈神经网络:结构最简单,第i层的神经元仅与第i+1层的神经元相连,适用于输入数据的各特征没有特殊关系的情况
- 卷积神经网络 (CNN):对输入数据进行扫描,通过滑窗计算局部加权和,适用于存在空间上的固定模式的数据
- 循环神经网络 (RNN):用于序列或时序数据,神经元不仅与输入输出数据相连,同时也向自身反馈从前面的数据中获得的“记忆”
最常用的无监督学习神经网络结构:进行非线性降维的自动解码器
PCA是线性的
常用的损失函数:
- 均方误差:衡量预测值与实际值的差异,适用于输出为连续型数值的情况
- 交叉熵:衡量两种概率分布间的差异,适用于输出为分类的情况
将损失函数对模型的参数(也就是神经元的权重)求导,从而沿导数方向一小步一小步地更新权重降低模型的损失,提高预测的准确率
导数可通过链式法则求得,这一过程叫作反向传播
预防过拟合的方法:
- 当交叉验证数据的准确率开始下降时停止训练
- L2正则:根据神经元的权重进行惩罚
- Dropout:随机忽略一些神经元
如何高效使用深度学习
最重要的步骤:选择合适的训练数据及评价标准
基因组数据往往是高度不平衡的,不能单看准确率
需要基因组学专业知识
大多数基因组数据模型不需要太多层,五层就足够了
大量标记好的训练数据十分重要
比较不同的简单机器学习模型
深度学习模型的解读
在基因组学中,比起预测准确率本身,研究者对模型预测的生物学机制更感兴趣
解读神经网络最简单的方式是模拟点突变
固定其它特征,将每一个位点进行突变后重新作为输入,追踪输出的变化。这一方法很容易实现,但是计算量巨大
另一种可行的近似方法是提取每一个特征的导数,衡量输出对每一个输入特征的波动的敏感度
对于卷积神经网络来说,可以将每一个卷积滤波器的输出可视化成热图,但多个卷积滤波器学习的可能是部分冗余的特征,局部特征如何相互作用并不清楚
对模型的解读只能找出关键特征并形成假设,实验验证仍然是必不可少的
基因组学应用
功能基因组学是深度学习领域一个领先的应用
深度学习在调控基因组学的应用非常成功
大多数方法使用CNN或RNN,适用于调控元件建模
深度学习能够根据基因型数据建立基因表达预测模型,鉴定长的非编码RNA等
总结与展望
一些待解决的问题:
- 如何设计充分利用及补充人类实验的深度学习系统进行医疗决策
- 如何避免训练集造成的偏差,如何解读预测结果
- 需要反复的实验来验证深度学习的预测结果
务必区分高预测准确率与从数据中提取生物医疗观点的终极目标,制定能够应对多种数据背景的评估体系