zoukankan      html  css  js  c++  java
  • 《python深度学习》笔记---7.3.2、超参数优化

    《python深度学习》笔记---7.3.2、超参数优化

    一、总结

    一句话总结:

    【架构层面的参数叫作超参数】:这些在架构层面的参数叫 作超参数(hyperparameter),以便将其与模型参数区分开来,后者通过反向传播进行训练。

    1、神经网络中的 超参数是什么,有哪些?

    应该堆叠多少层?每层应该 包含多少个单元或过滤器?激活应该使用 relu 还是其他函数?在某一层之后是否应该使用 BatchNormalization ?应该使用多大的dropout 比率?还有很多。
    【架构层面的参数叫作超参数】:这些在架构层面的参数叫 作超参数(hyperparameter),以便将其与模型参数区分开来,后者通过反向传播进行训练。

    2、整天调节超参数不应该是人类的工作,最好留给机器去做?

    【超参数自动优化领域】:因此,你需要制定一个原则,系统性地自动探索可能的决策空间。你需要搜索架构空间, 并根据经验找到性能最佳的架构。这正是超参数自动优化领域的内容。这个领域是一个完整的 研究领域,而且很重要。

    3、训练模型权重相对简单:在小批量数据上计算损失函数,然后用反向传播算法让权重向正 确的方向移动。与此相反,更新超参数则非常具有挑战性。我们来考虑以下两点?

    【计算反馈信号(这组超参数在这个任务上是否得到了一个高性能的模型)的计算代价可能非常高】,它需要在数据集上创建一个新模型并从头开始训练。
    【超参数必须依赖不使用梯度的优化方法】:超参数空间通常由许多离散的决定组成,因而既不是连续的,也不是可微的。因此,你 通常不能在超参数空间中做梯度下降。相反,你必须依赖不使用梯度的优化方法,而这 些方法的效率比梯度下降要低很多

    4、Hyperopt?

    有一种工具确实比随机搜索更好,它就是 Hyperopt。它是一个用于超参数优化的Python 库,其内部使用Parzen 估计器的树来预测哪组超 参数可能会得到好的结果。

    5、在进行大规模超参数自动优化时,有一个重要的问题需要牢记,那就是验证集过拟合?

    【是在验证数据上训练超参数】:因为你是使用验证数据计算出一个信号,然后根据这个信号更新超参数,所以你实际上 是在验证数据上训练超参数,很快会对验证数据过拟合。请始终记住这一点。

    6、总之,超参数优化是一项强大的技术,想要在任何任务上获得最先进的模型或者赢得机器 学习竞赛,这项技术都必不可少?

    【就像特征的由手动设计到深度学习自动完成特征工程,超参数的设置同样应该如此】

    思考一下:曾经人们手动设计特征,然后输入到浅层机器学 习模型中,这肯定不是最优的。现在,深度学习能够自动完成分层特征工程的任务,这些特征 都是利用反馈信号学到的,而不是手动调节的,事情本来就应该如此。同样,你也不应该手动 设计模型架构,而是应该按照某种原则对其进行最优化。

    二、内容在总结中

    博客对应课程的视频位置:

     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    Node Express4.x 片段视图 partials
    SVG知识难点
    MongoDB的安装和配置成服务的三种方法和一些难点
    git的使用
    单击获取索引的两种方式
    IOTA初识
    开始写博客啦
    虚拟化技术
    可信计算概论
    负载均衡
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13821941.html
Copyright © 2011-2022 走看看