机器学习中的参数(parameters)和超参数(hyperparameters)

评论29,538

在机器学习或者深度学习领域,参数和超参数是一个常见的问题。

一直以来对于机器学习中的模型训练和模型选择存在一个误区,首先机器学习力的模型通俗来说就是一个函数关系,表明输入数据到输出数据的映射,基本的假设前提是输入数据和输出数据符合某种联合概率分布,而模型训练的过程其实就是在确定函数式的具体参数值的过程,比如假设你要做一个多项式回归分析的模型,比如f(x)=w1x1+w2x2+w3x3,那么模型训练的过程中其实就是在学习对应的w的值,那么问题来了,实战中所谓的模型调参来选择模型又指的是什么呢?

既然训练已经把参数都确定下来了,那我们调整的参数又是什么?原来这里有个误区在于模型中的parameterhyperparameter的区别,按照搜集到的资料来看,其实模型中可以分为两种参数,一种是在训练过程中学习到的参数,即parameter也就是上面公式里的w,而另一种参数则是hyperparameter,这种参数是模型中学习不到的,是我们预先定义的,而模型的调参其实指的是调整hyperparameter,而且不同类型的模型的hyperparameter也不尽相同,比如SVM中的C,树模型中的深度、叶子数以及比较常规的学习率等等,这种参数是在模型训练之前预先定义的,所以关于模型的选择其实更多的指的是选择最佳的hyperparameter组合。

总体来说:

参数:就是模型可以根据数据可以自动学习出的变量,应该就是参数。比如,深度学习的权重,偏差等

超参数:就是用来确定模型的一些参数,超参数不同,模型是不同的(这个模型不同的意思就是有微小的区别,比如假设都是CNN模型,如果层数不同,模型不一样,虽然都是CNN模型哈。),超参数一般就是根据经验确定的变量。在深度学习中,超参数有:学习速率,迭代次数,层数,每层神经元的个数等等。

参考:

http://izhaoyi.top/2017/06/01/parameter-hyperparameter/

https://blog.csdn.net/UESTC_C2_403/article/details/77428736

发表评论

匿名网友