线性回归
假设函数
假设函数 (hypothesis) $$ h_\theta (x) = \theta_0 + \theta_1 x $$
代价函数
代价函数 (cost function / squared error function)
$$
J(\theta_0, \theta_1) = \frac{1}{2m}\sum_{i=1}^{m} (h_\theta(x^{(i)})-y^{(i)})
$$
优化的目标就是使代价函数值最小。
平方误差函数作为代价函数对大多数线性回归问题都是合理的。
梯度下降算法
梯度下降算法 (gradient descent) 要点:
- 初始化 \(\theta_0\), \(\theta_1\) (一般是 0,0)。
- 改变 \(\theta_0\), \(\theta_1\) 来减小 \(J(\theta_0, \theta_1)\) 的值直到最后在最小值停下。
repeat until convergence { $$ \theta_j := \theta_j - \alpha\frac{\partial}{\partial\theta_j}J(\theta_0, \theta_1)\qquad(for\:j=0\:and\:j = 1) $$ }
\(\alpha\) - 学习率 (learning rate),控制梯度下降的快慢(步子的大小)。
\(\frac{\partial}{\partial\theta_j}J(\theta_0, \theta_1)\) - 求导。
因为要同时赋值\(\theta_0\)和\(\theta_1\),所以应该先统一计算出式子右面的值,然后再统一赋值。
对\(J(\theta_0, \theta_1)\)求偏导: $$ \frac{\partial}{\partial\theta_j}J(\theta_0, \theta_1) = \frac{\partial}{\partial\theta_j} \frac{1}{2m}\sum_{i=1}^{m}(\theta_0+\theta_1x^{(i)}-y^{(i)})^2 $$ $$ j=0: \frac{\partial}{\partial\theta_0}J(\theta_0, \theta_1) = \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)}-y^{(i)})) $$ $$ j=1: \frac{\partial}{\partial\theta_1}J(\theta_0, \theta_1) = \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)}-y^{(i)}))\cdot x^{(i)} $$
带回梯度下降算法:
重复直到收敛{ $$ \theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i-1}^{m}(h_\theta(x^{(i)})-y^{(i)}) $$ $$ \theta_1 := \theta_1 - \alpha \frac{1}{m}\sum_{i-1}^{m}(h_\theta(x^{(i)})-y^{(i)})\cdot x^{(i)} $$ }