机器学习可以主要分为几类:监督学习,非监督学习,增强学习及推荐系统等。
监督学习:即教计算机如何学习以达到自身所需目的
非监督学习:让计算机自身进行学习,如聚类问题等。
增强学习:待学习
推荐系统:目前只了解
在本节重主要介绍监督学习的部分内容,它是机器学习中的一类主要学习方法,也是应用较广的方法。其他的几类学习方法在以后自己更深入地学习后再进行相应的补充吧~
what:
所谓监督学习,是针对数据集而言来定义的,即所给的数据是带标签的,标签指的就是正确答案,而学习的目的是为了在输入一个未知标签的数据时,能预测得到其正确的答案。
由此类比,非监督学习指的是给定的数据集是不带标签的,但也要达到同样的学习目的。
how:
那么监督学习是如何训练得到想要模型的呢?这个就需要理解其整个训练学习的流程了~下面我就按个人的理解整理出知识点,供大家参考,也希望能得到大家的一些补充:)下面就进入Details部分吧~
Details:
supervised learning大体可分为两类——Regression Problem&Classification,这也是很经典的两类问题。
【Regression Problem(回归问题)】:预测连续型的输出值
【Classification(分类问题)】:预测离散的输出值(即有限个数的输出值)
也许,这样来说还不太助于理解,那我就附上图片来说明吧~首先还是放上上一节中的Framework,图1所示,再来说明两者之间的区别。
对于回归问题而言,若输入的x是房屋的面积,经过训练好的模型h进行预测,最后得到的y为房屋的价格,很明显,价格的取值是连续的;
对于分类问题而言,若输入的x是房屋的面积,经过训练好的模型h进行预测,最后得到的y为1/0,可代表该房屋是house还是apartment。
regression problem:
在这儿我来插入一张图来进行说明,如图2所示:
横坐标代表房屋面积,纵坐标代表价格,*是已有的数据集,用(x,y)对表示,学习的目的便是找到一条能很好拟合这些数据的线,当输入x,得到y*,该y*与y差距尽可能的小,则说明模型比较合理,也就是模型的可信度比较高,由此便可用这个模型对任何房屋面积的价格来进行预测。
注:总结来看,模型的训练大体可用“三要素”来描述:1、假设模型 2、目标函数 3、迭代优化,所以在以后的梳理过程中,我也将从这三点来切入分析理解~~
此处针对上面的例子来进行说明,扩展补充的内容将放在页尾
error:由于在这儿不便进行公式字符的编辑,故以我自己手稿图片的方式(如图3所示)进行呈现了:(
注:在以后的公式中,将多次出现同样的符号,现对其进行说明。
m:训练样本的个数
x:输入的特征量
y:输出变量(目标)
(x,y):一个训练样例
(x(i),y(i)):第i个样例
1、假设模型:
模型的初始化选择需要基于对数据的观察,也就是以怎样的函数去拟合现有的数据更合适,上面选择的是单变量的线性函数,对于不同的数据集,则可选择不同的函数拟合,同时上述只涉及到房屋大小这一个输入变量,但在实际的问题中其输入的特征变量将会是多维的。下面附上一张图来作为模型选择的参考思路,如图4。
注:从上图可以看出,最右边的模型几乎拟合了所有的数据,看上去模型很好,但建立模型的目的不仅仅只是拟合已有的数据集,而是需要对新的数据能有较好的预测能力,所以这就涉及到模型的欠拟合和过拟合问题,这我将在后续的内容中进行说明。毕竟在这儿主要是介绍监督学习之回归问题的大体思路,不适合涉及到太多细节性的内容,正所谓不要因为走得太远,而忘了为什么出发,最开始的时候我们还是以形成系统框架为目的,之后再慢慢添砖加瓦吧:)
2、目标函数
在这个问题中,目标函数又叫损失函数,也就是我需要进行优化的目标。因为是监督学习,所以可以利用预测的结果与已知的值进行比较来计算整体的损失值。在这儿使用的是最小二乘的方法来计算损失,这也是解决回归问题最常用的方法,最终需要得到的是选择的参数使得该损失函数值最小。
3、迭代优化
这一步是基于上一步的目标函数进行的,在这儿采用的是梯度下降的方法,这也是进行优化问题最最常用的方法,它不仅对于线性回归问题适用,并且对于所有的机器学习方法均适用。至于什么是梯度下降,就留在后续章节中再来说明吧~在这儿,还涉及到一个学习率的问题,也就是影响每次参数值改变步长的一个因素,这是在训练过程中一个很重要的超参数,设置得太大,则可能越过最低点甚至导致目标函数不收敛,设置得太小则训练速度太慢。
在进行梯度计算时,可以采用batch gradient descent,或stochastic gradient descent(SGD)。
batch gradient descent:也就是利用所有的m个数据来进行对某个参数的梯度值计算,如上面的梯度公式所示。但利用整个数据集来进行计算效率太低。
SGD:该方法是利用一个数据来进行梯度值的计算,这种方式更高效,但计算机对于向量化的处理更擅长,所以一般会选用数据集中的一小部分来进行梯度的计算。
注:在后续的学习中会发现,在进行优化的过程中,一般不会只单单利用梯度下降,同时会结合其他的方式来进行更高效更准确的优化,这些就留到以后再说吧~
经过这三部之后,反复的利用更新的参数进行迭代训练,使得损失函数的取值达到最小(ps:一般不会是最小,可能是局部最优或一个比较小的值),此时便可将这些参数作为模型中的参数,由此便建立了一个合理的模型。
上面所说道的是以房屋面积来预测房屋价格的单变量线性回归模型,在实际生产生活中所遇到的问题大多是多变量因素来影响的,所以模型可表示为图5:
注:在求目标函数最小值时可能会想到直接令梯度值等于0来计算出参数值,此时称为正规方程。其与梯度下降法的逐次迭代不同,利用解析法一次性求解参数的最优值。梯度下降与正规方程的对比如下图6:
在下一节中将要介绍说明分类问题的相关内容~~