标量和向量的导数

1.标量导数

y a(常数) x n {{\rm{x}}^n} xn exp(x) log(x) sin(x)
d y d x {{dy} \over {dx}} dxdy 0 n x n {{\rm{{n}}{x}}^n} nxn exp(x) 1 x {1 \over x} x1 cos ⁡ x \cos x cosx

2.向量导数

y a x Ax x T {{{x}}^T} xTA au Au u+v
∂ x ∂ y {{\partial x}\over{{\partial y}}} yx 0 I Ax x T {{x}}^T xT a ∂ u ∂ y a{{{{\partial u}} \over {{\partial y}}}} ayu A ∂ u ∂ y A{{{{\partial u}} \over {{\partial y}}}} Ayu ∂ u ∂ x + ∂ v ∂ x {{\partial u} \over {\partial x}} + {{\partial v} \over {\partial x}} xu+xv

3.线性回归

3.1平方损失

假设y是真实值, y ^ \hat{y} y^是预估值,平方损失: ℓ ( y , y ^ ) = 1 2 ( y − y ^ ) 2 \ell(y, \hat{y})=\frac{1}{2}(y-\hat{y})^2 (y,y^)=21(yy^)2

3.2训练数据

假设有n个样本,记 X = [ x 1 , x 2 , . . . , x n ] T X = [x_1,x_2,...,x_n]^T X=[x1,x2,...,xn]T, Y = [ y 1 , y 2 , . . . , y 3 ] T Y =[y_1,y_2,...,y_3]^T Y=[y1,y2,...,y3]T

3.3参数学习

训练损失: ℓ ( X , y , w , b ) = 1 2 n ∑ i = 1 n ( y i − < x i , w > − b ) 2 = 1 2 n ∣ ∣ y − X w − b ∣ ∣ 2 \ell(X,y,w,b)=\frac{1}{2n}\sum\limits_{i = 1}^n(y_{i}--b) ^2 =\frac{1}{2n}{||y-Xw-b||}^2 (X,y,w,b)=2n1i=1n(yi<xi,w>b)2=2n1∣∣yXwb∣∣2

最小化损失来学习参数w*,b*:

w ∗ , b ∗ = arg ⁡ min ⁡ w , b ℓ ( X , y , w , b ) \mathbf{w}^*, \mathbf{b}^*=\arg \min _{\mathbf{w}, b} \ell(\mathbf{X}, \mathbf{y}, \mathbf{w}, b) w,b=argw,bmin(X,y,w,b)

3.4显示解

将偏差加入权重
ℓ ( X , y , w ) = 1 2 n ∣ ∣ y − w X ∣ ∣ 2 = ∂ ℓ ( X , y , w ) ∂ w = 1 n ( y − X w ) T X \ell(\mathbf{X},y,w) = \frac{1}{2n}||y-w\mathbf{X}||^2 = {{\partial {\ell(\mathbf{X},y,w)} \over \partial{\mathbf{w}} }= \frac{1}{n}(y-\mathbf{X}w)^TX} (X,y,w)=2n1∣∣ywX2=w(X,y,w)=n1(yXw)TX

由于是凸函数,所以最优解满足在导数等于0的点,即:

∂ ℓ ( X , y , b ) ∂ w = 0 {\partial {\ell (\mathbf{X},y,b)} \over \partial \mathbf{w}}=0 w(X,y,b)=0

⇒ 1 n ( y − X w ) T X = 0 \Rightarrow {\frac{1}{n} (y-\mathbf{X}{w})^T X}=0 n1(yXw)TX=0

⇒ w ∗ = ( X T X ) − 1 X T y \Rightarrow w^* = {(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^{T}y} w=(XTX)1XTy

3.5 梯度下降

挑选一个初始值 w 0 w_0 w0,重复迭代参数 t = 1 , 2 , 3 , . . . t=1,2,3,... t=1,2,3,...,使得w取得一个最小值:
W t = W t − 1 − η ∂ ℓ ∂ W t − 1 W_t = W_{t-1} - \eta{\partial{\ell}\over{\partial{W_{t-1}}}} Wt=Wt1ηWt1

  • 沿梯度方向将增大损失函数值,因此是 − ∂ ℓ ∂ W t − 1 - {\partial{\ell}\over{\partial{W_{t-1}}}} Wt1
  • η \eta η:学习率,超参数,控制梯度下降步长

那么对于超参数——学习率,如何恰当的选择学习率呢?

3.5.1 小批量梯度下降

在实际训练过程中,很少直接使用梯度下降,而是使用梯度下降的变体,例如:小批量随机下降,因为每一次下降,损失函数都是对整个样本求导后的平均损失。因此,求一次梯度,就需要重新算计算一次整个样本集,而在一个深度神经网络模型可能需要数分钟甚至数个小时,因此,一次梯度的计算花销是巨大的。

那么我们能不能随机采样b个样本 i 1 , i 2 , i 3 , . . . i_1,i_2,i_3,... i1,i2,i3,...来求近似损失呢?

答案是能的,这就是小批量随机梯度下降:
1 b ∑ i ∈ I b ℓ ( X i , y i , w ) \frac{1}{b}{\sum\limits_{i\in{I_b}}\ell({\mathbf{X}}_i,{\mathbf{y}}_i,\mathbf{w})} b1iIb(Xi,yi,w)

其中,

  • b是批量大小,是相对于学习率,另一个重要的超参数

那么如何选择批量的大小呢?

  • 不能太小:每次计算量太小,不适合GPU并行计算
  • 不能太大:太大内存消耗增加或者浪费计算(当所有样本都相同时)

4.总结

  • 梯度下降是通过不断沿着梯度的相反方向接近损失函数最小的点,从而不断的更新参数来求解
  • 小批量随机梯度下降算法是深度学习默认的求解算法
  • 两个重要的超参数是学习率 η \eta η和批量大小b

你可能感兴趣的:(数学基础,机器学习,人工智能)