李宏毅ML lecture-1,2,3 线性回归及梯度下降

线性回归(Linear regression)

简单来说,就是给一组含有 N N 个数据的集合 s e t set ,包括输入 x x 和输出 t t ,找出生成这组数据的函数,用这个函数预测下一个数据所产生的输出.因为不知道函数长什么样子,可以假定为最简单的线性函数:
(1) y = w 1 x 1 + . . . + w D x D + b y=w_1x_1+...+ w_D x_D+b \tag{1}
将上述式子转换为矩阵运算:
(2) W = [ w 1 w 2 . . . w D ] X = [ x 1 x 2 . . . x D ] y = W T X + b W=\left[ \begin{matrix} w_1\\w_2\\...\\w_D \end{matrix} \right] X=\left[ \begin{matrix} x_1\\x_2\\...\\x_D \end{matrix} \right] y=W^TX+b \tag{2}

损失函数( loss function)

给出线性函数后,随机初始化 W W ,输入 X X 得到 y y ,而真实的输出应该是 t t ,所以得到直觉上的平方损失函数:

平方损失(square loss)

(3) L W , b = 1 2 N n = 1 N ( t n y n ) 2 L_{W,b}=\frac{1}{2N}\sum_{n=1}^{N}(t_n-y_n)^2 \tag{3}
现在的目标就是使平方损失函数 L L 最小.
这个时候就涉及到梯度下降算法(Gradient Descent)
梯度下降算法
(4) W = * a r g m i n W L W , b W^* = \operatorname*{argmin}_{W}L_{W,b} \tag{4}
(4) b = * a r g m i n b L W , b b^* = \operatorname*{argmin}_{b}L_{W,b} \tag{4}
这个时候,当 x x 确定时,则 w w 为自变量,为了找到让 L L 最小的 W W b b .就需要让 W W b b 沿着 L L 的下降路线变化.
变化速度最快的方向就是 W W L L 的梯度 L W \frac{\partial L}{\partial W} 记为 d W dW 以及 b b L L 的梯度 L b \frac{\partial L}{\partial b} 记为 d b db .
PS:这个问题比较复杂,建议看视频或者别人的文章,这里就简单记一下.

学习率(Learning rate)

W = W η d W b = b η d b W = W - \eta dW\\ b = b- \eta db\\
其中 η \eta 为学习率,也就是参数沿某个方向变化的步长.
η \eta 的选取有若干方法.学习率的设置的目标就是让参数在远的位置变化大,近的位置变化小.

momentum

decay

nesterov

RMSprop

Adagrad

Adadelta

Adam

Adamax

Nadam

偏执bias和方差variance

正则化(regularization)

在线性回归训练中,可以轻松让正确率达到100%,只需要让x数量D大于set集数量N.
但是如果你这样做,必然会导致在测试集准确率远低于训练集准确率,这就是过拟合(over-fitting).
更细致的内容涉及到偏差和方差.
这里列出线性回归训练可以用到的正则化方法.

参数范式惩罚

early stoping

数据预处理(data preprocessing)

在训练得不到提升以及涉及到过拟合时,可以考虑应用下述方法,往往,不需要考虑,先用了再说.

归一化(Normalization)

标准化(Standardization)

猜你喜欢

转载自blog.csdn.net/Arron_hou/article/details/87836955