李宏毅ML lecture-1,2,3 线性回归及梯度下降
线性回归(Linear regression)
简单来说,就是给一组含有
个数据的集合
,包括输入
和输出
,找出生成这组数据的函数,用这个函数预测下一个数据所产生的输出.因为不知道函数长什么样子,可以假定为最简单的线性函数:
将上述式子转换为矩阵运算:
损失函数( loss function)
给出线性函数后,随机初始化 ,输入 得到 ,而真实的输出应该是 ,所以得到直觉上的平方损失函数:
平方损失(square loss)
现在的目标就是使平方损失函数
最小.
这个时候就涉及到梯度下降算法(Gradient Descent)
梯度下降算法
这个时候,当
确定时,则
为自变量,为了找到让
最小的
和
.就需要让
和
沿着
的下降路线变化.
变化速度最快的方向就是
对
的梯度
记为
以及
对
的梯度
记为
.
PS:这个问题比较复杂,建议看视频或者别人的文章,这里就简单记一下.
学习率(Learning rate)
其中
为学习率,也就是参数沿某个方向变化的步长.
的选取有若干方法.学习率的设置的目标就是让参数在远的位置变化大,近的位置变化小.
momentum
decay
nesterov
RMSprop
Adagrad
Adadelta
Adam
Adamax
Nadam
偏执bias和方差variance
正则化(regularization)
在线性回归训练中,可以轻松让正确率达到100%,只需要让x数量D大于set集数量N.
但是如果你这样做,必然会导致在测试集准确率远低于训练集准确率,这就是过拟合(over-fitting).
更细致的内容涉及到偏差和方差.
这里列出线性回归训练可以用到的正则化方法.
参数范式惩罚
early stoping
数据预处理(data preprocessing)
在训练得不到提升以及涉及到过拟合时,可以考虑应用下述方法,往往,不需要考虑,先用了再说.