当前位置: 首页 > news >正文

自动机器学习(AutoML)

utoML是PAI的提供的自动寻找超参组合的机器学习增强型服务。您在训练模型时,如果超参组合复杂度过高,需大量训练资源和手工调试工作,可以使用AutoML来节省模型调参时间,提升模型调优效率和模型质量。

基础概念

  • 超参数:是训练机器学习模型时用到的外部配置参数,在模型训练开始前设置。超参数不同于模型内部参数,模型内部参数在学习过程中被不断地更新和优化,超参数在学习过程开始前就设置,在模型训练过程中保持不变。

  • 超参调优:Hyper Parameter Optimization简称HPO,是指手动或者自动进行超参数调优,而本文中特指是AutoML提供的对模型参数、训练参数等进行自动搜索调优的服务。它能帮您获取较优参数,提升模型效果,节省算法工程师调参的时间,让算法开发人员聚焦在建模和业务上。

  • 搜索空间:定义了超参组合的范围,AutoML会在此范围内,搜索最佳的超参组合。

  • 实验:在PAI的AutoML服务里,一个实验的目的是在搜索空间里,寻找模型的最佳超参组合。

  • Trial:在PAI的AutoML服务里,每一个trial会用一组特定的超参数值组合生成和评估模型。一个实验通过调度运行多个trial,并比较这些trial的结果,达到找到最佳超参组合的目标。更多说明请参见AutoML工作原理。

  • 任务类型Trial使用哪种资源和环境进行训练,当前可以支持使用DLC的计算资源与MaxCompute计算资源。

背景

在机器学习模型中,超参数(Hyper Parameter,简称超参)是用来控制模型训练的一组参数,是训练机器学习模型时用到的外部配置参数。超参数在模型训练开始之前应设置好。超参数不同于模型内部参数,模型内部参数在学习过程中被不断地更新和优化。而超参数在学习过程开始前设置,在模型训练过程中保持不变。

可以把一个模型的n个超参理解成一个n维向量。在模型训练的实践中,我们需要从这个模型的所有超参向量值域里,找到一个特定的向量值,使得该模型在给定的数据集上获得最佳效果(比如最小化损失函数loss function的结果)。寻找这个最优超参向量值的过程我们称之为超参调优(Hyper Parameter Optimization,简称HPO)。

举个简单的例子,模型有2个超参A和B,A可能的取值有(a,b,c),B可能的取值有(d,e),那么这个超参调优过程就是从A、B值的6种排列组合里,选出一种,使得模型训练有最佳效果。为了选出最优组合,最简单的方式是在同一个训练数据集上,把A,B的6种值的组合分别用于模型训练,然后比较模型在同一组测试数据集上的效果,选出效果最好的模型所用的超参组合。

AutoML HPO介绍

受模型超参数量、每个超参的数据类型和值域范围影响,超参调优问题很容易达到很高的复杂度。比如模型有多个超参,有些超参是整型,有些是浮点型,此时超参调优无法通过手工来完成,通过暴力搜索需要消耗非常大的计算资源,这需要引入自动化的系统来完成这项工作。AutoML服务中的HPO功能,正是帮助用户实现自动超参调优的目标。

AutoML HPO是AutoML提供的对模型参数、训练超参数(opt、lr)等进行自动搜索调优的服务,为您提供了易用、有效、准确的自动超参调优服务:

  • 简化调优工作:通过自动化工具大幅简化算法工程师调参工作,节省算法工程师的调参时间。

  • 训练更优模型:集成了PAI的多种算法,能够有效查找到最优组合以及对应的模型,帮助您训练出精度更高、效率更高的模型。

  • 节省计算资源:超参调优工具会通过持续的评估,决定是否有必要使用下一组超参组合。这个机制下,可能不需要评估所有组合就已经得到了最优解,能帮助您节省计算资源的使用量。

  • 方便应用算力:与DLC、MaxCompute计算资源无缝衔接,方便您灵活配置并使用澎湃算力。

AutoML HPO应用场景

机器学习训练过程中,需要进行模型参数调优的,都可以使用AutoML HPO,来获得更好模型。常见的应用场景有下面几种。

  • 机器学习二分类任务,例如判断用户是否是付费用户。

  • 机器学习回归类任务,例如判断用户7日预计付费金额。

  • 机器学习聚类任务,例如确定某化妆品牌在某城市划分几个买卖点。

  • 推荐场景:排序召回模型调优,提升AUC等指标。

  • 深度学习:提升图像多分类/视频多分类等任务的精度。

AutoML工作原理

AutoML实现自动化调试参数的工作原理,是通过实验、Trial、训练任务进行循环迭代,来找到最优的超参组合。

AutoML的工作机制如下图。

 

您设定好超参数的值域、搜索算法、停止条件配置后,AutoML将其作为一次实验(experiment)传入到后端进行处理。

  1. 一次实验会根据配置的算法来生成超参组合,而每个超参组合会对应一个trial。

    说明

    您可以设置多个trials并发,以提升速度,但是单位时间耗费的资源也会增多。

  2. 每个trial除了对应一组超参组合外,并会对应一个或多个计算任务,这个任务可以是DLC任务,使用通用计算资源和灵骏智算资源;也可以是MaxCompute任务,使用MaxCompute计算资源。两种资源使用分别遵循对应服务逻辑(计费、配置、使用)。

  3. 启动试验后,AutoML会循环查看任务指标。

  4. 当实验触发了停止条件,如最大搜索次数、算法停止条件、所有组合计算完毕等,实验停止。

  5. 返回结果。这个结果可以是超参组合或者每个trial的最佳模型(您需要设置模型存储路径),同时您可以在日志数据看到。

根据上述AutoML工作原理,您启动实验前需要配置几类参数,包括实验基本配置、Trial配置、DLC/MaxCompute任务配置、超参搜索配置。

相关文章:

自动机器学习(AutoML)

utoML是PAI的提供的自动寻找超参组合的机器学习增强型服务。您在训练模型时,如果超参组合复杂度过高,需大量训练资源和手工调试工作,可以使用AutoML来节省模型调参时间,提升模型调优效率和模型质量。 基础概念 超参数:…...

Vivado时序报告六:Report Timing详解

目录 一、前言 二、配置选项概览图 三、配置选项详解 3.1 Targets 3.2 Options 3.1.1 Report 3.1.2 Path limits 3.1.3 Path display 3.2 Advanced 3.2.1 Report 3.2.2 File Output 3.2.3 miscellaneous 3.3 Timer Settings 3.4 共有部分 四、 设计示例 4.1 设…...

java基础:数据类型的总结

一、Java 常用数据类型 1.数据类型分为:(1)基本数据类型 (2)引用数据类型 2.基本数据类型分类:数值型,非数值型。 3.数值型:(1) 整数类型(byte,short,int,long) (2) …...

【目标检测论文解读复现NO.39】基于改进 YOLOv8 的轻量级复杂环境苹果叶片病害检测方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…...

python 基础笔记 2(函数, 类)

起因, 目的: 把很久以前,自己写的笔记发布出来。 现在粉丝多了,也不觉得丢人了。 为什么这些序号不连贯,因为有些很熟悉的东西,我都删了。 内建函数, 函数 zip()函数,利用 * 号操作符,可以将元组解压为列表。 我怀疑是zip的解包只能用一次。在内存中解开一次之后就销…...

LeetCode 2090.半径为K的子数组平均值

题目: 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k 。 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有元素的平均值,即下标在 i - k 和 i k 范…...

Qt C++ 编程中定义了一个槽函数(slot)deleteLater的作用

这行代码是在 Qt C编程中定义了一个槽函数(slot)deleteLater。 在 Qt 框架中,Q_SLOTS关键字用于声明类中的槽函数。deleteLater是一个非常有用的函数,它会安排接收对象在事件循环返回后被删除。 通常在以下情况下会使用deleteLa…...

【Hive】8-Hive性能优化及Hive3新特性

Hive性能优化及Hive3新特性 Hive表设计优化 Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时,默认将其转换为分布式计算 MapReduce程序对HDFS中的数据进行…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-18目录1. On the Reliability of Large Language Models to Misinformed and Demographically-Informed Prompts2. SafeLLM: Dom…...

CTF(四)

导言: 本文主要讲述在CTF竞赛中,web类题目file_include。 靶场链接:攻防世界 (xctf.org.cn) 一,观察页面。 可以看到一段php代码。从则段代码中我们可以知道: 1,使用include引入check.php文件&#xff…...

智慧商城项目1-项目初始化创建

这是一个面向移动端的项目,先看看做了这个项目能收获什么,注意这是vue2的项目, 是个经典项目,能为未来学习vue3项目打下基础。 首先来说一下为啥是vue2,因为vue3还没有大范围普及,目前大部分企业还在用vue2…...

Java集合(四)--treeset/treemap/章节练习题目/去重原理的解读和应用

文章目录 1.treeset结构2.treemap结构3.集合去重辨析总结4.对于arraylist的练习题目5.对于HashMap的练习题目6.第三点的去重运用7.HashSe练习题目 1.treeset结构 下面的这个就是对于这个treeset结构进行测试的一个程序,在这个里面,add表示的就是对于这个…...

如何开启华为交换机 http

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...

SpringBoot中的RedisTemplate对象中的setIfAbsent()方法有什么作用?

文章目录 原子性操作用于分布式锁可选的过期时间 setIfAbsent() 方法是 Redis 中用于设置一个键值对的命令,只有在该键不存在时才会设置成功。它通常用于实现分布式锁的逻辑 主要功能: 原子性操作 setIfAbsent() 是一个原子性操作,意味着在执行该操作的…...

《合肥工业大学学报(自然科学版)》

《合肥工业大学学报(自然科学版)》以基础理论、应用科学和工程技术为主的综合性学术刊物,主要刊登机械工程、仪器科学与光电工程、材料科学与工程、电气与自动化工程、计算机与信息工程、电子科学与应用物理、土木与水利工程、资源与环境工程、汽车与交通工程、化学…...

Android11 USB Camera会出现预览绿屏问题

目录 一、问题描述 二、问题原因 三、解决方法 一、问题描述 DDR容量是4G及以上的机器,USB Camera会出现预览绿屏问题。 串口中会刷如下log: 二、问题原因 RGA2使用超过4G内存会异常,导致USB Camera调用rga相关操作报错,从而预览绿屏 三…...

Mongodb 获取集合(collection)的统计信息

在MongoDB中,获取指定集合(collection)的统计信息可以通过执行collStats命令来实现。这个命令提供了关于集合的详细信息,包括: 集合的大小索引的大小和数量文档的数量存储空间的使用情况各种统计数据,如平…...

Java中的集合(1)——List、Map和Set

Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包中提供了以下三种类型的集合: List:一种有序列表的集合,例如,按索引排列的Student的List&…...

MySQL8.0主从同步报ERROR 13121错误解决方法

由于平台虚拟机宿主机迁移,导致一套MySQL主从库从节点故障,从节点服务终止,在服务启动后,恢复从节点同步服务,发现了如下报错: mysql> show slave status\G; *************************** 1. row *****…...

【论文阅读】03-Diffusion Models and Representation Learning: A Survey

Abstract(摘要) 扩散模型是各种视觉任务中流行的生成建模方法,引起了人们的广泛关注它们可以被认为是 自监督学习方法【通过数据本身的结构和特征来训练模型,而不是依赖外部标签】 的一个独特实例,因为它们独立于标签注…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...