1.神经网络基础
1.1 人工神经网络
神经网络是一种模仿生物神经网络结构和功能的计算模型,由神经元构成(加权和激活函数)
神经网络信息只向一个方向移动,从输入节点向前移动,通过隐藏节点,再向输出节点移动。基本部分是:
-
输入层:输入x的那一层
-
输出层:输出y的那一层
-
隐藏层:输入层和输出层之间都是隐藏层
特点:
-
同一层神经元间没有连接
-
第N层的每个神经元和第N-1层的所有神经元相连(full connected),即全连接神经网络
-
第N-1层神经元的输出就是第N层神经元的输入
-
每个连接都有一个权重值(w系数和b系数)
1.2 激活函数
激活函数用于对没测呢个的输出数据进行变换,进而为整个网络注入了非线性因素。此时,神经网络就可以拟合各种曲线。
-
没有引入非线性因素的额网络等价于使用一个线性模型来拟合
-
通过给网络输出增加激活函数,实现引入非线性因素,是的网络模型可以逼近任意函数,提升网络对复杂问题的拟合能力
sigmoid激活函数
激活函数公式:
激活函数求导公式:
ReLU函数
ReLU公式如下:
激活函数求导公式::0或1
SoftMax函数
softmax用于多分类过程中,它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。
2.损失函数
2.1 损失函数
在深度学习中,损失函数是是用来衡量模型参数的质量的函数,衡量的方式是比较网络输出和真实输出的差异
2.1 多分类损失函数
在多分类任务通常使用softmax将logits转换为概率的形式,所以多分类的交叉熵损失也叫做Softmax损失
2.1 二分类损失函数
在处理二分类任务时,我们不再使用softmax激活函数,而是使用sigmoid激活函数,那损失函数也相应的进行调整,使用二分类的交叉熵损失函数:
其中:
-
y是样本x属于某一个类别的真实概率
-
而y^是样本属于某一类别的预测概率
-
L用来衡量真实值y与预测值y^之间差异性的损失结果。
3. 网络优化方法
3.1 梯度下降算法
梯度下降法是一种寻找使损失函数最小化的方法。从数学上的角度来看,梯度的方向是函数增长速度最快的方向,那么梯度的反方向就是函数减少最快的方向,所以有:
其中,η是学习率,如果学习率太小,那么每次训练之后得到的效果都太小,增大训练的时间成本。如果,学习率太大, 那就有可能直接跳过最优解,进入无限的训练中。解决的方法就是,学习率也需要随着训练的进行而变化。
模型训练基础概念
-
Epoch:使用全部数据对模型进行一次完整训练,训练轮次
-
Batch_size:使用训练集中的小部分一样本对模型权重进行一次反向传播的参数更新,每次训练每批次样本数量
-
Iteration:使用一个Batch数据对模型进行一次参数更新的过程
前向传播:指的是数据输入的神经网络中,逐层向前传输,一直到运算到输出层为止。 反向传播(Back Propagation):利用损失函数ERROR,从后往前,结合梯度下降算法,依次求各个参数的偏导,并进行参数更新