机器学习程序指的是该程序被认为能从经验E中学习,进而解决任务T,并达到性能度量值P,当且仅当,有了经验E之后,经过P评判,程序在处理T时的性能有所提升。
1.2监督学习监督学习数据集中的每个样本都有相应的“正确答案”,我们根据这些样本做出预测。常见的应用有回归问题和分类问题。
1.2无监督学习无监督学习数据集中的样本没有所谓的标签或是所以样本的标签相同,即我们并未提前告知程序有关该数据集的任何信息,例如有哪些结构,可以分成几类等,而是让程序自动对该数据集的样本进行结构分类。常见的应用有聚类分析。
2 单变量线性回归 2.1Model Representationhθ(x)=θ0+θ1x h_θ(x)=θ_0+θ_1x hθ(x)=θ0+θ1x
2.2Cost FunctionJ(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))2 J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
2.3Gradient DescentGradient Descent一般用来求函数最小值,在此我们用此方法来求Cost Function J(θ0,θ1)J(θ_0,θ_1)J(θ0,θ1)的最小值。该算法公式为:
repeat until convergence:repeat\ until\ convergence:repeat until convergence:
θj=θj−α∂∂θjJ(θ0,θ1)
\theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)
θj=θj−α∂θj∂J(θ0,θ1)
为了便于更简单直观地理解该算法,可以想象我们正站在山上的某一点寻找一条最合适的路径下山,下山这一过程可以理解为寻找函数的最小值,即梯度下降算法的目标。
在该算法中,∂∂θjJ(θ0,θ1)\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)∂θj∂J(θ0,θ1)可以理解为下山的方向,我们通过计算该微分得到梯度下降程度最大的方向;α\alphaα称为学习速率,可以理解为下山的步长,我们重复这一步骤,直到找到一个最低点,即函数的局部最小值。
Attention:
梯度下降算法中要保证所有的 θ\thetaθ 同时更新。 α\alphaα过小,函数收敛速度会很慢,α\alphaα过大,函数可能无法收敛,甚至发散。 2.4Gradient Descent For Linear RegressionRepeat:Repeat:Repeat:
θ0=θ0−α1m∑i=1m(hθ(x(i))−y(i))θ1=θ1−α1m∑i=1m((hθ(x(i))−y(i))∗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)})*x^{(i)})
θ0=θ0−αm1i=1∑m(hθ(x(i))−y(i))θ1=θ1−αm1i=1∑m((hθ(x(i))−y(i))∗x(i))