回归:输出一个标量
Model
线性模型:b表示截距,w表示直线的斜率
函数的适合度
x轴表示输入前数值,y轴表示输入后数据
Loss Function L:输入一个方法,输出告诉你这个方法有多不好
Input:a Function
Output:How bad/good it is
估测误差:真实值y减去预测值再取平方(最小二乘法)
如果L(f)越大,说明该Function表现得越不好;L(f)越小,说明该Function表现得越好
挑选最好的函数
Gradient Descent(梯度下降):可处理可微分的任何L(f)
如果切线斜率是Negative负的,那么就应该使w变大,即往右踏一步;如果切线斜率是Positive正的,那么就应该使w变小,即往左踏一步,每一步的步长Step Size就是w的改变量——目的是减小 Loss
目标就是找到这个使Loss最小的 ,实际上就是寻找切线L斜率为0的Global Minima最小值点(有些斜率为0的点不是最优解)
w的改变量Step Size的大小取决于两件事:
一是现在的微分值有多大,微分值越大代表现在在一个越陡峭的地方,那它要移动的距离就越大,反之就越小;二是一个常数项 ,被称为Learning Rate,即学习率,它决定了每次踏出的Step Size不只取决于现在的斜率,还取决于一个事先就定好的数值,如果Learning Rate比较大,那每踏出一步的时候,参数w更新的幅度就比较大,反之参数更新的幅度就比较小如果Learning Rate设置的大一些,那机器学习的速度就会比较快;但是Learning Rate如果太大,可能就会跳过最合适的Global Minima的点。
当微分为0的时候,参数就会一直卡在这个点上没有办法再更新了,因此通过梯度下降找出来的解其实并不是最佳解但幸运的是,在Linear Regression上,是没有局部最优就的,因此可以使用这个方法。
在Training Data上,Model越复杂,Error就会越低;但是在Testing Data上,Model复杂到一定程度之后,Error非但不会减小,反而会暴增,通常被称为Overfitting过拟合,因此Model不是越复杂越好,而是选择一个最适合的Model