一、非线性假设(神经网络模型)
下面几个例子来阐述神经网络算法的目的,这几个问题的解决都依赖于研究复杂的非线性分类器。
考虑这个监督学习分类的问题,我们已经有了对应的训练集,如果利用逻辑回归算法来解决这个问题。首先需要构造一个包含很多非线性项的逻辑回归函数。
事实上,当多项式项数足够多时,那么可能你能够得到一个,分开正样本和负样本的分界线, 当只有两项时,比如 x1、x2 这种方法确实能得到不错的结果,因为你可以把x1和x2的所有组合都包含到多项式中,但是对于许多复杂的机器学习问题,涉及的项往往多于两项。
房价预测的问题:假设现在要处理的是房子在未来半年内,能被卖出去的概率,这是一个分类问题。对于不同的房子有可能就有上百个特征,对于这类问题,如果要包含所有的二次项,在n=100的情况下,最终也有5000个二次项,随着特征个数n的增加。二次项的个数大约以n^2的量级增长,因此要包含所有的 二次项是很困难的,所以这可能不是一个好的做法。
而且由于项数过多,最后的结果很有可能是过拟合的。此外,在处理这么多项时,也存在运算量过大的问题。当然,你也可以试试只包含上边这些二次项的子集,但是由于忽略了太多相关项,在处理类似左上角的数据时,不可能得到理想的结果。5000个二次项看起来已经很多了,而现在假设包括三次项或者三阶项,大概17000个三次项,这并不是一个好做法。
举个例子:关于计算机视觉中的一个问题。假设你想要使用机器学习算法来训练一个分类器,使它检测一个图像,来判断图像是否为一辆汽车,我们取出这幅图片中的一小部分,将其放大。比如图中这个红色方框内的部分,当人眼看到一辆汽车时,计算机实际上看到的却是这个 一个数据矩阵,它们表示了像素强度值,告诉我们图像中每个像素的亮度值。因此,对于计算机视觉来说问题就变成了:根据这个像素点亮度矩阵来告诉我们这些数值代表一个汽车门把手。
具体而言,当用机器学习算法构造一个汽车识别器时,我们要想出一个带标签的样本集。其中一些样本是各类汽车,另一部分样本是其他任何东西,将这个样本集输入给学习算法,以训练出一个分类器。训练完毕后,我们输入一幅新的图片,让分类器判定“这是什么东西?” 理想情况下,分类器能识别出这是一辆汽车:
为了理解引入非线性分类器的必要性,我们从学习算法的训练样本中挑出一些汽车图片和一些非汽车图片,我们从其中每幅图片中挑出一组像素点 pixel1和pixel2。
在坐标系中画上更多的新样本,用’’+&