在这里我真的想说人话。
我们用最简单的高中数学的知识来解释所谓“监督学习”,所谓“机器学习”的入门课。
我先解释,再说应用。
什么是线性回归,线性则是一元,简单说,给你在xy轴形成的空间里一堆点,让你做一条直线,能最好的拟合这堆点,做出这条直线,你就可以预测出给定值x的y来。
是不是高中学过啊?对,就是高中那套东西,只不过高中是用纯数学的角度来解释的。现在我们有了数学软件,也有了编程语言,有了很好的工具,不用我们笔算了。我们有了“机器方法”。
//我假定看我这篇博客的人的学历都是在高中以上。
我说人话。从图上来说,就是已经给定的点到你做出的直线的距离最小。
如果是一个点,那么我们想要距离最小,直接经过就好了。但是现在我有一堆点!这时候要让步,要让所有的点到直线的距离的和最小。举个例子:假设你有3个点在x、y轴所在的平面,那么你要找到一条线,使得 A点到直线距离+B点到直线距离+C点到直线距离这个和最小。
为了进一步简化,我们假设这条直线是过原点的,也就是y=θx+0(不过业界统一用的h(θ)=θx+0 )。
假设你图上有m个点;假设你分别把这些点标号为M1、M2.......Mn;假设你的m个点的坐标分别对应是(Ei, Ej);
那么有个函数叫cost function,就是算图上所有点到这条直线的距离的,它的变量是你的直线的斜率θ。
J(θ)= Da+Db+Dc+...+Dn;
怎么找???
好找。不仅好找,而且我还告诉你,J(θ)这个函数图像一定是个类似向上开口的抛物线的(想想就行了,所有点到线的距离,你使劲变直线的斜率肯定有个最小的总距离)。
难道我要做出来J(θ)的函数图像对它求导然后找导数等于0的时候???? 或许可以,但是那是数学方法,不过我们有机器的方法。先给你迭代式,然后解释为什么。
这么简单?
对。就这么简单,别跟我扯犊子搞什么乱七八糟的术语。
那么为什么这个是这个式子?(里面的α是你走一步的步长,专业术语叫learning rate,可能翻译成“学习强度”)。
曲线上升斜率>0,曲线下降斜率<0。你画个图就知道了,如果点在最低点的左边,那么此时斜率就是负的,θ减负值,θ增大,就离最低点更近;若在最低点右边,那么此时斜率就是正的,θ减正值,θ减小,还是离最低点更近。
最终θ会跑到最低点,这个时候就出结果了。
得到θ,那么直线也就确定了,那么就做出了“最佳拟合”的直线。
首先一个,我们简化了直线的截距是0,我们也只做了线性的回归。
而且,这是2维的而已 :-)。 如果你想找女朋友,你不可能只看她长得好不好看吧?还有心态、性格、身材、勤奋……有那么多维度呢!所以你的output不仅仅取决于一种因素,还有其他别的因素。
但是原理已经明白了,这种方法也使用于多维。
x代表的值,是自变量;y代表因变量;当给了很多x、y,那么这条线就不断变化,找到最适合的位置,那就像是“智能”一样,你给定一个x的值,它能给你预测出来y的值。
其实当代的“人工智能”本身也是基于大数据的嘛~