notes for datawhale summer camp chemistry task3

news2024/11/14 13:58:51

Transformer

transformer的诞生

循环神经网络:由于所有的前文信息都蕴含在一个隐向量里面,这会导致随着序列长度的增加,编码在隐藏状态中的序列早期的上下文信息被逐渐遗忘。

卷积神经网络:受限的上下文窗口在建模长文本方面天然地存在不足。如果需要关注长文本,就需要多层的卷积操作。

关于Transformer,不必赘述,参考:
[[…/…/大模型/ChatGPT原理与实践/ChatGPT基础科普#2. Transformer|ChatGPT基础科普 - Transformer]]
[[…/夏令营第二期/Task3#Transformer 介绍|夏令营第二期 Task3 Transformer 介绍]]

利用Transformer的Encoder作为编码器编码

Transformer是一个经典的编码器-解码器模型(encoder-decoder model)

我们可以把Transformer的Encoder单独拿出来并看作是一个编码器

在这里插入图片描述

进一步提分

接下来,我们介绍一些常用的调参或者优化模型的方式,以帮助大家进一步提高分数。相信大家在这个过程中,会进一步理解为什么我们常常把这个过程称之为“炼丹”了。

  1. 调整epoch

  2. 调整模型大小:也即中间向量的维度、模型的层数、注意力头的个数。一般而言,模型越大学习能力越强,但是同样的也有可能出现过拟合。

  3. 数据:对数据做清洗,调整数据分布,做数据增广。对于SMILES一个可行的增广思路是:将一个SMILES换一种写法。

  4. 采用学习率调度策略:在训练模型的过程中,我们发现往往越到后面,需要更小的学习率。例如下图:学习到后面,我们需要收敛的局部最小值点的两边都比较“窄”,如果现在学习率太大,那么在梯度下降的时候,就有可能翻过局部最小点了。因此需要调整学习率变小。在Pytorch中已经定义好了一些常用的学习率调度方法,需要的学习者可以自己从官网上查看如何使用。

在这里插入图片描述

  1. 集成学习:训练多个不同初始化或架构的模型,并使用集成方法(如投票或平均)来产生最终翻译。这可以减少单一模型的过拟合风险,提高翻译的稳定性。

课后思考

之前无法理解的学习率,这次又遇到了

学习率是什么

学习率(Learning Rate)是机器学习和深度学习中的一个超参数,它控制了模型在优化过程中更新权重的速度。在训练神经网络时,学习率是一个非常重要的参数,它影响着模型是否能快速且有效地收敛到最优解。
具体来说,学习率定义了在梯度下降算法中,模型参数更新的幅度。梯度下降是一种优化算法,用于寻找函数的局部最小值。在深度学习中,这个函数通常是损失函数,它衡量了模型预测值与真实值之间的差异。
以下是对学习率更详细的解释:

  1. 梯度:在数学中,梯度是一个向量,指向函数增长最快的方向。在损失函数中,梯度指向损失增加最快的方向。为了最小化损失函数,我们需要沿着梯度的反方向更新权重,即进行梯度下降。

  2. 更新权重:在每次迭代或训练步骤中,模型参数(如神经网络的权重和偏置)会根据梯度和学习率进行更新。更新公式通常如下:

    weight = weight - learning_rate * gradient
    

    其中 weight 是要更新的权重,gradient 是损失函数关于该权重的梯度,learning_rate 是学习率。

  3. 学习率的作用

    • 如果学习率太小,模型训练会非常缓慢,需要很多时间才能收敛。
    • 如果学习率太大,模型可能会在损失函数的表面震荡,甚至发散,无法找到最小值。
  4. 选择合适的学习率:选择合适的学习率是艺术和科学的一部分。通常,需要通过实验来找到合适的学习率,或者使用一些策略(如学习率衰减、学习率预热、使用学习率查找器等)来动态调整学习率。
    学习率是深度学习实践中需要仔细调整的关键参数之一,它对模型的训练效率和最终性能有着直接的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

木卫四发布《2024半年度汽车漏洞及威胁情报-简报》

随着智能汽车技术的飞速发展,其安全问题也日益成为行业关注的焦点。木卫四威胁情报中心对2024年上半年国内外智能汽车领域的漏洞情报及安全事件进行了全面研究和分析,发布了《2024半年度汽车漏洞及威胁情报-简报》。本报告中智能汽车威胁情报的来源多样&…

宏集方案 | 传统建筑智能化改造,迈向物联新时代

前言 智能建筑涉及多个系统的集成,如照明、空调、安防等,这些系统的兼容性和协调运作是一大挑战。然而,传统的工业建筑和商业楼宇受早期设计的局限,多个控制系统间互不兼容,并且难以重新部署通信线缆。 针对传统建筑…

Java:查看线程信息

示例用代码 public class Main {static class MyThread extends Thread {Overridepublic void run() {while (true) {System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}}public st…

【Canvas与艺术】九角大楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>九角大楼</title><style type"text/css">.cen…

“光影魔术手”:一款让照片编辑更高效的软件工具

&#x1f680;&#x1f680;&#x1f680; 摄影爱好者和技术控们&#xff0c;想要照片编辑技能更上一层楼吗&#xff1f;“光影魔术手”带你探索照片美化的高级技巧&#xff0c;这款软件不仅是工具&#xff0c;更是你的技术利器&#xff01; &#x1f308;【专业调色功能解析】…

AS400==使用COBOL写个HELLWORLD

登录后输入命令WRKOBJPDM 可以看到在我的lib下拥有的FILES列表 随便选一个&#xff0c;在OPT输入12回车打开这个FILE&#xff0c;最下面一排提示了&#xff0c;F6创建一个新的MEMBER输入这个FILE FILE相当于文件夹&#xff0c;MEMBER相当于一个代码文件test.py。 移动光标输入…

Leetcode—400. 第 N 位数字【中等】

2024每日刷题&#xff08;151&#xff09; Leetcode—400. 第 N 位数字 算法思想 参考自k神 实现代码 class Solution { public:int findNthDigit(int n) {int digitSize 1;int startNum 1;long long count 9;while(digitSize * count < n) {n - count * digitSize;di…

用Python打造精彩动画与视频,5.1 Matplotlib基础及其动画功能

5.1 Matplotlib基础及其动画功能 在本小节中&#xff0c;我们将介绍Matplotlib的基础知识及其动画功能。Matplotlib是Python中最流行的绘图库之一&#xff0c;它可以生成静态、动态和交互式的图表。通过Matplotlib的动画模块&#xff0c;我们可以创建各种动画效果&#xff0c;…

达梦数据库系列—44.SQL调优

目录 SQL优化思路 1、定位慢sql 2、SQL分析方法 2.1 执行计划 2.2 ET 工具 2.3 dbms_sqltune 工具 3、SQL语句优化 3.1 索引 3.2 SQL语句改写 3.3 表设计优化 3.4 表的连接方式 3.5 HINT 4、统计信息 SQL优化思路 1、定位慢sql 待优化的SQL大致可分为两类&#…

PCIe学习笔记(15)

设备就绪状态 (Device Readiness Status&#xff0c;DRS)消息 &#xff08;Device Readiness Status (DRS) 是PCIe规范中引入的一种机制&#xff0c;旨在改进设备初始化和就绪状态的检测与报告。 在以往的PCIe版本中&#xff0c;系统通常依赖于固定的超时机制来判断设备是否已…

天机学堂 第四天 高并发优化总结

前端每隔15秒就发起一次请求&#xff0c;将播放记录写入数据库。 但问题是&#xff0c;提交播放记录的业务太复杂了&#xff0c;其中涉及到大量的数据库操作&#xff1a; 如何进行优化 单机并发能力 变同步为异步 合并写请求 提高单机并发&#xff1a;优化SQL&#xff0c;尽…

vscode中WSL插件的安装配置

1.安装WSL插件 2.点击左下角的蓝色区域&#xff0c;Connect to WSL连接下载Linux系统&#xff0c;我这里下载Ubuntu ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7ec21d81b4ec49f3856be2d8013bc12f.png 3.输入用户名和密码 4.成功连接 5.配置过程中出现的问题 …

LinuxUNIX系统编程手册——(十四)系统编程概念

14.1 设备专用文件&#xff08;设备文件&#xff09; 设备专用文件与系统的某个设备相对应。在内核中&#xff0c;每种设备类型都有与之相对应的设备驱动程序&#xff0c;用来处理设备的所有 I/O 请求。设备驱动程序属内核代码单元&#xff0c;可执行一系列操作&#xff0c;&a…

服务器SSL证书年费一般多少钱?

SSL证书作为网络安全的重要组成部分&#xff0c;不仅能够保护数据传输的安全性&#xff0c;还能增强用户对网站的信任度。然而&#xff0c;面对市场上众多的SSL证书选项&#xff0c;许多人可能会感到困惑&#xff1a;究竟应该选择哪种类型的SSL证书&#xff1f;它们的价格又是怎…

【从零开始一步步学习VSOA开发】搭建VSOA运行环境

搭建VSOA运行环境 为方便 VSOA 的运行和调测&#xff0c;这里选择RealEvo-Simulator 下的 AMD64 平台作为 VSOA 的硬件运行环境&#xff0c;操作系统则选择标准版的 SylixOS 而不是容器版的SylixOS。 下载虚拟机资源 RealEvo-Simulator 并不自带 AMD64 平台虚拟机&#xff0…

开发板与ubuntu不能ping通怎么办?

TOC 第一步&#xff1a;VMware 设置 打开 VMware Workstation Pro 里的 虚拟机 -> 设置 设置网络适配器为桥接模式。这里不要勾选“复制物理网络连接状态”。 因为电脑是 WiFi 上网&#xff0c;所以需要添加一个网络适配器并设置成 NAT 模式&#xff0c;供虚拟机上网。具…

19066 第K小子串

这个问题可以通过使用集合&#xff08;set&#xff09;和优先队列&#xff08;priority_queue&#xff09;来解决。我们首先遍历字符串的所有子串&#xff0c;然后将这些子串放入一个集合中&#xff0c;这样可以去除重复的子串。然后我们将集合中的子串放入一个优先队列中&…

jvm方法调用指令invokestatic,invokespecial,invokeinterface,invokevirutal分析

写在前面 本文来看下jvm方法调用相关的4个指令invokestatic,invokespecial,invokeinterface,invokevirutal。 1&#xff1a;如何来记 1.1&#xff1a;静态绑定和动态绑定 如果是在编译期就能确定要调用的方法&#xff0c;就叫做静态绑定&#xff0c;比如构造函数方法&#…

Redis RDB AOF持久化 主从集群同步原理

RDB RDB Redis数据备份文件 也被叫做Redis数据快照 简单来说就是 把内存中的所有数据记录到磁盘中 当Redis实例故障实例重启后从磁盘读取快照文件恢复数据 快照文件称为RDB文件 默认时保存在当前运行目录执行时机 执行save命令 127.0.0.1:6379> save OK 127.0.0.1:6379&g…

(002)两数相加

思路分析&#xff1a; 类似于一个大数加法&#xff0c;注意链表的边界和进位&#xff0c;同时还有注意存在两个链表长度不等&#xff0c;需要处理多出来的元素 代码实现&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNod…