线性回归例子:训练集,预测价格。x->h->y。h是函数。完成了x到有的映射。x是房子大小,y是房子价格。h是训练集产生的一个函数。h最初是一个假设,如何表示这个假设h,并不断的修改为为最佳的假设。此处假设h(x)=θ0+θ1x.线性函数产生.不断的经过x值和y值肯定两个参数的值.假设了几个θ0和θ1的值.算法
尽可能使得对于给定的x值,h(x)接近给定的y值。会更合理的预测y值。机器学习
最小化问题。关于θ0和θ1的最小化。训练集中,对全部x,使得∑(h(x)-y)^2最小,从而使得(1/2m)*∑(h(x)-y)^2最小。方差和最小。有个词来着,统计学上学过的。就是直观上预测y值最准的。函数
定义代价函数J(θ0,θ1)=(1/2m)*∑(h(x)-y)^2。平方偏差代价函数。众多代价函数之一。对大多数问题,特别是回归问题,是一个合理的选择,也是解决回归问题最经常使用的手段。学习
代价函数的工做原理。拟合数据的直线。θ0=0时,J(θ1)与θ1的函数关系能直观显示直线拟合度的好坏。如二次函数。对于大多数θ0和θ1都不为0 的状况,会是一个3d曲面图。也就是碗型立体图。等高线图是曲面图和不一样高度水平截面的交线,具备相同结果值的不一样变量值的集合。中心点是最低点,计算出的最小的值点,最好的拟合点。最简单的线性函数处理求值就到了三维,再高就真的是矩阵论了。3d
梯度降低算法求代价函数J最小值。计算量小了不少,普遍应用在机器学习众多领域。能够解决更通常的问题,好比多个θ值时求J。具体使用:初始化θ0和θ1为0.求出J,而后一点点变化,直到求出J的最小值,或局部最小值。如丘陵图。一步一想的小碎步,往降低最快的方向迈步。同时计算θ0和θ1,同时更新θ0和θ1。更新是一种梯度降低中经常使用的方法。θj := θj - α(δJ(θ0,θ1)/δθj) (for j=0 and j =1).θ0和θ1都用上一轮的数算好了之后再同时给这俩赋予新值。α为降低速率,控制步幅。变量
梯度降低算法过程当中的意义:无数的二次函数的偏导数。降低速度。α大于0,导数大于零,则说明函数在上升,θj减去这个正值则左移,向降低方向定位,接近最小值。这本就是J(θ)与θ的函数关系呀。α的取值过小会降低太慢,步数太多。α的取值太大会可能越过最低点致使没法找到最低点,甚至发散,没法收敛。原理
假设将θ1初始化在局部最低点,切线斜率为0,θ1再也不改变。保持在这里。θ0会逐步过来的, 只在一个方向上变化了。曲线愈来愈平缓,导数绝对值愈来愈小,θ更新幅度愈来愈小,,步幅愈来愈小。这也是梯度降低自动采起较小的幅度。不必另外减少α。方法
综上能够得出第一个机器学习算法:线性回归算法。统计