吴恩达机器学习笔记——梯度下降算法(1)
在单变量线性回归问题中,主要有两个功能函数,分别为假设函数(Hypothesis)和代价函数(Cost Function),
其中假设函数为线性函数,本文中设为hθ(x) = θ0 + θ1*x;
其代价函数为J(θ0,θ1) = 1 / ( 2 * m ) * Σ(h(x(i)) - y(i))2
x(i):训练集中的第i组数据
y(i):训练集中的第i组结论
我们需要解决的问题是在单变量线性回归问题中,确定θ的值使代价函数取得最小值,而我们知道J(θ)在二维(如果是多维取偏导数)中的取值类似于弓形,如下图所示,所以我们使用梯度下降算法逐步迭代找出使得J(θ)值最小时候的θ值。
梯度下降算法的描述可以表示为:
其中α为学习速率,可以控制步伐。
需要注意的是,算法中的两个theta值必须保证同时更新,梯度下降算法求得的是局部最优解。
以此类推,多元线性回归问题梯度下降算法的过程如下:
Hypothesis:
hθ(x) = θTx = θ0x0 + ...+θnxn
Parameters:
θ0,θ1,...,θn
Cost Function:
J(θ0,θ1,...,θn) = 1 / ( 2 * m ) * Σ(hθ(x(i)) - y(i))2
Gradient Descent:
,即
Repeat{
θj := θj - α * (1/m)Σ(hθ(x(i)) - y(i)) * xj(i)
}(j = 0,1,2,...,n)