注:以下所有内容均来自 网易公开课Andrew Ng的机器学习课程
第二课主要讲以下三个方面的内容
1、linear regression(线性回归)
2、Gradient descent(梯度下降)
3、Normal equations(正规方程组)
Linear regression
notation:
m = 训练样本数目
x = 输入变量(特征)
y = 输出变量(目标变量)
(x, y) = 样本
h(x) = 预测函数
线性回归的一般步骤:根据训练集合生成学习算法,构造假设函数,最后根据输入的x得出输出y
对于梯度下降算法,构造函数J(theta),线性回归的目的就是找到一组参数theta使得J(theta)取得最小值
有许多算法可以实现 J(theta) 取最小值
核心思想是先设置theta的一个初始值,我们需要样本来一步步修正theta的初始值, 下面介绍两种算法
Gradient Desecent(梯度下降算法)
其中 α 是梯度下降的步长
以上推导是对一个样本进行迭代,通常我们通过多样本反复迭代修正theta的值,所以最终一次迭代公式如下:
以上称为batch gradient desecent算法,适用于样本数量比较少的情况。
样本数量庞大的时候,改进的梯度算法称为stochastic gradient descent (also incremental gradient descent)
即每次只遍历一个样本去修改theta的值。
Normal equations(正规方程组)
首先补充几个线性代数中的fact:
下面是推导过程:
最后,令导数值等于0,得到:
此即为正规方程,此时的theta就是让J(theta)最小时的theta的值。
注:在求解 theta转置 x转置 x theta的导数时,可以依据上面给出的公式(4),也可以将theta和theta转置分别看成是求导对象,求导完成再求和,结果是一样的嘿嘿。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习笔记二:监督学习应用——梯度下降法 - Python技术站