机器学习个人笔记——(六)神经网络(1)从线性回归到神经网络简单直观分析

一、线性回归与神经网络

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

单层

单个输出

假设现需要预测房屋的出售价格,房屋通过以下特征,面积(x1x_{1})空气指数(x2x_{2}),交通指数(x3x_{3}),最终输出价格(yy

面积(x1x_{1} 空气指数(x2x_{2} 交通指数(x3x_{3}) 价格(yy
100 25 40 30
120 35 45 50

若上表为数据样本集,
使用线性回归去训练模型并预测,步骤如下:

  1. 设定线性方程为:
    y=w1x1+w2x2+w3x3+by=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+b

  2. 通过数据集训练,求出最合适的参数

w1,w2,w3,bw_{1},w_{2},w_{3},b

  1. 从而得到得到一个完整的表达式:
    y=w1x1+w2x2+w3x3+by=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+b

  2. 当输入一个新的数据(输入特征值x1,x2,x3x_{1},x_{2},x_{3}),代入3中的方程,即可实现预测yy的效果。

向量化:

w1,w2,w3w_{1},w_{2},w_{3}看成一个列向量:
w=[w1w2w3]\mathbf{w}=\begin{bmatrix} w_{1}\\ w_{2}\\ w_{3} \end{bmatrix}
将输入特征也x1,x2,x3x_{1},x_{2},x_{3}也看成一个列向量:
x=[x1x2x3]\mathbf{x}=\begin{bmatrix} x_{1}\\ x_{2}\\ x_{3} \end{bmatrix}

此时表达式y=w1x1+w2x2+w3x3+by=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+b
向量化即转换为:
y=wTx+by=\mathbf{w^Tx}+b

以上是线性回归实现预测房屋价格的例子

用图来表示即
机器学习个人笔记——(六)神经网络(1)从线性回归到神经网络简单直观分析
在这个例子中,只有一个输出:yy

多个输出

若,
将预测房屋价格问题进行修改,不光要预测价格,还要预测房屋内的房间数量
如此以来,训练样本集的特征以及 标签即如下表所示。

面积(x1x_{1} 空气指数(x2x_{2} 交通指数(x3x_{3}) 价格(y1y_{1} 房间数量y2y_{2}
100 25 40 30 5
120 35 45 50 6

此时,若要实现该模型,则需要设2个方程
分别为
y1=w1Tx+b1y_{1}=\mathbf{w_{1}^Tx}+b_{1}
y2=w2Tx+b2y_{2}=\mathbf{w_{2}^Tx}+b_{2}
通过训练集分别求出
w11,w12,w13,b1w1b1w_{11},w_{12},w_{13},b_{1}(即\mathbf{w_{1}},b_{1}
w21,w22,w23,b22w1b2w_{21},w_{22},w_{23},b_{22}(即\mathbf{w_{1}},b_{2}
将新输入的特征分别代入两个方程中即可预测y1y2y_{1},y_{2}
示意图如下,此时有2个输出:y1y2y_{1},y_{2}
机器学习个人笔记——(六)神经网络(1)从线性回归到神经网络简单直观分析

多层

  1. 单层单个输出中,我们直接将x1,x2,x3x_{1},x_{2},x_{3}代入方程中,得到输出的预测值yy
  2. 单层多个输出中,将x1,x2,x3x_{1},x_{2},x_{3},代入不同的方程,得到不同的输出预测值y1,y2y_{1},y_{2}

缺点:使用线性回归,最终都是通过一个直线,或者平面对数据进行拟合,但是,在实际问题中,许多问题并不都是线性的

现将问题再进行修改,我需要预测房屋中的家庭人口数量
训练样本集的特征以及标签即如下表所示。

面积(x1x_{1} 空气指数(x2x_{2} 交通指数(x3x_{3}) 人口数量yy
100 25 40 4
120 35 45 5

此时依旧可以使用线性回归,使用如下方式进行线性拟合
机器学习个人笔记——(六)神经网络(1)从线性回归到神经网络简单直观分析
但是,从特征和标签的相关性来看,家庭人口数面积(x1x_{1}),空气指数(x2x_{2}),交通指数(x3x_{3}) 似乎并没有直接的关联性,若只使用线性回归进行拟合可能会导致训练出来的效果非常差。

从另一方面来看,家庭人口数这个标签,和 房间数量 以及 房屋的价格(等价于经济水平),相关性比较大,因此使用房间数量房屋价格作为特征,所训练出来的效果可能会更好。

但是给出的特征里,并没有房间数量房屋价格这两个特征。

​这个时候就可以借助单层的问题思路,引出多层的概念
我们定义一个新的方程
y=l1y1+l2y2+cy=l_{1}y_{1}+l_{2}y_{2}+c
y1y_{1}房间数量特征,y2y_{2}房屋价格特征

在之前的问题中,我们可以通过特征值x1,x2,x3x_{1}, x_{2}, x_{3}分别代入以下两个方程中,得到y1,y2y_{1},y_{2}
y1=w1Tx+b1y_{1}=\mathbf{w_{1}^Tx}+b_{1}
y2=w2Tx+b2y_{2}=\mathbf{w_{2}^Tx}+b_{2}
此时,再将y1,y2y_{1},y_{2}作为已知的特征,代入最终的方程,进行训练得到合适的参数l1,l2,l3,cl_{1},l_{2},l_{3},c
y=l1y1+l2y2+cy=l_{1}y_{1}+l_{2}y_{2}+c
即可得到所需要的yy

为了区分,使用l1,l2,cl_{1},l_{2},c作为参数

向量化即为:
y=lTx+cy=\mathbf{l^Tx}+c

用图进行表示即为
机器学习个人笔记——(六)神经网络(1)从线性回归到神经网络简单直观分析
这个就有点类似于神经元,每个节点干不同的事情

在机器学习中的神经网络也是这样一个结构,但是相比机器学习的神经网络还少了一个部分,**函数。

二、神经网络原理

三、**函数