machine Learning的三个步骤:
①定义一个model即function set
②定义一个goodness of function损失函数去评估该function的好坏
③找一个最好的function
Step1:
假设采用Linear Model
Step2:
Loss function:平方损失函数
如果L(f) 越大,说明该function表现得越不好; 越小,说明该function表现得越好
Step3:
我们已经确定了loss function,他可以衡量我们的model里面每一个function的好坏,因此我们只需要找出:
在这里一般采用梯度下降法
梯度下降法:
我们的目标就是找到这个使Loss最小的 W,实际上就是寻找切线斜率为0的 global minima最小值点(注意,存在一些local minima极小值点,其斜率也是0)
- 首先选取一个初始的点w0
- 计算W 在w0的位置的微分,几何意义就是切线的斜率
- 如果切线斜率是negative负的,那么就应该使w变大,即往右踏一步;如果切线斜率是positive正 的,那么就应该使w变小,即往左踏一步,每一步的步长step size就是w的改变量
- w的改变量step size的大小取决于两件事
①一是现在的微分值有多大,微分值越大代表现在在一个越陡峭的地方,那 它要移动的距离就越大,反之就越小;
②二是一个常数项 ,被称为learning rate,即学习率,它决定了每 次踏出的step size不只取决于现在的斜率,还取决于一个事先就定好的数值,但是learning rate如果太大,可能就会跳过最合适的global minima的点
Gradient Descent的缺点:
可能停留在local minima,但linear regression中只有有一个global minima
function所包含的项的次数越高,越复杂,error在training data上的表现就会越来越小,但是在testing data上,model复杂到一定程度之 后,error非但不会减小,反而会暴增,通常被称为overfitting过拟合。当我们使用较多的input自变量时,也可能发生过拟合。