1 网络前馈方式
前馈神经网络是前向的,即模型的输出与模型本身之间并不存在连接,也就不构成反馈。例如对于分类器功能MLP,假设其输入为 x ,输出满足 函数 y= f(x),信息从输入的 x 经过定义的功能函数 f, 最终到达输出 y ,在这个过程中 f 以及 x 并没有因为 y 的取值而受到任何的影响。
函数 y = f(x) 可以被表示为多个函数复合形式,分别用一个函数表示网络的每一层计算过程。例如一个三层网络,我们用 来表示网络的每一层,那么复合函数可表示为 ,这实际就形成了一个函数链。对于前馈神经网络,我们都可以用这样一个函数链来表示。
2 全连接
全连接与稀疏连接都是指神经网络模型中相邻两层单元之间的连接方式。全连接是指网络当前层与网络上一层的每个单元都存在连接,而稀疏连接时网络当前层的单元只与网络上一层的部分单元存在连接。
3 前向传播算法
前向传播概括描述了前馈神经网络的计算过程。计算前向传播的结果需要3部分信息:首先是神经网络的输入,该输入是经过提取的特征向量数据;其次是神经网络的连接结构,通过确定连接结构可以确定运算关系;最后是每个神经元中的参数。
前向传播算法可以类比 a = wx + b 的形式,a 是网络输出,x是网络输入, w是 权重, b 是偏置项。通过不断调整 w 和 b 使得我们的输出 a 能够满足要求。当然,在大型网络中,x 可能是许多项,w 和 b 也是许多项,由多个 输入 x 来确定多个 输出 a 。
4 线性模型局限性
上面前向传播算法的 大概模型为 。这是一个线性模型,因为输入输出线性相关。
但是,我们也可以将上式转变为: ,可以看到最终上面的复合函数转变为了一个线性计算。意味着我们的 多层网络可能 最终 也 可以 被 一层网络所取代,这是缺点。所以,我们需要引入非线性,也就是激活函数。
5 激活函数
将每个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了。这个非线性函数称之为 激活函数。常用激活函数有:
RELU函数:,这是一个在输入和 0 之间求最大值的函数。
logistic sigmoid函数(sigmoid函数):
6 损失函数
损失函数用来描述对问题的求解精度,用数学的方式刻画预测答案和真实答案之间的距离。
6.1 经典损失函数
交叉熵用于刻画两个概率分布向量之间的距离,是分类问题中使用比较广泛的一种损失函数。这里设两个概率分布值 P 和 Q是等长的两个向量,使用比较简单的形式计算二者的交叉熵值:
一般会设P代表正确答案,Q代表是预测的结果值。损失函数需要逐渐被减小,才能使预测的答案越来越接近真实的答案。
6.2 Softmax回归
如何在分类问题中将神经网络前向传播的结果编程概率分布提供给交叉熵损失函数进行计算呢?Softmax回归就是一种很常用的方法。
假设原始的神经网络输出为 y1,y2,y3....yn,那么经过Softmax回归处理之后的输出为:
式中,yj 表示输入到Softmax 之前每一个单元的值,在经过Softmax之后,这些单元的数量没有改变,而是数值变成了概率分布。用 i 代表经过Softmax之后的每一个单元,yj 代表对应的单元在进行 Softma处理之前的值。
6.3 均方误差损失函数
与分类问题的预测不同,解决回归问题的网络模型在完成预测之后不会输出一个概率分布向量,而是一个经由它预测得到的数值,比如股票预测、彩票预测等。 也即 解决回归问题的 神经网络一般只有 一个输出节点,这个节点的输出值就是预测值。
对于回归问题,最常用的损失函数就是均方误差损失函数,如下: