机器学习(十)神经网络

机器学习(十)神经网络

前言:

我们前面已近学习了线性回归解决预测问题,逻辑回归解决分类问题,那么现在我们学习神经网络能解决什么问题呢?我认为它是为了解决线性回归和逻辑回归存在的不足而出现的。我们想想对于逻辑回归,如果我们的特征要素比较少的情况下,比如只有x1,x2,x3,那么我们得到的多项式还能够接受,但是如果我们问题的特征要素很多的情况,比如x1,x2,x3,…,x100,有100个特征要素,那么对于逻辑回归仅仅是二次多项式,我们将会有大概5000个项,如果仅仅三次多项式,我们的多项式将有大概17000项,这对于人类的预测以及计算机的处理都是一个极大的挑战,并且导致效率极低!!!!因此,人们想到人类的大脑每天处理的信息量更是巨大的,那么能不能模仿人类神经解决这个问题呢?由此神经网络应运而生。(这是我个人的主观理解,如有不当,请评论区指正,谢谢~~)

一、神经网络的直观理解

1、大脑中的神经元结构如下

机器学习(十)神经网络

2、参照大脑中的神经元结构得到有个神经元模型如下

机器学习(十)神经网络
关于神经网络中的**函数并不一定是上图中的sigmoid函数,比较常用的还有tanh函数,ReLU函数等,关于**函数可以参考这篇文章,其中的θ1,θ2,θ3,θ4称为权重或者参数,本博文称仍像前面的线性回归、逻辑回归一样称其为参数

3、神经网络就是由上图的多个神经元组合而成,神经网络模型如下

神经网络就是由多个神经元组成的,一个神经元的输出作为下一个神经元的输入。神经网络有“3”层,包括第一层的输入层,最后一层的输出层和中间层的隐藏层,其中输入层和输出层都只是一层,而隐藏层可以有多层

符号解释

aij,在第j层的第i个神经元的**值;
θikj,第j层的第k个神经元,到第j+1层的第i个神经元的参数(权重);
Sj,第j层神经元的个数,不包括偏差单元
θj,权重矩阵,控制第j层到第j+1层的权重;θj的维数是Sj+1 * Sj + 1

机器学习(十)神经网络

上图神经网络模型的计算过程

机器学习(十)神经网络

4、向前传播算法,将神经网络模型的计算过程矢量化

机器学习(十)神经网络
机器学习(十)神经网络

机器学习(十)神经网络
机器学习(十)神经网络
机器学习(十)神经网络
上面向前传播算法之所以命名为向前传播,就是因为它从前一层向后一层不断计算,最终计算出预测函数hθ(x),下图更可以直观的看到这一由后向前的计算过程
机器学习(十)神经网络

二、神经网络模型实现逻辑运算符

**函数g(x)的图像如下,当x=4.6时,g(x)=0.99;当x=-4.6时,g(x)=0.01;这意味着如果x远大于4.6则g(x)≈1;如果x远小于-4.6则g(x)≈0;
机器学习(十)神经网络

1、AND

x1,x2∈{0,1};
y=x1 AND x2;
构建神经网络模型如下:
机器学习(十)神经网络
hθ(x)对应的真值表如下

x1 x2 hθ(x)
0 0 g(-30)≈0
0 1 g(-10)≈0
1 0 g(-10)≈0
1 1 g(10)≈1

可以发现上面的 hθ(x)满足: hθ(x)=x1 AND x2;类似这样的神经网络模型就实现了本条件下的AND运算符问题

2、OR

x1,x2∈{0,1};
y=x1 OR x2;
构建神经网络模型如下:
机器学习(十)神经网络
hθ(x)对应的真值表如下

x1 x2 hθ(x)
0 0 g(-10)≈0
0 1 g(10)≈1
1 0 g(10)≈1
1 1 g(30)≈1

可以发现上面的 hθ(x)满足: hθ(x)=x1 OR x2;类似这样的神经网络模型就实现了本条件下的OR运算符问题

3、NOT

x~1∈{0,1};
y=NOT x1
构建神经网络模型如下:
机器学习(十)神经网络
hθ(x)对应的真值表如下

x1 hθ(x)
0 g(10)≈1
1 g(-10)≈0

可以发现上面的 hθ(x)满足: hθ(x)=NOT x1 ;类似这样的神经网络模型就实现了本条件下的NOT运算符问题

4、(NOT x1) AND (NOT x2 )

x1,x2∈{0,1};
y=x1 OR x2;
构建神经网络模型如下:
机器学习(十)神经网络
hθ(x)对应的真值表如下

x1 x2 hθ(x)
0 0 g(10)≈1
0 1 g(-10)≈0
1 0 g(-10)≈0
1 1 g(-30)≈0

可以发现上面的 hθ(x)满足: hθ(x)=(NOT x1) AND (NOT x2) ;类似这样的神经网络模型就实现了本条件下的(NOT x1) AND (NOT x2 )运算符问题

5、XNOR

x1,x2∈{0,1};
y=x1 XNOR x2;
XNOR运算法则是如果x1,x2相同则y=1,否则y=0;
构建神经网络模型如下:
机器学习(十)神经网络
上图的神经网络模型,a1(2) 神经元就是x1 AND x2的模型,a2(2) 神经元就是(NOT x1) AND (NOT x2)的模型,a1(3) 神经元就是x1 OR x2的模型。这三个神经元构成了上面的神经网络。
hθ(x)对应的真值表如下

x1 x2 a1(2) a2(2) hθ(x)
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1

可以发现上面的 hθ(x)满足: hθ(x)=(NOT x1) AND (NOT x2) ;类似这样的神经网络模型就实现了本条件下的(NOT x1) AND (NOT x2 )运算符问题

三、神经网络模型多分类问题

上面我们提到的神经网络的输出层都只有一个神经元,这属于二分类问题,即输出层的神经元取1或者取0;那么神经网络如何处理多分类问题呢?多分类问题的神经网络模型输出层有多个神经单元,如下图所示
机器学习(十)神经网络
机器学习(十)神经网络