神经网络基础
1.前向传播
1)得分函数
得分函数(Score Function)是一个关键概念,它用于描述模型在给定输入数据下的预测概率分布。得分函数通常与模型的参数一起,决定了模型对输入数据的理解和预测能力。
1)权重
权重是连接神经网络中各层神经元的边的系数。它们决定了从一个神经元到另一个神经元信号的强度。权重决定了输入特征对最终输出的影响程度,是神经网络学习过程中调整的主要参数之一。
2)偏置
偏置是加在神经网络中每个神经元的输出上的常数值。它们允许模型在不改变权重的情况下,对神经元的激活函数进行平移,从而影响神经元的激活状态。
不同权重对应着不同的类别,每个类别都会计算得分函数,将得到的得分函数进行比较,最大的即为判断结果。
例如,将输入图像看作4个像素Xi,每个像素点都带有数据,每一个类别都有一个权重,权重乘以输入的数据加上偏置得到得分函数的结果。如图所示:猫的得分为-96.8,狗的得分为437.9,船的得分为61.95。
2)损失函数
损失函数(Loss Function),也称为代价函数(Cost Function),是机器学习中用来衡量模型预测值与实际值之间差异的函数。它是一个非负实值函数,其目的是要最小化这个函数的值,以找到模型参数(如权重和偏置)的最佳值。
真实值和预测值之间差距,希望是越小越好,存在损失函数到最后就要进行损失优化。
’1‘表示容忍程度,即当预测值和真实值大于1时,两者之间存在损失
损失函数 = 数据损失 + 正则化惩罚项
惩罚系数(Regularization Coefficient),也称为正则化参数或强度参数,是在正则化技术中用来控制正则化项强度的超参数。这个系数决定了正则化项对模型参数的影响程度,进而影响模型的泛化能力和过拟合程度。
3)Softmax分类器
Softmax分类器是一种广泛应用于多类分类问题的神经网络输出层的激活函数。它将神经网络输出层的原始分数(也称为logits)转换为概率分布,使得每个输出类别都有一个概率值,所有类别的概率之和为1。
如图,以猫为例,通过得分函数得到相应的得分3.2之后,求得每个得分的指数函数的得分次方,将数据进行放大为24..5,然后放大数据进行归一化(即值/总值)得到概率值,即24.5/188.68=0.13,最后计算损失值-log(0.13)=0.89。
4)前向传播整体流程
从数据输入进去到得到一个损失函数这一个过程叫做前向传播,如图,将数据x和权重输入进行计算,得到得分函数,之后通过归一化得到概率值,然后计算损失值,最后通过正则化惩罚项得到最终的损失函数。
2.反向传播
反向传播(Backpropagation)是神经网络训练过程中的核心算法,它用于计算损失函数相对于网络参数(主要是权重和偏置)的梯度,并利用这些梯度来更新参数,以减少预测误差。
1)理解
从后往前进行传播,计算网络参数的梯度并更新数据。
2)门单元
门单元是一种可以控制神经网络中信息流动的机制。它们可以决定哪些信息应该被传递,哪些应该被抑制。
- 加法门单元:从后往前的梯度会均等分配
- 乘法门单元:输入数据的梯度会进行互换
- max门单元:后的梯度只会给输入数据最大的
3.神经网络整体框架
1)层次结构
神经网络的层次结构指的是网络中不同层(Layers)的组织方式,以及数据在这些层之间的流动路径。这种结构是神经网络能够处理复杂数据和执行高级任务的基础。
主要包括输入层、隐藏层、激活函数和输出层等
2)神经元
- 神经元是神经网络的基本单元,负责处理和传递信息。
- 每个神经元接收输入,进行加权求和,然后通过一个激活函数产生输出。
如图蓝色的每个圆圈都是一个神经元,神经元的多少对结果会产生影响,当神经元数量过多时会产生过拟合,测试集效果不好,当神经元数量过少时会产生欠拟合,训练效果和测试效果都不行。
3)全连接
全连接(Fully Connected,FC)是神经网络中的一种层类型,也常被称为密集层(Dense Layer)。在全连接层中,每个神经元都与前一层的所有神经元相连,这意味着每个神经元的输出都是下一层所有神经元的输入。
如图所示,每个输入数据都和每个神经元进行连接,即全连接。
4.正则化和激活函数
1)正则化
惩罚力度对结果的影响:
- 当惩罚力度小时,模型就会偏向复杂,就会出现不稳定的现象
- 当惩罚力度大时,模型偏向简单,就会出现平滑的判断
2)激活函数
激活函数是神经网络中不可或缺的组成部分,它们的主要作用是引入非线性,使得神经网络能够学习和执行复杂的任务。如果没有激活函数,即使网络有很多层,最终也只会相当于一个线性模型,这将大大限制网络的表达能力。
-
Sigmoid函数:
- 公式:σ(x)=11+e−xσ(x)=1+e−x1
- 输出范围在(0, 1)之间,可以将输入压缩到0和1之间。
- 常用于二分类问题的输出层。
- 缺点:容易受到梯度消失问题的影响,训练速度慢。
-
Tanh函数(双曲正切函数):
- 公式:tanh(x)=ex−e−xex+e−xtanh(x)=ex+e−xex−e−x
- 输出范围在(-1, 1)之间。
- 比Sigmoid函数的输出范围更宽,但同样容易受到梯度消失问题的影响。
-
ReLU函数(Rectified Linear Unit):
- 公式:ReLU(x)=max(0,x)ReLU(x)=max(0,x)
- 当输入大于0时输出输入值,否则输出0。
- 计算效率高,训练速度快,是目前最流行的激活函数之一。
- 缺点:可能发生死亡ReLU问题,即部分神经元在训练过程中完全死亡(输出永远为0)。
5.Drop-Out---优化过拟合
Dropout是一种在神经网络训练过程中使用的正则化技术,其核心思想是在训练过程中随机地“丢弃”(即暂时移除)网络中的一部分神经元,以减少模型对训练数据的依赖,提高泛化能力。
即在训练过程中不进行全连接,在每一层随机丢弃一部分神经元,使得每次训练时架构都简单了一些,但在测试时还是进行全连接。