使用平台
我的Notebook · 魔搭社区 https://modelscope.cn/my/mynotebook/preset
主要操作
-
运行实例,如果有时长尽量选择方式二(以下操作基于方式二的实例实现)
-
创建文件夹,并重命名为 2.3siRNA
-
上传两个文件
到文件夹, 这里面的第三个按钮是上传 -
在当前文件夹打开终端(如图示意打开终端)并输入解压命令
注意:如果你的压缩包名字不是这个请将“siRNA_0715.zip” 换成你的压缩文件的名字“xxx.zip”(xxx为文件名)
(方便复制)
unzip siRNA_0715.zip
到这里准备工作可以了,如果解压出问题了,可以重新上传一下,然后重复解压的操作
总览
详细可以参考这篇
参赛平台
上海科学智能研究院
Task 1 跑通基线
baseline
- 运行笔记本
2.3siRNA/task3.2_siRNA.ipynb
就是这个橙不溜秋的书签,双击运行
- 运行笔记本中的所有代码
- 等待结果出来
可以看到多了一个文件夹和文件
右键下载result/submission.csv文件(download)
注意用完平台记得关闭实例(右上角)!!!
注意用完平台记得关闭实例(右上角)!!!
注意用完平台记得关闭实例(右上角)!!!
tips: 算力充足可以当我没说,不关的话时长会一直使用
提交文件获得第一个分数
平台: 上海科学智能研究院
注册和实名制略过
点击提交结果和选中刚刚下载的文件等待上传
点击我的成绩查看分数
至此Task1 baseline 任务完成
Task1 知识点终结
基因组分词器类
基因组分词器的目的是将基因组序列分割成固定长度的n-gram片段。这是为了进一步处理或分析基因组数据时的需要。
基因组数据通常是由ACGT四个字母(腺嘌呤、胞嘧啶、鸟嘌呤和胸腺嘧啶)组成的序列。
n-gram
指由n个连续字母构成的片段。将基因组序列分割成n-gram片段可以帮助我们理解基因组的结构和功能。
基因组分词器将基因组序列分割成固定长度的n-gram片段可以用于以下应用:
- 基因组注释:通过分析n-gram片段可以识别基因、启动子、转录因子结合位点等功能区域。
- 基因组比对:将n-gram片段与已知的基因组序列进行比对,可以找到相似的片段并识别基因的同源性。
- 基因组序列分类:通过分析n-gram片段可以将不同物种的基因组序列进行分类。
GRU的神经网络模型
GRU是一种循环神经网络(RNN)模型,全称为Gated Recurrent Unit。它是一种改进的RNN架构,用于处理序列数据,尤其在自然语言处理和语音识别等任务中表现出色。
GRU通过引入门控机制来解决传统RNN存在的短期记忆和长期记忆不平衡的问题。它具有两个门控单元:重置门(reset gate)和更新门(update gate)。重置门控制了当前状态如何与先前状态相结合,而更新门控制了用于传递信息的新状态的计算。
GRU单元结构如下图所示
GRU是Ilya Sutskever和Oriol Vinyals等人在2014年提出的一种改进的RNN单元,它旨在解决传统RNN在处理长序列时出现的梯度消失或梯度爆炸问题。
GRU的核心思想是引入两个门控机制:更新门(Update Gate)和重置门(Reset Gate)。这两个门控机制允许模型动态地决定在每个时间步上应该保留多少之前的信息,以及应该更新多少当前的信息。这使得GRU能够更好地捕捉长距离依赖关系。
GRU的数学模型
更新门(Update Gate)
更新门决定了在当前时间步应该保留多少之前的隐藏状态。更新门的公式如下:
z t = σ ( W z ⋅ [ h t − 1 , x t ] ) z_t = \sigma(W_z \cdot [h_{t-1}, x_t]) zt=σ(Wz⋅[ht−1,xt])
其中, z t z_t zt 是更新门的输出, W z W_z Wz 是更新门的权重矩阵, σ \sigma σ 是sigmoid函数。
重置门(Reset Gate)
重置门决定了在当前时间步应该忽略多少之前的隐藏状态。重置门的公式如下:
r t = σ ( W r ⋅ [ h t − 1 , x t ] ) r_t = \sigma(W_r \cdot [h_{t-1}, x_t]) rt=σ(Wr⋅[ht−1,xt])
其中, r t r_t rt 是重置门的输出, W r W_r Wr 是重置门的权重矩阵。
候选隐藏状态(Candidate Hidden State)
候选隐藏状态是当前时间步的新信息,其公式如下:
h ~ t = tanh ( W ⋅ [ r t ⊙ h t − 1 , x t ] ) \tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t]) h~t=tanh(W⋅[rt⊙ht−1,xt])
其中, h ~ t \tilde{h}_t h~t 是候选隐藏状态, W W W 是候选隐藏状态的权重矩阵, ⊙ \odot ⊙ 表示Hadamard乘积。
最终隐藏状态(Final Hidden State)
最终隐藏状态结合了之前保留的信息和当前的新信息,其公式如下:
h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t ht=(1−zt)⊙ht−1+zt⊙h~t
其中, h t h_t ht 是最终的隐藏状态。
GRU在自然语言处理、语音识别和时间序列预测等领域有着广泛的应用。
小结
相比于普通的RNN模型,GRU具有更好的记忆能力和更强的建模能力,同时减少了参数数量,使得训练过程更加高效。 由于其优秀的性能和实用性,GRU已经成为经典的循环神经网络模型之一,并被广泛应用于各种序列数据分析任务中。
机器学习知识点
MAE (Mean Absolute Error)
表示预测值与真实值之间的平均绝对误差。
它计算每个样本的预测值与真实值之间的差值的绝对值,然后对所有样本取平均。
召回率(Recall)
表示所有真正例中被正确预测为正例的比例。
召回率可以衡量模型对正例的覆盖程度,即模型有多少能够找到真正例。
F1得分
精确度和召回率的调和平均值。
F1得分的取值范围为0到1,其中1表示最佳性能,0表示最差性能。
精确度(Precision)
表示被预测为正例中实际为正例的比例。
精确度可以衡量模型的准确性,即模型有多少预测为正例的样本真正是正例。
Sigmoid函数
一种常用的激活函数,用于在神经网络中引入非线性。
它的数学表达式如下:
s i g m o i d ( x ) = 1 / ( 1 + e x p ( − x ) ) sigmoid(x) = 1 / (1 + exp(-x)) sigmoid(x)=1/(1+exp(−x))
其中,exp(-x)表示e的-x次方,e是自然常数。
Sigmoid函数的输出值范围在0到1之间,通常用于将输入值映射到一个概率分布,或者作为二分类问题中的激活函数。
在GRU单元中,Sigmoid函数被用于计算两个门控向量:更新门(update gate)和重置门(reset gate)。这两个门控向量通过Sigmoid函数将输入向量和先前的隐藏状态向量映射到0到1之间的值,以控制它们对更新和重置操作的贡献。
更新门决定了先前的隐藏状态应该如何被保留或更新,而重置门决定了先前的隐藏状态如何与当前输入进行组合。
Sigmoid函数在GRU单元中通过限制门控向量的取值范围,使得GRU单元能够自适应地更新和遗忘信息,并有效地处理输入序列数据。
Hadamard乘积
也称为元素级乘积或逐元素乘积,是一种运算,用来对两个具有相同维度的向量、矩阵或张量进行逐元素的相乘。
对于两个维度相同的向量 A 和 B,Hadamard乘积的运算规则为:
C
=
A
⊙
B
C = A ⊙ B
C=A⊙B
其中 ⊙ 表示Hadamard乘积运算,C 是结果向量,C 的每个元素都等于 A 和 B 对应位置元素的乘积。
对于矩阵和张量,Hadamard乘积的运算规则与向量相同,只不过是在对应位置的元素进行相乘。
Hadamard乘积通常用于逐元素操作,如逐元素乘法、逐元素加法等。
它与矩阵乘法或点积运算不同,矩阵乘法是对应位置元素的乘积再求和,
而Hadamard乘积是对应位置元素直接相乘。
Hadamard乘积在深度学习中经常用于一些操作,如逐元素激活函数、逐元素损失函数、逐元素操作的正则化等。它可以帮助模型学习非线性关系,同时保持数据的维度不变。
小结
在分类问题中,精确度和召回率是互相影响的指标。高精确度可能意味着模型只预测那些非常确信的正例,导致召回率较低。相反,高召回率可能意味着模型会将更多样本预测为正例,导致精确度较低。因此,F1得分作为精确度和召回率的综合指标,可以平衡这两个指标的表现。在评估模型性能时,通常会综合考虑精确度、召回率和F1得分。