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 |
y | a | x | Ax | x T {{{x}}^T} xTA | au | Au | u+v |
---|---|---|---|---|---|---|---|
∂ x ∂ y {{\partial x}\over{{\partial y}}} ∂y∂x | 0 | I | Ax | x T {{x}}^T xT | a ∂ u ∂ y a{{{{\partial u}} \over {{\partial y}}}} a∂y∂u | A ∂ u ∂ y A{{{{\partial u}} \over {{\partial y}}}} A∂y∂u | ∂ u ∂ x + ∂ v ∂ x {{\partial u} \over {\partial x}} + {{\partial v} \over {\partial x}} ∂x∂u+∂x∂v |
假设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(y−y^)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
训练损失: ℓ ( 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}-
最小化损失来学习参数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)
将偏差加入权重
ℓ ( 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∣∣y−wX∣∣2=∂w∂ℓ(X,y,w)=n1(y−Xw)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(y−Xw)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
挑选一个初始值 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=Wt−1−η∂Wt−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})} b1i∈Ib∑ℓ(Xi,yi,w)
其中,
那么如何选择批量的大小呢?