导语:每天10分钟,用去食堂吃饭的时间解决一个知识点。
笔者目前的岗位与机器学习无关,在学校时修过人工智能的选修课,其实浮于表面,没学到什么技能。在学校的时候一直挺喜欢下棋的(曾经的李世石脑残粉一枚),去年AlphaGo火了一把,因此对机器学习产生了兴趣。看了几本书(“xx入门”,“白话xx与xx”),各种公众号也经常推文章,但术语虽然是熟悉了,还是觉得好像隔着一层。后来修了三门MOOC(板书小王子吴恩达的《Machine Learning》,台大萌娃林轩田的《机器学习基石》与《机器学习技法》),才有种补上了点基础的感觉。
这个系列只是梳理下机器学习用到的部分基础知识,以及自己的管窥之见。有哪里说的不对的话,希望各位猛烈地怼我。
第一篇先列一些贯穿始终的点。
首先要提的是,机器学习的问题是不适定的。适定性问题要满足下面三个条件:
解是存在的
解是唯一的
解连续地取决于初值条件
我们用机器学习处理的问题,样本只是所有数据的一小部分,解不唯一,所以是一个ill-posed problem。
我们用代价函数来衡量假设对训练集的拟合程度。如果我们有非常多的feature,通过学习得到的hypothesis可能完美适应训练集,甚至代价函数为0,但是进行预测时效果就不好了。这就是overfitting,过拟合。与之相对应的就是underfitting,欠拟合。
一般来说,我们的应对思路有两种:
减少feature
可以手动选择保留的特征,也可以使用一些降维的算法,如PCA,可通过发现相关度(协方差)高的特征,转换到低维空间。
正则化
不减少feature,但是给代价函数加一个衡量参数magnitude的项,即regularization parameter,这样可以达到“惩罚”一些特征的效果。
神经网络容易过拟合。像线性模型的参数少,不容易过拟合,这也是它的主要优点。所以满足性能的条件下,模型越简单越好,这是奥卡姆剃刀告诉我们的道理。
我们在机器学习里经常要考察函数的凸性。这是因为凸函数只有一个极值,即“谷底”。如果我们的代价函数是一个凸函数,那么我们就可以通过梯度下降,逐渐逼近全局最优解,一点一点滑落到谷底。
画个示意图,比如在基于最小二乘法的回归算法中:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。