目录
一、引入神经网络:
之前我们学习了两个最起初的模型:线性回归模型、逻辑回归模型。而现在,我们要学习的神经网络就是以上述两个模型为基础搭建的更复杂的架构。
1.神经元概述:
举个例子,使用衣服价格price特征来预测衣服是否会畅销,这是一个非常简单的二分类问题 ,应该使用****逻辑回归模型 。
该逻辑回归模型的输入是衣服的价格,输出是一个介于[0,1]之间的数字,表示是否会畅销。
对于一个逻辑回归模型,其实就是一个神经元,输入数据进入神经元后得到一个输出。
2.神经网络概述:
神经网络由多个神经元拼接而成 。
在之前学习逻辑回归模型时我们可能会直接将四个特征输入来预测衣服是否会畅销。而神经网络加入了激活层,下面说明激活层的意义。
- 当我们直接将四个特征输入来预测衣服是否会畅销时,预测结果会因为逻辑回归模型本身的限制导致精度比较低,并且随着数据集的增加,模型的预测精度也不会有较大的优化。
- 因此我们可以将四个特征首先分别使用三个逻辑回归模型分别预测价格、市场、品质这些与畅销性高相关性的特征 ,然后通过这三个激活特征来预测最终的畅销性 。实验证明,这种方式相比于传统逻辑回归模型有更高的预测性能和前景,这就是神经网络。
- 隐藏层中的多个神经元可以分别是是线性回归模型、逻辑回归模型。
- 输出层使用线性回归模型、逻辑回归模型时仅需一个神经元;输出层使用Softmax回归模型时则需要多个神经元。 Softmax回归模型在神经网络中的应用
- 当输出层是线性回归模型、逻辑回归模型时,输出层输出结果为一个数;当输出层是Softmax回归模型时,输出层输出结果为各个分类上的概率一维向量。
- 对于多标签问题 ,输出层需要多个神经元,其中各个神经元相互独立,分别对各自负责的标签预测,每个神经元都是一个线性回归模型或逻辑回归模型。神经网络解决多标签问题
- 具体每个神经元是什么模型取决于该神经元选择的激活函数。
- 神经网络由输入层、激活层(隐藏层)、输出层组成,激活层可以有多个。其中输入层用来接收最原始的特征,输出层负责预测最终结果
- 上述只是举个具象化的例子,而真正的神经网络是对于每个神经元在训练时无需预先决定它的功能,并且每个神经元需要什么特征也由神经网络自行计算。
除此之外,神经网络还可以有多个隐藏层,例如多层感知机。
二、神经网络在图像识别中的应用:
人脸识别的定义是:训练一个神经网络,输入图片的像素特征,输出图片中人的身份是否是Tom。
- 首先,对于一张图片,计算机中会表示成1000×1000像素的矩阵,每个网格中记录了该点的像素值。
- 然后将矩阵展开成一个一维向量作为输入特征。
- 输入特征向量被送到第一层隐藏层的神经元,提取特征后将输出激活特征作为第二层神经元的输入,然后第二层输出被送到第三层,最后被送到输出层,由输出层给出预测结果。
- 各层可以提取丰富的特征帮助下一层进行特征提取,提取到的特征逐渐深入。
例如第一层提取短线特征,第二层根据第一层的输出结果提取到器官特征,第三层则根据第二层输出结果提取到完整的面部特征,最后作为输出层的输入帮助输出层更好的预测。(显然神经网络相比于传统的逻辑回归模型输入像素特征向量预测精度要高 )
神经网络的一个显著特点是可以自己学习每层需要提取什么特征。
三、神经网络实现:
一个具有四层的神经网络如下:
- 输入层称为第0层,神经网络的层数只包括隐藏层和输出层。
- 第i层的输出由向量a[i]表示,该层神经元的个数决定了向量的长度(每个神经元输出一个数字)。
- 上标在这里表示第几层。
对于神经网络的第三层,拆解如下:
- 上标在这里表示第几层的信息。
- 下标在这里表示这是该层第几个神经元的信息。
- 第二层输出的向量(第二层的激活向量)作为第三层输入。
- 每个神经元都有各自的参数和模型,输出各自的预测结果(一个数值)。
- 各个神经元的预测值组合成为该层的激活向量输出。
- 注释:g是Sigmoid函数。
四、神经网络的向前传播:
向前传播定义:神经网络中的计算是从左向右进行的,各层之间有序地从左向右传播神经元的激活。
下面举例说明向前传播算法:
- 对于输入的图片,要预测该图片中的数字是否为1,,首先将图片的像素特征输入第一层进行计算,输出第一层的激活。
- 第一层激活输入第二层进行计算:
- 最后第三层使用第二层激活作为输入进行计算,根据计算结果输出预测值y^: