机器学习(十)神经网络
机器学习(十)神经网络
前言:
我们前面已近学习了线性回归解决预测问题,逻辑回归解决分类问题,那么现在我们学习神经网络能解决什么问题呢?我认为它是为了解决线性回归和逻辑回归存在的不足而出现的。我们想想对于逻辑回归,如果我们的特征要素比较少的情况下,比如只有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;那么神经网络如何处理多分类问题呢?多分类问题的神经网络模型输出层有多个神经单元,如下图所示