1. 线性回归
1.1 基本元素
1.1.1 模型
y ^ = w ⊤ x + b \hat{y}=\boldsymbol{w}^\top\boldsymbol{x}+b y^=w⊤x+b
1.1.2 损失函数
L ( W , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) L\left(\boldsymbol{W}, b\right)=\frac{1}{n}\sum\limits_{i=1}^nl^{(i)}\left(\boldsymbol{w}, b\right) L(W,b)=n1i=1∑nl(i)(w,b)
其中
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}\left(\boldsymbol{w},b\right)=\frac{1}{2}\left(\hat{y}^{(i)}-y^{(i)}\right)^2 l(i)(w,b)=21(y^(i)−y(i))2
1.1.3 解析解
线性回归模型是存在解析解的,即,用一个公式直接将解表达出来,但并不是所有模型都有解析解
w ∗ = ( X ⊤ X ) − 1 X ⊤ y \boldsymbol{w}^*=\left(\boldsymbol{X}^\top\boldsymbol{X}\right)^{-1}\boldsymbol{X}^\top\boldsymbol{y} w∗=(X⊤X)−1X⊤y
1.1.4 小批量梯度下降
这是一种用于在无法求得解析解的情况下,有效训练模型的方法
- 初始化模型参数的值,如随机初始化
- 从数据集中随机抽取小批量样本 B \mathcal{B} B
- 在负梯度的⽅向上更新参数,具体更新如下
- 其中 η \eta η 是一个预先确定的正数
( w , b ) ← ( w , b ) − η ∣ B ∣ ∑ i ∈ B ∂ ( w , b ) l ( i ) ( w , b ) \left(\boldsymbol{w}, b\right)\leftarrow\left(\boldsymbol{w}, b\right)-\frac{\eta}{\left|\mathcal{B}\right|}\sum\limits_{i\in\mathcal{B}}\partial_{\left(\boldsymbol{w}, b\right)}l^{(i)}\left(\boldsymbol{w}, b\right) (w,b)←(w,b)−∣B∣ηi∈B∑∂(w,b)l(i)(w,b)
- 不断重复第 2 步
1.2 矢量化加速
在 Python 中不要自己写 for 循环,要写矢量化的代码,这通常会带来数量级的加速
1.3 正态分布与平方损失
- 正态分布
p ( x ) = 1 2 π σ 2 exp ( − 1 2 σ 2 ( x −