机器学习的模型训练中的具体模型是什么问题

2017/11/15 13:45
阅读数 102

作者:知乎用户
链接:https://www.zhihu.com/question/29271217/answer/44147568
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

我觉得机器学习(还是仅指有监督学习)在本质上其实是根据样本数据进行函数拟合的过程。这个过程分为两个步骤,首先是确定要拟合函数所属的家族,到底是线性的呢?还是非线性的呢?函数式大概是什么样子的呢?这就是我们所说的函数的假设空间,不同的假设空间定义了该函数族不同的函数形态。而这些不同的假设空间构成了不同的机器学习算法的类型。因此,第一步选择假设空间的过程就是选择机器学习算法类别的过程。这个过程可能需要根据研究员的经验,以及数据的分布情况进行决策。

但是选择好了假设空间并不意味着我们的工作已经完成了,因为假设空间中有无穷多个该类型的函数,举个简单的例子,对于指数函数来说,F(x) = a^x,只要我们的参数a稍微变动一下就得到了一个不一样的函数。那么接下来就是确定函数参数的过程了,只有函数的参数选择对了,函数拟合的过程也就完成了,拟合到了这个函数以后,无论我们是分类还是回归都可以用了。

那么现在机器学习问题就转换成了怎样求参数a的问题了。应该怎么求呢?直接一个个穷举肯定是不行的,因为a的取值是无限的。因此这里我们引入了一种衡量我们选择a好坏的标准,并用一个函数来计算这个标准。这里我们就引入了一个新的函数叫做代价函数,也叫损失函数。这个函数的输入是参数a,训练数据x,以及训练数据的label y(这也就是我一直强调有监督学习的原因,因为无监督是没有label值y的),我们给出损失函数的定义C(a, x, y)。在实际训练过程中,对于任意一个a,我们都可以根据F(x) = a^x算出我们这个模型所能给出来的值,我们称之为y',但是y'和真实的y之间是有差距的,这个差距就用代价函数C来衡量,C越大意味着预测值与真实值差的越远,也就是我们的a值选的越不好。反之C越小,则意味着我们选的a就越好。从此机器学习问题就转换为求C的最小值问题了~~(中国人民的老朋友了),有没有觉得熟悉了很多呢?求最小值问题应该大一的时候就学过吧?导数等于零,求驻点嘛~~

但是,注意我说但是了!!很多时候C的驻点不是那么好求的,有的是因为C的定义式太复杂,其导数为零的方程很难求得解析解,有的是因为要求的a太多了,一个个的偏导数太难搞定。因此,有别于一步到位的解法,我们采用了渐进式解法,也就是梯度下降法,牛顿法,拟牛顿法等。这些方法可以使我们沿着a该变大或者该变小的方向走下去,越走C越小,越走越接近最优的a'(当然能接近多少就不能保证了,有可能陷入局部最优),也就引入了最优化问题。

后来啊~~~ 由于现实问题太复杂,我们可能不是在全域上随便走动a,可能有一些针对a能取值的约束,例如实际问题中a就不能小于2,所以即便是a的最优解在原点0处,那么a也只能取一个大于等于2的值。这就引入了有约束的最优化问题。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部