Optimization 基于贝叶斯优化的深度学习结构超参数优化
我为原始信号分类任务构建了一个CLDNN(卷积、LSTM、深度神经网络)结构 每个训练周期大约持续90秒,超参数似乎很难优化 我一直在研究各种优化超参数的方法(例如随机搜索或网格搜索),并了解了贝叶斯优化 虽然我还没有完全理解优化算法,但我觉得它对我有很大帮助 我想问几个关于优化任务的问题Optimization 基于贝叶斯优化的深度学习结构超参数优化,optimization,machine-learning,tensorflow,deep-learning,bayesian,Optimization,Machine Learning,Tensorflow,Deep Learning,Bayesian,我为原始信号分类任务构建了一个CLDNN(卷积、LSTM、深度神经网络)结构 每个训练周期大约持续90秒,超参数似乎很难优化 我一直在研究各种优化超参数的方法(例如随机搜索或网格搜索),并了解了贝叶斯优化 虽然我还没有完全理解优化算法,但我觉得它对我有很大帮助 我想问几个关于优化任务的问题 如何针对深度网络设置贝叶斯优化?(我们试图优化的成本函数是什么?) 我想优化的功能是什么?它是N个时代之后验证集的成本吗 留兰香是这项任务的良好起点吗?对这项任务还有其他建议吗 如果您能深入了解这个问题,我将
[-10,10]
间隔上的f(x)=x*sin(x)
(黑色曲线)。红点代表每个试验,红曲线是GP平均值,蓝曲线是平均值加上或减去一个标准偏差。
如您所见,GP模型并非处处都与真正的函数匹配,但优化器相当快地识别出-8
周围的“热点”区域,并开始利用它
我如何建立与深度相关的贝叶斯优化
网络
在这种情况下,空间由(可能转换的)超参数定义,通常是多维单位超立方体
例如,假设您有三个超参数:[0.001,0.01]中的学习率α,[0.1,1]
中的正则化器λ(都是连续的)和[50..100]
中的隐藏层大小N(整数)。优化空间是一个三维立方体[0,1]*[0,1]*[0,1]
。此立方体中的每个点(p0,p1,p2)
通过以下转换对应于一个三位一体(α,λ,N)
:
p0 -> α = 10**(p0-3)
p1 -> λ = 10**(p1-1)
p2 -> N = int(p2*50 + 50)
我想优化的功能是什么?这是成本吗
N个时代之后的验证集
正确,目标函数是神经网络验证精度。显然,每次评估都是昂贵的,因为它至少需要几个时期的培训
还要注意的是,目标函数是随机的,即同一点上的两个评估可能略有不同,但它不是贝叶斯优化的障碍,尽管它明显增加了不确定性
留兰香是这项任务的良好起点吗?任何其他
对这项任务的建议
是一个很好的图书馆,你绝对可以使用它。我也可以推荐
在我自己的研究中,我最终编写了自己的微型库,基本上有两个原因:我想编写精确的贝叶斯方法来使用(特别是,我发现UCB和PI的收敛速度比任何其他方法都快,在我的例子中);此外,还有一种技术可以节省多达50%的培训时间,称为(当优化器确信模型学习速度不如其他领域快时,可以跳过整个学习周期)。我不知道有哪个库实现了这一点,所以我自己编写了代码,最后它得到了回报。如果您感兴趣,代码是。如果您愿意使用任何超参数优化工具,您是否签出了TPOT