Datawhale AI 夏令营|Task1新手向学习笔记

181 阅读5分钟

siRNA药物药效预测实践

本次的学习的主题是AI加生命科学,同时也是深度学习领域的学习和实践。 目前我们学习了Task1.1和Task1.2,即初步入门和跑通baseline,然后通过直播学习对赛题《siRNA药物药效预测》进行解析和入门的学习。

Task1从零入门

步骤概览

1722152419716.png (如果PAI-DSW启动失败,可以再次尝试启动或者用第二个“阿里云弹性加速计算EAIS。实例启动大约两分钟就好。)

  • 新建名为“2.3siRNA”的目录,然后把前面两个文件上传,然后解压缩zip文件,然后可以运行名为task3.2_siRNA.ipynb的代码了。
  • 大约跑十分钟即可,下载结果文件submission.csv
  • 最后在赛事官网提交结果文件就可以得到分数了!每天可以提交三次,推荐大家先不组队,就可以得到更多的提交机会了。

1722152173682.png

赛题

提供一部分公开文献中提取的siRNA修饰序列以及相应实验条件数据(例如药物浓度、细胞系、转染方式等),随机打散后使用约85%数据训练,剩余约15%数据用于leaderboard submission评分,主要用于测试针对在训练集中出现过的目标mRNA序列,不同siRNA的沉默效率预测的准确率。

要求预测siRNA序列的RNAi沉默效率,这涉及到对化学修饰后的siRNA序列的分析。

深度学习

深度学习是一种机器学习技术,通过构建具有多层结构的神经网络模型来模拟人脑处理信息的方式。这些模型能够自动学习和提取数据中的复杂特征,从而在图像识别、语音识别、自然语言处理等领域展现出卓越的性能。

方法

  1. 数据预处理:在训练模型之前,需要对数据进行清洗、标准化和归一化,以消除噪声和不一致性,确保数据质量。
  2. 特征工程:选择或构造对模型有用的特征,这些特征能够代表数据的重要信息。(对赛题的生物背景较为熟悉更好进行特征选择)
  3. 模型设计:设计神经网络的结构,包括层数、每层的节点数、激活函数等。
  4. 损失函数:选择合适的损失函数来衡量模型预测与实际值之间的差异,常见的有均方误差、交叉熵等。
  5. 优化算法:使用梯度下降或其变体(如Adam、RMSprop)来调整网络参数,以最小化损失函数。

一般步骤

  1. 数据集划分:将数据分为训练集、验证集和测试集,以评估模型的泛化能力。
  2. 模型训练:使用训练集数据对模型进行训练,通过反向传播算法不断更新网络权重。
  3. 超参数调优:调整学习率、批大小、迭代次数等超参数,以提高模型性能。
  4. 模型评估:使用验证集和测试集对模型进行评估,检查其准确性、召回率等指标。
  5. 模型部署:将训练好的模型部署到实际应用中,进行预测或决策支持。

代码解析

代码构建了一个深度学习框架,专门用于训练针对siRNA数据集的模型。它通过设计的算法,能够有效地处理siRNA数据,以实现模型的高效学习和优化。

(由于是基于生物专业有python基础的新手向,故主要讲入门基础)

1. 依赖库的导入

导入了实现深度学习模型所需的各种依赖库,为后续的模型构建和数据处理提供了基础工具和函数。

1722156256132.png

Torch是一个科学计算框架,主要用于机器学习,特别是深度学习。Torch以其灵活性和高效性著称,支持复杂的神经网络模型。

推荐教程:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】笔记_pytorch深度学习快速入门教程 150全集 绝对通俗易懂 代码-CSDN博客

机器学习神器Scikit-learn保姆级入门教程_scikit.js-CSDN博客> (blog.csdn.net/sinat_39448…)

2. 基因组分词器类

定义了一个专门处理基因组序列的分词器类。这个类的核心功能是将长串的基因组序列按照预定的长度划分成多个n-gram序列。通过这种方式,我们可以将连续的基因组信息转换为适合深度学习模型处理的格式。

3. 基因组词汇类

该类用于创建一个词汇表,用于将基因组片段映射为索引。

4. siRNA数据集类

5. siRNA Model

基于GRU的神经网络模型,用于处理siRNA序列。

6. 评估指标计算函数

该函数用于计算模型的各项评估指标,包括精确度、召回率、F1值和评分。

7. 模型评估函数

该函数用于在测试集上评估模型性能。

8. 模型训练函数

函数用于训练模型,并在每个epoch后评估模型的性能,保存最佳模型。

9. 训练主程序

10. 测试程序