Pytorch深度学习【三】

线性回归模型

  • 假设的提出

    • 住房受卧室个数,卫生间个数和居住面积影响,记为 x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3
    • 成交价是关键因素的加权和
      y = w 1 x 1 + w 2 x 2 + w 3 x 3 + b {y=w_1x_1+w_2x_2+w_3x_3+b} y=w1x1+w2x2+w3x3+b
      权重和偏差的实际值在后面确定
  • 线性模型的理解

    • 给定n维输入 x = [ x 1 , x 2 , x 3 , ⋯   , x n ] T {x=[x_1,x_2,x_3,\cdots,x_n]^T} x=[x1,x2,x3,,xn]T
    • 线性模型有一个n维权重和一个标量偏差
      w = [ w 1 , w 2 , ⋯   , w n ] T , b {w=[w_1,w_2,\cdots,w_n]^T} , b w=[w1,w2,,wn]T,b
    • 输出是输入的加权和
      y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b y = w_1x_1+w_2x_2+\cdots+w_nx_n+b y=w1x1+w2x2++wnxn+b
    • 向量版本
      y = < w , x > + b y = + b y=<w,x>+b
  • 线性网络可以看作单层的神经网络

  • 衡量预估质量

    • 比较真实值和预测值,例如房价售价和估值
    • 假设 y y y是真实值, y ^ \hat{y} y^是估计值,我们可以比较
      ℓ ( y , y ^ ) = 1 2 ( y − y ^ ) 2 \ell(y,\hat{y}) = \frac 12(y-\hat{y})^2 (y,y^)=21(yy^)2
      这个叫做平方损失
  • 训练数据

    • 收集一些数据点来决定参数值(权重和偏差),例如过去6个月卖的房子
    • 这个被称为训练数据
    • 通常越多越好
    • 假设我们有n个样本,则有
      X = [ x 1 , x 2 , x 3 , ⋯   , x n ] T X = [x_1,x_2,x_3,\cdots,x_n]^T X=[x1,x2,x3,,xn]T y = [ y 1 , y 2 , y 3 , ⋯   , y n ] T y = [y_1,y_2,y_3,\cdots,y_n]^T y=[y1,y2,y3,,yn]T
  • 训练损失
    ℓ ( X , y , w , b ) = 1 2 n ∑ 1 n ( y i − < x i , w > − b ) 2 \ell(X,y,w,b) = \frac {1}{2n}\sum_1^n(y_i--b)^2 (X,y,w,b)=2n11n(yi<xi,w>b)2
    上式描述为向量就是
    ℓ ( X , y , w , b ) = 1 2 n ∥ y − X w − b ∥ 2 \ell(X,y,w,b) = \frac {1}{2n}\begin{Vmatrix} y-Xw-b\end{Vmatrix}^2 (X,y,w,b)=2n1 yXwb 2

  • 最小化损失来学习参数—即为求到上式中的最小值时的 w w w b b b
    w ∗ , b ∗ = a r g ( m i n ( ℓ ( X , y , w , b ) ) ) w^*,b^* = arg(min(\ell(X,y,w,b))) w,b=arg(min((X,y,w,b)))

  • 显示解

    • 将偏差加入权重 X ← [ X , 1 ] X \leftarrow [X,1] X[X,1]—加入1这个列向量主要是满足矩阵乘法 w ← [ w , b ] T w\leftarrow [w,b]^T w[w,b]T

    ℓ ( X , y , w ) = 1 2 n ∥ y − X w ∥ 2 \ell(X,y,w) = \frac{1}{2n}\begin{Vmatrix} y-Xw\end{Vmatrix}^2 (X,y,w)=2n1 yXw 2
    ∂ ℓ ( X , y , w ) ∂ w = 1 n ( X w − y ) T X \frac{\partial\ell(X,y,w)}{\partial w} = \frac{1}{n}(Xw-y)^TX w(X,y,w)=n1(Xwy)TX

    • 损失是凸函数,所以最优解满足
      ∂ ℓ ( X , y , w ) ∂ w = 0 ⇒ 1 n ( X w − y ) T X = 0 ⇒ w ∗ = ( X T X ) − 1 X y \begin{align*} & \frac{\partial\ell(X,y,w)}{\partial w} = 0 \\ \Rightarrow {} & \frac{1}{n}(Xw-y)^TX = 0 \\ \Rightarrow {} & w^*=(X^TX)^{-1}Xy \end{align*} w(X,y,w)=0n1(Xwy)TX=0w=(XTX)1Xy
  • 总结

    • 线性回归是对n维输入的加权,外加偏差
    • 使用平方损失来衡量预测值和真实值的差异
    • 线性回归有显示解
    • 线性回归可以看做是单层神经网络

你可能感兴趣的:(深度学习,pytorch)