监督学习的主要任务是预测目标变量的值,而且一般已经已知一些目标变量y。所以通常假设函数会根据训练集(x,y)设为:
基于已知的训练集,我们应该如何确定θ的值。一般我们认为h(x)与y值的越接近,θ的值越好。因此定义了代价函数:
所以θ的值可以通过最小化代价函数来确定。
1、LMS(Least Mean Square)算法
为了让J(θ)最小,我们可以选择梯度下降函数,它的核心思想就是要找到某函数的最小值,最好的方法就是沿着该函数的梯度方向寻找。所以可以假设:
其中α为学习速率。
针对单变量的学习情况,我们可以这样计算:
所以单变量的解为LMS算法:
2、梯度下降算法
针对多变量的时候,会采用梯度下降算法。假设训练集的个数是m,则算法如下:
这个算法的缺点就是每一次都要计算整个训练集的梯度。当训练集的个数m非常大的时候,梯度下降算法通常吃不消。
3、随机梯度下降算法
为了克服梯度下降算法的缺点,我们选择随机抽取一个训练集,然后计算梯度,更新θ的值,依次抽完整个训练集。这样每次只需计算当前训练集的梯度。但是这样的算法也可能不会让J(θ)的值最小,只会在最小值附近波动。然而从实践来看,效果通常不错。所以如果训练集特别大,随机梯度下降算法比梯度下降算法好一些。