• 林彦
    2018-06-19
    超参数无法靠模型的数据训练直接获取。经常根据经验或系统的推荐在模型训练前手动设置,比如文中提到多项式的次数N,各种KXX模型中的K,学习速率,训练次数等。超参数会决定模型的属性(如复杂度)和训练的过程。在参数取值的数量无限时,超参数还无法用最优化算法找到最优解。可以用随机搜索,贝叶斯优化等方法尝试寻找更优的超参数,计算开销一般都比较大。
    参数是模型中可以通过数据训练得到的参数,不需要人为事先指定。

    作者回复: 总而言之,超参数得人为设置,再用验证集去测。

    
     3
  • zc
    2018-06-19
    老师,什么时候上python实例代码?

    作者回复: 介绍具体模型是就有代码了,主要是对第三方库的使用。

    
     3
  • dreamintime
    2018-11-09
    老师,为啥k折交叉验证,k越大,验证集方差就会越大?

    作者回复: 因为k越大,使用的训练数据越多,出现过拟合的可能性也越高。这样的模型可能学到训练数据中的干扰和噪声特性,在单独划分出的验证集上未必有好的表现。当然这也不是一定之规,每个具体问题都会有一个方差最优的k值,方差也就会先下降再上升。

    
     1
  • Haley_Hu
    2018-09-24
    参数是模型训练出来得到的结果,超参数需要手动去设置。比如神经网络里面的层数等

    作者回复: 没错👍

    
     1
  • 韶华
    2018-06-19
    有没有根据数据量大小设置训练集,验证集和测试集的比例建议?另外没有验证集的话,会有哪些潜在问题?

    作者回复: 一般的比例是2:1:1或者1:1:1。
    没有验证集就不能调超参数,不能做模型选择。只是在训练集上最优化出来的模型可能有过拟合的风险。

    
     1
  • Geek_59
    2020-02-01
    极客时间
    21天打卡行动 45/21
    <<机器学习40讲/07>>模型的验证方法
    回答老师问题:
    参数和超参数之间的关系?
    在机器学习的
        上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
        在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。 相反,其他参数的值通过训练得出。
        超参数:
        • 定义关于模型的更高层次的概念,如复杂性或学习能力。
        • 不能直接从标准模型培训过程中的数据中学习,需要预先定义。
        • 可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定
        超参数的一些示例:
        • 树的数量或树的深度
        • 矩阵分解中潜在因素的数量
        • 学习率(多种模式)
        • 深层神经网络隐藏层数
        • k均值聚类中的簇数
    [来源:百度百科https://baike.baidu.com/item/%E8%B6%85%E5%8F%82%E6%95%B0/3101858?fr=aladdin]
    今日所学:
    1,泛化性能是机器学习的核心问题;
    2,由于模型的泛化性能和它的复杂度是直接挂钩的,所以模型验证的任务就是确定模型的复杂度以避免过拟合的发生;
    3,估计泛化性能时,最重要的依据就是模型在训练数据集上的精度(accuracy)。
    4,泛化误差也被称为样本外误差(extra-sample error)。
    5,样本内误差:核心在于刻画噪声的影响。
    6,利用样本训练出的模型 \hat f 在样本上的表现和在总体上的表现之间的差值,就是所谓的样本内误差。
    7,对样本内误差的估计又可以转化成对它和训练误差之间的差值的估计,这个差值在《统计学习基础》中被称为乐观度(optimism)。
    8,赤池信息量准则(Akaike Information Criterion, AIC)或者贝叶斯信息量准则(Bayesian Information Criterion, BIC)是计算有效参数的数目;
    9,原则就是确保训练集、验证集和测试集三者两两互不相交。
    10,留出法的思想稍做推广: k 折交叉验证法;
    11,模型验证是模型原型设计的最后完善。一旦完成了模型验证,模型就不能再做调整了;
    重点:
    模型验证的作用是选择最佳模型并确定其性能;
    对数据的重采样可以直接实现对样本外误差,也就是泛化误差的估计;
     k 折交叉验证是无放回的重采样方法;
     自助采样是有放回的重采样方法。
    展开
    
    
  • Kudo
    2018-12-20
    这几节课容都很棒啊,解决了我很多的疑问。老师,我有几个疑问:

    疑问1:如果把超参也当作参数看待,那参数模型会不会就变成非参数模型了?例如我们把多项式回归当中的阶数当作超参去调节时,模型的参数量就会随超参的改变而变得不固定了。

    疑问2:为了调整超参,我们会多次地将训练出的模型在验证集中进行验证,这个验证的过程是不是可以看作:用训练集训练出的参数,去拟合验证集,如果拟合结果不好,则调整超参,重新训练,如此往复。如上所述,如果反复的的次数过多,是不是会造成最终的模型在训练集和验证集的总体合集上是过拟合的?

    疑问3:针对问题2,有人可能会说还有测试集,如果测试集上的误差很大,说明确实过拟合了,可是测试集只能使用一次,难道还会返回去再训练吗?还有人会说,应该保证测试集与验证集分布相同,这样验证集上的结果好,那么测试集上的结果也差不哪去,如果是这样,那么测试集还有存在的必要吗?那干嘛不直接说让验证集和训练集分布相同,这样的话验证集都没有存在的必要了。

    不知道我表述清楚了没有。如果哪里理解的有偏差,还请老师指出,多谢!
    展开
    
    
  • Haley_Hu
    2018-09-24
    参数是通过模型训练数据得到的,而超参数是人为手动设置的,比如神经网络里面的layer等
    
    
  • 林彦
    2018-06-19
    超参数是模型更宏观的属性。参数是超参数,模型类型等宏观属性和训练过程属性确定后,训练出来的模型个体的属性,据此实现一个具体的模型对象。
    
    
我们在线,来聊聊吧