原文:http://blog.csdn.net/abcjennifer/article/details/7691571网络
本栏目(Machine learning)包括单参数的线性回归、多参数的线性回归、Octave Tutorial、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(Support Vector Machines 支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。全部内容均来自Standford公开课machine learning中Andrew老师的讲解。(https://class.coursera.org/ml/class/index)机器学习
第一章-------单参数线性回归 Linear Regression with one variable函数
(一)、Cost Function学习
线性回归是给出一系列点假设拟合直线为h(x)=theta0+theta1*x, 记Cost Function为J(theta0,theta1).net
之因此说单参数是由于只有一个变量x,即影响回归参数θ1,θ0的是一维变量,或者说输入变量只有一维属性。设计
下图中为简化模式,只有theta1没有theta0的状况,即拟合直线为h(x)=theta1*xblog
左图为给定theta1时的直线和数据点×ci
右图为不一样theta1下的cost function J(theta1)get
cost function plot:it
当存在两个参数theta0和theta1时,cost function是一个三维函数,这种样子的图像叫bowl-shape function
将上图中的cost function在二维上用不一样颜色的等高线映射为以下右图,可得在左图中给定一个(theta0,theta1)时又图中显示的cost function.
咱们的目的是最小化cost function,即上图中最后一幅图,theta0=450,theta1=0.12的状况。
(二)、Gradient descent
gradient descent是指梯度降低,为的是将cost funciton 描绘出以后,让参数沿着梯度降低的方向走,并迭代地不断减少J(theta0,theta1),即稳态。
每次沿着梯度降低的方向:
参数的变换公式:其中标出了梯度(蓝框内)和学习率(α):
gradient即J在该点的切线斜率slope,tanβ。下图所示分别为slope(gradient)为正和负的状况:
同时更新theta0和theta1,左边为正解:
关于学习率:
α过小:学习很慢; α太大:容易过学习
因此若是陷入局部极小,则slope=0,不会向左右变换
本图表示:无需逐渐减少α,就能够使降低幅度逐渐减少(由于梯度逐渐减少):
求导后:
由此咱们获得:
其中x(i)表示输入数据x中的第i组数据