人工智能三个基础问题的思考——学习笔记(一)

作者:Bruce,

班级:CSDN-第五期AI工程师直通车

学习笔记来源:本系列笔记是本人参加CSDN课程中的一些思考总结。希望能通过对一些问题深入思考,探索人工智能工程方法背后的本质。

1,机器学习是用怎样的思路解决问题的?

我们在机器学习中面临的任务最典型的是:有很多数据,怎样从现有数据建立一个模型,通过这个模型来预测未知的数据。这相模型就是一个从自变量到目标变量的一个映射:可以表示成y=f(x),只要我建立起了这样的模型,那有了自变量x,就可以通过模型求出y。

答:机器学习学习的过程就是建立模型并求解f的过程。常用的模型,有决策树、线性回归、逻辑回归、SVM等等,这么多模型哪一种是正确的模型呢?其实谁也不知道(大神可以从现有数据特征中估计哪种模型最合适,但是可以肯定的是并没有一个严格的规律可以认定哪种模型最好,否则的话就可以建议物理或者数学的定律还不需要机器学习了),我们只能“大胆假设,小心求证”。选好了打算“尝试”的模型,那模型的需要求解哪些参数也就有了,然后利用已知的数据,求出最优的参数,那y=f(x)就可以使用了。用“尝试”的办法,可以多做一些模型,然后比较哪种模型最好。

2,机器学习中的y=f(x)怎么求解?
答:本来我们拿到的现有数据就类型于数学应用题中的已知条件,但是对于机器学习问题并没这么简单。机器学习更类似于物理中做实验的过程,比如我需要测试自由落体运动规律,需要做自由落体的实验,因为每次都有误差,所以需要多做几次,然后从实验数据中计算出自由落体运动。
现有的很多数据可以看作是实验数据,然后利用现有的“实验”数据算出一个误差最小的模型。区别在于,自由落体实验我们是知道自由落体运动的方程的,只需要从实验求出参数,而机器学习我们是不知道方程的,只能假设一个方程(映射),然后求解尝试。
怎么求解呢?其实我们的目标就是要求出最“好”参数值,怎么算好呢,最直观的就是y=f(x)用来做预测的话误差最小就是“好”的参数。当然我们可能并不仅仅追求预测误差小,而是要追求模型不仅在现有的数据中预测的误差小而且还会追求模型在未来数据中的误差也小。但是“好”终究是有一个评判标准的,这个标准就是目标函数。然后求解使目标函数最大或者最小的参数即可。


3,为什么L2,L1,huber这三种正则项可以降低模型复杂度呢?直观看模型的复杂度应该是降低函数的最高阶数,比如y=ax^2+bx就比y=ax更复杂。但是为什么用L2和L1正则项呢?这正则项的结果应该是减小了参数的值,为什么减小了参数的值,就降低了模型的复杂度?
答:要回答这一问题,首先要回答模型的复杂度怎么衡量。课程中的例子说明了降低模型复杂度的重要性。打破砂锅问到底的话,就会问出问题,比如y=sin(x)复杂,还是y=x^2复杂?虽然我们学数学的时候先学的x^2,但是也不能据此设计sin(x)更复杂。
反观本质,复杂模型不好不仅仅是因为不容易解释,更主要是复杂模型的不稳定性,即复杂模型的方差较大。事实上模型方差即是模型复杂度很好的衡量指标。模型的方差反映了随自变量x的变化,目标变量y变化的的快慢。可以简单的理解如下图所示,拟合sin(x)时,直线相对更好,而曲线更不好,对应到f(x)中,即可理解成靠近分割线的两个x样本,曲线时,y值变化很大,而直线则y值变化更小。
综上所述,使用L2,L1,huber正则项,可以降低参数值的绝对值,从而也可以减小模型的方差。而降低模型复杂度是一个更通俗容易理解的方式,实际上需要降低的是模型的方差。
人工智能三个基础问题的思考——学习笔记(一)_第1张图片



本人联系方式:

邮箱:[email protected]

欢迎随时讨论

你可能感兴趣的:(人工智能三个基础问题的思考——学习笔记(一))