机器学习的框架(新手)

来源:互联网 发布:steam淘宝 编辑:程序博客网 时间:2024/05/16 09:12

//只是自己记的一个笔记,为方便系统化学习用。



整个机器学习的过程。首先,为了学习,我们需要定义我们的假设,大家可以理解为对模型的假设,比如我们假设我们用的模型为线性模型或者非线性模型。

其次,我们需要定义我们的目标函数,也就是定义怎么去衡量学出来的模型的好坏。这部分往往用一个lossfunction来定义。比如在这里,我们可以选用squareloss。

接下来就是,怎么对这个目标函数做优化,并能学习出最优的模型,。这部分我们可以称之为optimization。其实就是一种优化算法,这种算法可以来对目标函数进行优化,并能得到最优化的解。所以,机器学习大概分成两个方面:机器学习=模型+优化。

优化方法有很多种比如梯度下降,牛顿法,蒙特卡洛等等。不同的模型可选择不同的优化方法。比如逻辑回归,我们常用随机梯度下降法来解决,神经网络用反向推导来解决,贝叶斯模型则用MCMC这类方法来解决。

还有一个方面就是模型的复杂性。复杂的模型对数据的fit程度一般会高于简单的模型,但即便这样,学出来的模型对测试集的效果可能还不如简单的模型,而且明显低于训练集上的效果。这种我们成为过拟合(overfiting)现象。正则化(regularization)可以用来解决过拟合。MAP估计,这种方式其实在某种意义上就是相当于正则化,贝叶斯当然也会避免过拟合现象。

当有了模型,也有了算法,我们就可以找到最优解,接下来我们就需要判断这种解是否真的是我们需要的?这部分就需要一些技术比如交叉验证(crossvalidation)。

到此为止,就是整个机器学习的框架,学习机器学习,必须要对整个流程明确。