深度学习心得02| 机器学习基础之线性回归 linear regression

关键词

  • 深度学习 deep learning
  • 机器学习 machine learning
  • 线性回归 linear regression
  • 线性模型 logic model
  • 损失函数 loss funtion
  • 梯度下降法 GD:gradient descent
  • 欠拟合 underfitting 过拟合 overfitting
  • 正则化 regularization

一、机器学习

  • 1、监督学习 Supervised Learning

     训练数据training data +标准答案Labels
                     ↓
                机器学习算法
                     ↓
    测试数据testing data→预测模型→预测结果             
    

常用的监督学习算法有:分类classification、回归regression

类比:

训练————老师教学生,告诉正确的答案

预测————学生参加考试

  • 2、无监督学习 Unsupervised Learning*

常用的无监督学习算法有:聚类、降维

相对于监督学习,并没有老师指导,而且并不局限于解决有标准答案的问题

  • 3、强化学习 Reinforcement Learning

相对于监督学习,有老师指导,对预测的结果进行评估

二、机器学习架构 $Machine$ $Learning$ $Framework$





训练步骤 Training Procedure

  • 第一步: 定义模型-假设函数集合 define a set of hypothesis function

  • 第二步: 评估函数的效果 goodness of function

  • 第三步: 挑选最好的函数 pick the best function

1、模型结构 Model Architecture

  • A Single Layer of Neurons (Perceptron)

  • Multi-Layer Perceptron

  • Neural Network Model

2、损失函数设计 Loss Function Design——评估函数的效果

Function = Model Parameters

Model Parameter Measurement

3、最优化 Optimization —— 找到最好的函数

梯度下降法 Gradient Descent

随机梯度下降 Stochastic Gradient Descent (SGD)

Mini-Batch SGD

Practical Tips

三、线性回归 linear regression

  • 监督学习,输入数据(学习样本、训练数据)$D=(x_i,\hat{y}_i)_{i=1}^m$

  • 线性回归假设特征和结果满足线性关系(建立线性模型)

  • 输出(预测)的结果${y’}_{i}$为连续值变量 $({x’}_{i},{y’}_{i})$

1、线性模型:

$$h_\theta(x)=\sum_{i=0}^n \theta_i x_i=\theta_0+\theta_1 x_1 +\theta_2 x_2+……+\theta_n x_n=\theta^T x$$

其中,
$x_1,x_2,……,x_n$ 表示特征分量$feature$

$\theta_1,\theta_2,……,\theta_n$ 表示权重$weight$

$\theta_0$表示偏倚项$bias$(截距)

##2、损失函数 loss function:

  • 通过输入D找到“最合适”的线性模型
  • 损失函数用来看到线性模型与实际值之间的“差距”
  • 损失函数也称目标函数、成本函数cost function、错误函数error function

数学表达式:
$$J(\theta) = \frac 1 {2m} \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2$$

其中,
$h_\theta(x^{(i)})$ 表示预测值

$y(x^{(i)})$ 表示实际值

$2$是$J(\theta)$求导后相抵消,$m$表示$m$个输入值平均的差距

损失函数的概率解释:来源自[2]

一般地,机器学习中不同的模型会有相应的目标函数。而回归模型(尤其是线性回归类)的目标函数通常用平方损失函数来作为优化的目标函数(即真实值与预测值之差的平方和)。为什么要选用误差平方和作为目标函数呢?答案可以从概率论中的中心极限定理高斯分布等知识中找到。

中心极限定理

中心极限定理本身就是研究独立随机变量和的极限分布为正态分布的问题。

定理:设从均值为$\mu$、方差为$\sigma^2$的任意一个总体中抽取样本量为n的样本,当n充分大时,样本均值的抽样分布$\frac {Y_n} {n}$近似服从于均值为$\mu$、方差为$\sigma^2$的正态分布

中心极限定理的公式表示为:
设n个随机变量$X_1,X_2,……,X_n$相互独立,且具有相同的数学期望与方差,即$E(X_i)=\mu$ $D(X_i)=\sigma^2$ ,$Y_n$为随机变量值和,$Z_n$为随机变量的规范和
$Y_n=X_1+X_2+……+X_n$

$Z_n= \frac {Y_n-E(Y_n)} {\sqrt{D(Y_n)}}=\frac {Y_n-n\mu} {\sqrt{n}\sigma} \to N(0,1)$

线性模型与损失函数之间的关系

Case1: 假设线性模型只有一个参数(权重)$\theta$

线性模型

$$h_\theta(x)=\theta x$$

线性模型图像

输入样本有3个,即$m=3$ ,含三个输入样本${(x_1,y_1),(x_2,y_2),(x_3,y_3) = (1,1),(2,2),(3,3)}$三个输入样本正好形成直线并经过$(0,0)$点

根据$\theta$(斜率)取值不同,损失函数输出不同




一元损失函数图像

Case2: 假设线性模型只有两个参数(权重)$\theta_0$ $\theta_1$

线性回归 + 平方损失 $\to$ 损失函数图像无局部最小值

线性模型
$$h_\theta(x)=\theta_0+\theta_1 x$$
损失函数
$$J(\theta_0,\theta_1) = \frac 1 {2m} \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2$$
$$J(\theta_0,\theta_1) = \frac 1 {2m} \sum_{i=1}^m (\theta_0+\theta_1x^{(i)}-y^{(i)})^2$$




二元损失函数图像

3、梯度下降法 GD:gradient descent

Case1: 只有一个参数$\theta$

1、随机选择$\theta^0$

2、计算此处的导数值

如果为正 向x轴负方向

如果为负 向x轴正方向

$$
\theta^1 = \theta^0 - \alpha\frac d{d\theta}J(\theta)
$$

3、反复迭代,直至找到全局最小值点
$$
\theta^{i+1} = \theta^i - \alpha\frac d{d\theta}J(\theta)
$$

Case2: 有两个参数$\theta_0$ $\theta_1$

1、随机选择$\theta_0^0$ $\theta_1^0$

2、计算此处的偏导数值

$$
\frac{\partial J(\theta_0,\theta_1)}{\partial\theta_1} =\frac 1 {m} \sum_{i=1}^m (\theta_0+\theta_1x^{(i)}-y^{(i)})(x^{(i)})
$$

$$
\frac{\partial J(\theta_0,\theta_1)}{\partial\theta_0} =\frac 1 {m} \sum_{i=1}^m (\theta_0+\theta_1x^{(i)}-y^{(i)})
$$

$$
\theta_0^1 = \theta_0^0 - \alpha\frac\partial{\partial\theta_0}J(\theta_0,\theta_1)
$$

$$
\theta_1^1 = \theta_1^0 - \alpha\frac\partial{\partial\theta_1}J(\theta_0,\theta_1)
$$
3、反复迭代
$$
\theta_0^{i+1} = \theta_0^i - \alpha\frac\partial{\partial\theta_0}J(\theta_0,\theta_1)
$$

$$
\theta_1^{i+1} = \theta_1^i - \alpha\frac\partial{\partial\theta_1}J(\theta_0,\theta_1)
$$

梯度

矢量,有大小,有方向

用倒三角$\nabla$表示

梯度的方向:上升(下降)最快的方向

类比:下山最快的方向就是最“陡峭”的方向

梯度的大小:

$\theta=(\theta_0,\theta_1,……,\theta_n)$

$\nabla_\theta J=(\frac{\partial J(\theta)}{\theta_0},\frac{\partial J(\theta)}{\theta_1},……,\frac{\partial J(\theta)}{\theta_n})$

学习率$\alpha$

  • 也称为步长,就是每次按照梯度减少的方向变化多少

  • 是一个超参数hyper paramer





4、欠拟合underfitting 过拟合overfitting

欠拟合underfitting:模型本身就不够复杂,导致难以满足训练数据的要求

过拟合overfitting:越复杂的模型未必在测试数据上产生更好的效果

5、正则化 regularization

控制参数的幅度,不让模型无法无天
不让其走的太大,应该更加平滑
修正后的损失函数(加了正则项的损失函数)
$$J(\theta) = \frac 1 {2m} \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2+\lambda \sum_{j=1}^n \theta_j^2$$

正则化的程度$\lambda$

  • 是一个超参数hyper paramer