深度学习系列1:从线性回归说起

这篇博客从一元线性回归开始,探讨如何利用数据建立线性模型,包括一元线性回归的直观解释、损失函数以及多元线性回归的矩阵表示。接着介绍了求解线性回归方程的最小二乘法和梯度下降法,最后预告了将要讨论的分类问题——逻辑回归。
摘要由CSDN通过智能技术生成

引言

​深度学习系列第一篇,我们从线性回归说起。

一元线性回归

你的朋友问你,在海淀区买一套 60 平米左右的小两居需要多少钱?你该如何回答他呢。

在这里插入图片描述

负责任的你并没有冒然回答,而是从网上找了一些房子的数据,建立了下面的表格。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dSA0rMom-1584604215869)(http://123.57.75.26:8080/notePicture/picture/1584591793269_one.png)]

并根据表格中的数据做出了下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S2dRhOmi-1584604215871)(http://123.57.75.26:8080/notePicture/picture/1584519902026_house1.png)]

图中每个点代表一条数据,如果可以找到图中红线所示拟合各个数据点的线性方程 y = wx + b, 然后把 x = 60 带进去就可以回复朋友了。

从数据中确定(w,b)从而确定线性方程的过程就是线性回归,这里我们只有一个变量 x, 所以又称为一元线性回归。

现在假设我们找到了一对(w,b)得到一个方程 y = wx + b, 那么怎么评估这个方程的效果呢?

直观来看我们希望方程尽可能符合所有的数据点,也就是对于每个 x ,我们希望方程预测的值 y ^ \hat y y^ 与真实值 y y y 的差异越小越好,这里有 m 个样本,我们把 m 个样本的误差平方和作为整体的误差 loss:

l o s s = m i n ( 1 2 ∑ i = 1 m ( y ^ i − y i ) 2 ) loss = min(\frac 12 \sum_{i=1}^m (\hat y_i - y_i)^2) loss=min(21i=1m(y^iyi)2)

其中 y i y_i yi 表示 x i x_i xi 的真实价格,而 y ^ i \hat y_i y^i 表示 x i x_i xi 在方程上预测的值, 1 2 \frac12 21 是为了求解方便。

多元线性回归

现在你的方程只需要输入面积就可以得到房价,朋友很满意。但他感觉你的方程太笼统了,房价不仅与面积有关,还和房子的地段、房龄、装修甚至绿化都有关系,你能不能再帮他建立一个方程,综合房子的面积、房龄、位置等因素,预测房屋的价格。

为此你又上网搜集了如下数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8z1rUSb-1584604215872)(http://123.57.75.26:8080/notePicture/picture/1584591836990_mul.png)]

变量多了,但道理是相通的,我们需要找到一个含有 n 个变量的方程:

y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y = w_1x_1 + w_2x_2 + ... + w_nx_n + b y=w1x1+w2x2+...+wnxn+b

矩阵形式

y = [ w 1 … w n ] [ x 1 ⋮ x n ] + b y = \begin{bmatrix}w_{1} & \dots & w_{n}\end{bmatrix} \begin{bmatrix}x_{1} \\ \vdots \\ x_{n}\end{bmatrix} + b y=[w1wn]x1xn+b

因为有 m 个样本,m 个样本的矩阵形式

[ y 1 … y m ] = [ w 1 … w n ] [ x 1 … x 1 m ⋮ ⋱ ⋮ x n … x n m ] + b \begin{bmatrix}y_{1} & \dots & y_{m}\end{bmatrix} = \begin{bmatrix}w_{1} & \dots & w_{n}\end{bmatrix} \begin{bmatrix}x_{1} & \dots & x_{1m}\\ \vdots &\ddots & \vdots \\ x_{n} & \dots & x_{nm}\end{bmatrix} + b [y1ym]=[w1wn]x1xnx1mxnm+b

也即

Y 1 m = W 1 n ∗ X n m + b Y_{1m} = W_{1n} * X_{nm} + b Y1m=W1nXnm+b

其中:

  • n n n 表示变量维度
  • m m m 表示样本个数
  • x i x_i xi 表示不同的变量
  • w i w_i wi 表示变量的权重
  • b 表示偏移量。

和一元线性回归一样,我们希望方程预测的值 y ^ \hat y y^ 与真实值 y y y 的差异越小越好,所以需要把 m 个样本的误差加起来作为整体的误差 loss:

l o s s = m i n ( 1 2 ∑ i = 1 m ( y ^ i − y i ) 2 ) loss = min(\frac12\sum_{i=1}^m (\hat y_i - y_i)^2) loss=min(21i=1m(y^iyi)2)

其中 y i y_i yi 表示 x i x_i xi 的真实价格,而 y ^ i \hat y_i y^i 表示 x i x_i xi 在方程上预测的值。

求解线性回归方程

接下来看看通过一组数据如何找到误差最小的 (W,b) 从而确定线性回归方程。

问题描述

求解参数 w,b,使得矩阵方程

Y 1 m = W 1 n ∗ X n m + b Y_{1m} = W_{1n} * X_{nm} + b Y1m=W1nXnm+b
的 loss 最小。

l o s s = m i n ( 1 2 ∑ i = 1 m ( y ^ i − y i ) 2 ) loss = min(\frac12\sum_{i=1}^m (\hat y_i - y_i)^2) loss=min(21i=1m(y^iyi)2)

线性回归的求解方法通常有两种,最小二乘法和梯度下降法。

最小二乘法

最小二乘法直接求解方程的偏导数为 0 的点,因为凸函数偏导数为 0 的驻点即为最小值点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zUkHF6a-1584604215873)(http://123.57.75.26:8080/notePicture/picture/1584591280291_2mul.png)]
损失函数 Loss

L o s s = 1 2 ∑ i = 1 m ( y ^ i − y i ) 2 = 1 2 ( W X + b − Y ) 2 \begin{aligned} Loss &= \frac12\sum_{i=1}^m (\hat y_i - y_i)^2 \\ &= \frac12(WX + b - Y)^2 \end{aligned} Loss=21i=1m(y^iyi)2=21(WX+bY)2

求 W, b 的偏导数
∂ L o s s ∂ W = ∂ 1 2 ( W X + b − Y ) 2 ∂ W = 1 m ( W X + b − Y ) X T \begin{aligned} \frac{\partial Loss}{\partial W} &= \frac{\partial \frac12(WX + b - Y)^2}{\partial W} \\ &= \frac 1m(WX + b - Y)X^T \end{aligned} WLoss=W21(WX+bY)2=m1(WX+bY)XT
∂ L o s s ∂ b = ∂ 1 2 ( W X + b − Y ) 2 ∂ b = 1 m ( W X + b − Y ) \begin{aligned} \frac{\partial Loss}{\partial b} &= \frac{\partial \frac12(WX + b - Y)^2}{\partial b} \\ &= \frac 1m(WX + b - Y) \end{aligned} bLoss=b21(WX+bY)2=m1(WX+bY)

令两个偏导数都为 0,可以得出
W = ( Y − b ) X T ( X X T ) − 1 b = 1 n ( Y − W X ) \begin{aligned} W &= (Y-b)X^T(XX^T)^{-1} \\ b &= \frac 1n (Y - WX) \end{aligned} Wb=(Yb)XT(XXT)1=n1(YWX)

梯度下降法

梯度下降法是一个逐步逼近的过程,每次沿着导数下降的方向行走一个步长,最终到达最低点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-leUCfX0B-1584604215874)(http://123.57.75.26:8080/notePicture/picture/1584591358517_gradient.png)]

  1. 先随机生成 W,b
  2. 求dW, db,这一步同最小二乘法
    d W = 1 m ( W X + b − Y ) X T d b = 1 m ( W X + b − Y ) \begin{aligned} dW &= \frac 1m(WX + b - Y)X^T \\ db &= \frac 1m(WX + b - Y) \end{aligned} dWdb=m1(WX+bY)XT=m1(WX+bY)
  3. 更新 W,b
    W = W − α   d W b = b − α   d b \begin{aligned} W &= W - \alpha\,dW \\ b &= b - \alpha\,db \end{aligned} Wb=WαdW=bαdb

其中 α \alpha α 为每次更新的步长, 又叫做学习率。

这样经过多轮后,方程逼近最小值,W, b 逼近最优值。

后记

线性回归先聊到这里,我们注意到线性回归的预测结果是连续的值,比如房价。那么对于分类问题比如某套房子是否值得买,又应该怎样求解呢?下次我们就一起来聊聊解决二分类问题的逻辑回归。

欢迎关注本人公众号《大数据茶馆》,用大白话畅聊大数据。

来的都是客,欢迎您常来坐坐~

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值