kaggle蛋白质比赛分析

kaggle 蛋白质比赛分析

一、数据准备

蛋白质比赛采用了kaggle官网提供的数据集,以及额外的人类蛋白质图谱网站的数据集。

二、数据增强

1. 数据增强目的:

  • 增加训练的数据量,提高模型的泛化能力。即使拥有大量数据,也需要采用数据增强的方法来提高模型泛化能力。
  • 增加噪声数据,提升模型的鲁棒性。

2. 数据增强方法

  • 对图片进行比例缩放
  • 对图片进行随机位置的截取
  • 对图片进行随机水平和竖直翻转
  • 对图片进行随机角度的旋转
  • 对图片进行亮度、对比度和颜色随机变化

3.自动数据增强方法
自动数据增强方法:Data AutoAugment。
来自谷歌研究人员在arXiv 上发表的论文,提出一种自动搜索合适数据增强策略的方法 :《AutoAugment: Learning Augmentation Policies from Data》。

该论文主要的观点是创建一个数据增强策略的搜索空间,直接在感兴趣的数据集上评估特定策略的质量。在AutoAugment的实现过程中,设计了一个搜索空间,该搜索空间中的一个策略包含了许多子策略,我们为每个小批量(mini-batch)中的每张图像随机选择一个子策略。每个子策略由两个操作组成,每个操作都是类似于平移、旋转或剪切的图像处理函数,以及应用这些函数的概率和幅度(magnitude)。

三、损失函数

  • 比赛损失函数采用gamma值为2的Focal Loss。

1.损失函数来源

该损失函数来自于论文:《Focal Loss for Dense Object Detection》。

该论文的目的是为了探讨为什么one-stage detector相比two-stage detector精度要差。其中one-stage detector和two-stage detector属于目前目标检测的框架。

two-stage detector:基于候选区域的two-stage的检测框架(如:fast r-cnn系列)。
one-stage detector:基于回归的one-stage的检测框架(如:yolo,ssd)。

但two-stage的效果好,one-stage的快但是效果差一些。本论文作者希望弄明白为什么one-stage的检测器准确率不高的问题,作者给出的解释是由于前正负样本不均衡导致

在目标检测算法中,对于输入的一张图像,可能会生成成千上万的预选框(region proposal),但是其中只有很少一部分是包含真实目标的,这就带来了类别不均衡问题。因此针对类别不均衡问题,作者提出一种新的损失函数:Focal Loss

2.Focal Loss原理

(1)算法原理

首先回顾二分类交叉熵损失:

其中 y 是真实样本的标签(1正0负), y’ 是经过 sigmoid 激活函数的预测输出(数值在0-1之间)。可见普通的交叉熵对于正样本而言(y=1),输出概率(y’)越大损失越小。对于负样本(y=0)而言,输出概率(y’)越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。

作者由此提出Focal Loss函数:

  • 首先在原有的基础上加了一个因子,其中Gamma>0使得减少易分类样本的损失(y’r越小,损失越小),使得模型更关注于困难的、错分的样本。

  • 在以上基础上,再引入一个平衡因子 Alpha,用来平衡正负样本本身的数量比例不均(即类别不均衡):

这里的两个参数α和γ协调来控制,当Gamma为0时即为交叉熵损失函数,本文作者采用Alpha=0.25,gamma=2效果最好

(2)算法有效性

这个损失函数是在标准交叉熵损失基础上修改得到的。 这个函数可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。 为了证明focal loss的有效性,作者设计了一个模型:RetinaNet,并且在训练时采用focal loss训练。实验证明RetinaNet不仅可以达到one-stage detector的速度,也能有two-stage detector的准确率。

四、模型参数

1.优化器

2.学习率

  • 学习率为0.0005,没有学习率调整(learning rate scheduling)。

3.batch-size

  • 对于1024x1024图像的大型图像,采用每32个图片来更新一次权重参数,即batch-size为32。

五、评价指标

  • 比赛评价指标采用macro F1 score。

(1)F1 Score

  • F1分数(F1 Score),是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种加权平均,它的最大值是1,最小值是0。

  • 在说明F1 Score之前,引入精确率召回率的概念:

TP、TN、FP、FN概念

TP(Ture Positive
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kaggle是一个著名的数据科学竞赛平台,上面有很多中等难度的数据分析比赛。这些比赛通常提供一个数据集,要求参赛者通过分析和建模来解决一个特定的问题。以下是一般的数据分析比赛流程: 1. 数据理解和探索:首先,你需要仔细研究比赛提供的数据集,了解数据的结构、特征以及目标变量。你可以使用各种数据可视化和统计方法来探索数据,发现其中的规律和趋势。 2. 数据预处理:在开始建模之前,你需要对数据进行预处理。这包括处理缺失值、异常值和重复值,进行特征工程(如特征选择、特征变换等),以及对数据进行归一化或标准化等操作。 3. 模型选择和训练:根据比赛的要求和数据的特点,选择适合的机器学习或深度学习模型。常见的模型包括线性回归、决策树、随机森林、支持向量机、神经网络等。使用训练集对选定的模型进行训练,并进行参数调优。 4. 模型评估和优化:使用验证集对训练好的模型进行评估,常见的评估指标包括准确率、精确率、召回率、F1值等。根据评估结果,对模型进行优化,如调整模型参数、尝试不同的特征工程方法等。 5. 模型融合和提交:在比赛中,通常可以使用模型融合的方法来提高预测性能。常见的模型融合方法包括投票法、堆叠法、加权平均法等。最后,将优化后的模型用于测试集的预测,并将结果提交到比赛平台进行评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值