1.基本的神经网数学模型
输出 y=activate(w*x+b)
其中,x表示输入矩阵,w表示权重矩阵,b表示偏置,y表示输出
2.基础的神经网络模型
(1)全连接神经网络(用来处理和数值相关的任务)
(2)卷积神经网络(用来处理和计算机视觉相关的任务)
(3)循环神经网络(用来处理与序列相关的任务)
3.全连接神经网络
含义:将神经元按照层进行组合,相邻层之间的节点相互连接
结构:包含输入层、隐藏层和输出层
图1 全连接层结构图
设计思想:
1)输入节点根据外部的特征数据确定
2)隐藏层的节点数决定了模型的拟合能力,节点越多,拟合能力越强,泛化能力越差。
隐藏层的数量决定模型的泛化能力,层数越多,泛化能力越强,拟合能力越差。
4.激活函数
作用:加入非线性因素,弥补线性模型表达能力不足的缺陷
(1)Sigmoid函数
pytorch中的对应实现:torch.nn.Sigmoid()
(2)tanh函数
pytorch中的对应实现:torch.nn.tanh()
上面的两个函数要求输入的绝对值不能过大,要不会有饱和问题
(3)ReLU函数
pytorch中的对应实现:torch.nn.ReLU(input,inplace) 如果inplace为False,则不改变原数据
(4)Softmax算法
作用:判断输入属于某一类的概率大于属于其他类的概率,要求分类值互斥
pytorch中的对应实现:torch.nnSoftmax(dim)
5.模型训练步骤
(1)将样本数据输入模型算出正向结果
(2)计算模型结果与样本的目标标签之间的差值
(3)根据损失值,使用链式反向求导方法,一次计算模型中每个参数
(4)使用优化器中的策略对模型中的参数进行更新
6.损失函数
(1)L1损失函数
(2)均值平方差(MSE)损失函数
类似:均方根误差(RMSE=sqrt(MSE))
平方绝对值误差(MAD,对一个真实值与预测值相减后的绝对值取平均值)
(3)交叉熵损失函数
一般用在分类问题上,预测输入样本属于某一类的概率,值越小表示预测结果越准
7.优化器
作用:基于误差反向传播(BP)算法,帮助模型在训练过程中更快更好地将参数调整到位
基础策略是梯度下降法(批量梯度下降、随机梯度下降、小批量梯度下降)
构建Adam优化器对象:optimizer=torch.optim.Adam(model.parameter(),lr=learning rate)
学习率表示模型在反向优化中沿着梯度方向调节的步长大小。值越大,训练速度提升,但是精度不够;值越小,训练精度提升,但耗时