TensorFlow2.0入门到进阶2.15 —— 超参数搜索

1、超参数

超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,在机器学习过程中需要对超参数进行优化,给学习器选择一组最优超参数,以提高学习的性能和效果。比如,树的数量或树的深度,学习率(多种模式)以及k均值聚类中的簇数等都是超参数。

与超参数区别的概念是参数,参数是模型训练过程中学习到的一部分,比如回归系数,神经网络权重等。简单的描述参数是模型训练获得的,超参数是人工配置参数(本质上是参数的参数,每次改变超参数,模型都要重新训练)。

包括:

  • 网络结构参数:几层、每层宽度、激活函数
  • 训练参数:batch_size:每一次训练选用数据比例、学习率、学习率衰减算法。

2、为什么要超参数搜索

与机器学习模型不同,深度学习模型里面充满了各种超参数。而且,并非所有参数都能对模型的学习过程产生同样的贡献。考虑到这种额外的复杂性,在一个多维空间中找到合适的参数变量成为了挑战。幸运的是,我们有不同的策略和工具可以解决搜索问题。

每一位研究人员都希望在现有的资源条件下,找到最佳的模型。通常情况下,他们会在开发的最后阶段尝试一种搜索策略,这可能会有助于改进他们辛辛苦训练出来的模型。

此外,在半自动/全自动深度学习过程中,超参数搜索也是的一个非常重要的阶段。

那反观我们在初学阶段,一般都是随便试几个参数,然后挑一挑看看哪个好,这有一定的不确定性,如果手动调,太耗费时间。如果是有经验的大佬,这就会很轻松了,凭借经验就知道参数应该如何设置。这里对于小白,还是老老实实用超参数搜索吧。

3、搜索策略

在这里插入图片描述

3.1 网格搜索

网格搜索,是一种简单尝试所有可能配置的方法,通俗来说就是提前设置若干组参数,然后for函数一个一个试。

它的工作流程是这样的:

定义一个N维的网格,其中每一个映射都代表一个超参数,例如,n=(learning_rate, dropout_rate, batch_size)

对于每个维度,定义可能的取值范围: 例如,batch_size = [4, 8, 16, 32, 64, 128, 256]

搜索所有可能的配置,等待结果以建立最佳配置: 例如,C1= (0.1, 0.3, 4) ->acc = 92%,C2= (0.1, 0.35, 4) ->acc = 92.3%···
在这里插入图片描述
这种策略没有考虑到计算背景,但这意味着可用的计算资源越多,那么同时可以尝试的猜测就会越多。它的痛点被称为维度灾难,意思是我们增加的维度越多,搜索就会变得越困难,最终导致策略失败。

当维度小于或等于4时,常用这种方法。但是在实践中,即使保证最后找到最佳配置,它仍然不可取,而是应该使用随机搜索。

3.2 随机搜索

几年前,Bergstra和Bengio发表了一篇论文,论证了网格搜索的效率低下。

网格搜索和随机搜索之间唯一的区别在于策略周期的第一步:随机搜索在配置空间上随机选择点,随机产生参数,可搜索空间更大。
在这里插入图片描述

3.3 遗传算法搜索

在这里插入图片描述

3.4 启发式搜索

  • 研究热点 AutoML
  • 使用循环神经网路生成参数
  • 使用强化学习来进行反馈,使用模型来训练生成参数
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力改掉拖延症的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值