【Datawhale AI 夏令营】Task 3 —— 神奇的调参与越调越差的秘诀

Task 3:Transormer建模SMILES进行反应产率预测笔记

一、对Transformer的简单总结

1. Transformer 的优势

在循环神经网络中,由于受限的上下文窗口大小,导致其在建模长文本方面存在劣势,必须经过多层卷积才能完成关注长文本的工作。而Transformer可以完全通过注意力机制完成对序列的全局依赖建模,增加了计算效率。

2. Transformer 的组成

Transformer主要由嵌入层、自注意力层、前馈层、残差连接与层归一化组成,是一个景点的编码器、解码器模型。

二、提升分数的思路

飞书文档主要给予的提升分数思路包括调整epoch、调整模型大小、处理数据与采用学习率调度策略。笔者由于初探AI,对上述思路进行了一些简单探索,并总结如下。

1. 调整epoch

调整epoch,确实能让模型训练的更好,但是调整epoch需要搭配其他参数一并调整,否则train loss并不会显著降低。笔者第一次尝试训练了60代,但是注意到train loss一直处于上下浮动的状态,并没有进一步降低train loss的趋向,因此学习效果不好。

2. 调整模型大小

例如调整中间向量的维度、模型的层数以及注意力头的个数。需要注意的是,注意力头必须能被输入向量的维数整除,否则会报错。提升中间向量的维度会极大的提升训练时间,需要耐心等待,笔者尝试将原来的D_MODEL和FNN_DIM的值改大,在train loss降低的趋向上确实有所改善,但是依然下降不到0.05以下...

3. 调整学习率

def adjust_learning_rate(optimizer, epoch, start_lr):
    """Sets the learning rate to the initial LR decayed by 10 every 30 epochs"""
    lr = start_lr * (0.1 ** (epoch // 0.5))
    for param_group in optimizer.param_groups:
        param_group['lr'] = lr

与上述Python代码有关,通过调整这个函数能够调整学习过程中学习率降低的策略,从而获得更好的训练效果。

三、总结

虽然几个方法都尝试过了,但是交上去的分数是越交越差=_=||,不愧是炼丹啊。不过在学习AI的过程中体验到了调参的快乐,确实是有点上头的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值